diff --git a/6.1curlcommands.md b/6.1curlcommands.md index 8e0ee0f..256bec4 100644 --- a/6.1curlcommands.md +++ b/6.1curlcommands.md @@ -1755,3 +1755,51 @@ curl -X POST -H 'Content-type: application/json' http://localhost:8080/api/admin ``` + +### 3D model Previewer using the 'Online 3D Viewer' code (beta) + +More info here (https://kovacsv.github.io/Online3DViewer/index.html) + +__Note:__ There are many mimetypes that can be rendered as 3D models. You can add more mimetypes by adding more entries to the "contentType" field. + +```bash +curl -X POST -H 'Content-type: application/json' http://localhost:8080/api/admin/externalTools -d \ +'{ + "displayName":"Read 3D model", + "description":"Read the 3D model file using X3D from X_ITE.", + "toolName":"3D model Previewer", + "scope":"file", + "types":["preview"], + "toolUrl":"https://gdcc.github.io/dataverse-previewers/previewers/v1.4/X3DPreview.html", + "toolParameters": { + "queryParameters":[ + {"fileid":"{fileId}"}, + {"siteUrl":"{siteUrl}"}, + {"datasetid":"{datasetId}"}, + {"datasetversion":"{datasetVersion}"}, + {"locale":"{localeCode}"} + ] + }, + "contentType":"model/obj", + "allowedApiCalls": [ + { + "name": "retrieveFileContents", + "httpMethod": "GET", + "urlTemplate": "/api/v1/access/datafile/{fileId}?gbrecs=true", + "timeOut": 3600 + }, + { + "name": "downloadFile", + "httpMethod": "GET", + "urlTemplate": "/api/v1/access/datafile/{fileId}?gbrecs=false", + "timeOut": 3600 + }, + { + "name": "getDatasetVersionMetadata", + "httpMethod": "GET", + "urlTemplate": "/api/v1/datasets/{datasetId}/versions/{datasetVersion}", + "timeOut": 3600 + } + ] +}' +``` diff --git a/previewers/betatest/O3DPreview.html b/previewers/betatest/O3DPreview.html new file mode 100644 index 0000000..b71808f --- /dev/null +++ b/previewers/betatest/O3DPreview.html @@ -0,0 +1,39 @@ + + + + + 3D model Preview + + + + + + + + + + + + + + + + +
+

3D model Preview

+
+
+
+ +
+
+
+
+
+ + + + diff --git a/previewers/betatest/js/o3dview.js b/previewers/betatest/js/o3dview.js new file mode 100644 index 0000000..f9f6125 --- /dev/null +++ b/previewers/betatest/js/o3dview.js @@ -0,0 +1,81 @@ +$(document).ready(function() { + startPreview(true); +}); + +function translateBaseHtmlPage() { + var o3dPreviewText = $.i18n( "o3dPreviewText" ); + $( '.o3dPreviewText' ).text( o3dPreviewText ); +} + +function writeContentAndData(data, fileUrl, file, title, authors) { + addStandardPreviewHeader(file, title, authors); + + /** Human readable formats could also be displayed (as text or xml or json). + options = {}; // Custom rules + $('.preview').append($("
").html(filterXSS(data,options)));
+    */
+    
+    // set the location of the external libraries
+    OV.SetExternalLibLocation ('../lib/o3dv/libs');
+
+    // get the parent element of the viewer
+    let parentDiv = document.getElementById ('o3d_viewer');
+
+    // initialize the viewer with the parent element and some parameters
+    let viewer = new OV.EmbeddedViewer (parentDiv, {
+        camera : new OV.Camera (
+            new OV.Coord3D (-1.5, 2.0, 3.0),
+            new OV.Coord3D (0.0, 0.0, 0.0),
+            new OV.Coord3D (0.0, 1.0, 0.0),
+            45.0
+        ),
+        backgroundColor : new OV.RGBAColor (255, 255, 255, 255),
+        defaultColor : new OV.RGBColor (200, 200, 200),
+        edgeSettings : new OV.EdgeSettings (false, new OV.RGBColor (0, 0, 0), 1),
+        /**
+        environmentSettings : new OV.EnvironmentSettings (
+            [
+                'assets/envmaps/fishermans_bastion/posx.jpg',
+                'assets/envmaps/fishermans_bastion/negx.jpg',
+                'assets/envmaps/fishermans_bastion/posy.jpg',
+                'assets/envmaps/fishermans_bastion/negy.jpg',
+                'assets/envmaps/fishermans_bastion/posz.jpg',
+                'assets/envmaps/fishermans_bastion/negz.jpg'
+            ],
+            false
+        )
+        */
+    });
+
+    console.log("Start loading file: " + file.filename + " From: " + fileUrl);
+   
+    // load a model providing model urls
+    //viewer.LoadModelFromUrlList ([
+    //    fileUrl
+    //]);
+    
+    // It tries tio get a filename from the URL, which won't work here
+    //    
+    // https://github.com/kovacsv/Online3DViewer/issues/424
+    //
+    //const dataBlob = await fetch(fileUrl).then(res => res.blob());
+    //const dataFile = new File([dataBlob], file);  // must manually provide correct extension
+    //viewer.LoadModelFromFileList([dataFile]);
+
+    // TODO fix problem with the filename, only have it in 'Open In New Window' link
+    filename = "";
+    if (file.hasOwnProperty("filename")) {
+        console.log("File has filename: " + file.filename);
+        filename = file.filename;
+    } else {
+        console.log("File has no filename, try extracting it from the page");
+        // Note that we are in an iframe, so we need to get the filename from the parent
+        filename = window.parent.$(".file-title-label").text();
+        console.log("filename: " + filename);
+    }
+    const dataFile = new File([data], filename);
+    viewer.LoadModelFromFileList([dataFile]);
+
+    // TODO, force to view whole object if possible?
+    //viewer.FitAll ();
+}
diff --git a/previewers/betatest/lib/o3dv/libs/web-ifc-api-browser.js b/previewers/betatest/lib/o3dv/libs/web-ifc-api-browser.js
new file mode 100644
index 0000000..e701047
--- /dev/null
+++ b/previewers/betatest/lib/o3dv/libs/web-ifc-api-browser.js
@@ -0,0 +1,66263 @@
+var WebIFC = (() => {
+  var __defProp = Object.defineProperty;
+  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+  var __getOwnPropNames = Object.getOwnPropertyNames;
+  var __hasOwnProp = Object.prototype.hasOwnProperty;
+  var __export = (target, all) => {
+    for (var name in all)
+      __defProp(target, name, { get: all[name], enumerable: true });
+  };
+  var __copyProps = (to, from, except, desc) => {
+    if (from && typeof from === "object" || typeof from === "function") {
+      for (let key of __getOwnPropNames(from))
+        if (!__hasOwnProp.call(to, key) && key !== except)
+          __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+    }
+    return to;
+  };
+  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
+
+  // node_modules/web-ifc/web-ifc-api.js
+  var web_ifc_api_exports = {};
+  __export(web_ifc_api_exports, {
+    Constructors: () => Constructors,
+    EMPTY: () => EMPTY,
+    ENUM: () => ENUM,
+    FILE_DESCRIPTION: () => FILE_DESCRIPTION,
+    FILE_NAME: () => FILE_NAME,
+    FILE_SCHEMA: () => FILE_SCHEMA,
+    FromRawLineData: () => FromRawLineData,
+    Handle: () => Handle,
+    IFC2DCOMPOSITECURVE: () => IFC2DCOMPOSITECURVE,
+    IFC2X3: () => IFC2X3,
+    IFC4: () => IFC4,
+    IFC4X3: () => IFC4X3,
+    IFCABSORBEDDOSEMEASURE: () => IFCABSORBEDDOSEMEASURE,
+    IFCACCELERATIONMEASURE: () => IFCACCELERATIONMEASURE,
+    IFCACTIONREQUEST: () => IFCACTIONREQUEST,
+    IFCACTOR: () => IFCACTOR,
+    IFCACTORROLE: () => IFCACTORROLE,
+    IFCACTUATOR: () => IFCACTUATOR,
+    IFCACTUATORTYPE: () => IFCACTUATORTYPE,
+    IFCADDRESS: () => IFCADDRESS,
+    IFCADVANCEDBREP: () => IFCADVANCEDBREP,
+    IFCADVANCEDBREPWITHVOIDS: () => IFCADVANCEDBREPWITHVOIDS,
+    IFCADVANCEDFACE: () => IFCADVANCEDFACE,
+    IFCAIRTERMINAL: () => IFCAIRTERMINAL,
+    IFCAIRTERMINALBOX: () => IFCAIRTERMINALBOX,
+    IFCAIRTERMINALBOXTYPE: () => IFCAIRTERMINALBOXTYPE,
+    IFCAIRTERMINALTYPE: () => IFCAIRTERMINALTYPE,
+    IFCAIRTOAIRHEATRECOVERY: () => IFCAIRTOAIRHEATRECOVERY,
+    IFCAIRTOAIRHEATRECOVERYTYPE: () => IFCAIRTOAIRHEATRECOVERYTYPE,
+    IFCALARM: () => IFCALARM,
+    IFCALARMTYPE: () => IFCALARMTYPE,
+    IFCALIGNMENT: () => IFCALIGNMENT,
+    IFCALIGNMENTCANT: () => IFCALIGNMENTCANT,
+    IFCALIGNMENTCANTSEGMENT: () => IFCALIGNMENTCANTSEGMENT,
+    IFCALIGNMENTHORIZONTAL: () => IFCALIGNMENTHORIZONTAL,
+    IFCALIGNMENTHORIZONTALSEGMENT: () => IFCALIGNMENTHORIZONTALSEGMENT,
+    IFCALIGNMENTPARAMETERSEGMENT: () => IFCALIGNMENTPARAMETERSEGMENT,
+    IFCALIGNMENTSEGMENT: () => IFCALIGNMENTSEGMENT,
+    IFCALIGNMENTVERTICAL: () => IFCALIGNMENTVERTICAL,
+    IFCALIGNMENTVERTICALSEGMENT: () => IFCALIGNMENTVERTICALSEGMENT,
+    IFCAMOUNTOFSUBSTANCEMEASURE: () => IFCAMOUNTOFSUBSTANCEMEASURE,
+    IFCANGULARDIMENSION: () => IFCANGULARDIMENSION,
+    IFCANGULARVELOCITYMEASURE: () => IFCANGULARVELOCITYMEASURE,
+    IFCANNOTATION: () => IFCANNOTATION,
+    IFCANNOTATIONCURVEOCCURRENCE: () => IFCANNOTATIONCURVEOCCURRENCE,
+    IFCANNOTATIONFILLAREA: () => IFCANNOTATIONFILLAREA,
+    IFCANNOTATIONFILLAREAOCCURRENCE: () => IFCANNOTATIONFILLAREAOCCURRENCE,
+    IFCANNOTATIONOCCURRENCE: () => IFCANNOTATIONOCCURRENCE,
+    IFCANNOTATIONSURFACE: () => IFCANNOTATIONSURFACE,
+    IFCANNOTATIONSURFACEOCCURRENCE: () => IFCANNOTATIONSURFACEOCCURRENCE,
+    IFCANNOTATIONSYMBOLOCCURRENCE: () => IFCANNOTATIONSYMBOLOCCURRENCE,
+    IFCANNOTATIONTEXTOCCURRENCE: () => IFCANNOTATIONTEXTOCCURRENCE,
+    IFCAPPLICATION: () => IFCAPPLICATION,
+    IFCAPPLIEDVALUE: () => IFCAPPLIEDVALUE,
+    IFCAPPLIEDVALUERELATIONSHIP: () => IFCAPPLIEDVALUERELATIONSHIP,
+    IFCAPPROVAL: () => IFCAPPROVAL,
+    IFCAPPROVALACTORRELATIONSHIP: () => IFCAPPROVALACTORRELATIONSHIP,
+    IFCAPPROVALPROPERTYRELATIONSHIP: () => IFCAPPROVALPROPERTYRELATIONSHIP,
+    IFCAPPROVALRELATIONSHIP: () => IFCAPPROVALRELATIONSHIP,
+    IFCARBITRARYCLOSEDPROFILEDEF: () => IFCARBITRARYCLOSEDPROFILEDEF,
+    IFCARBITRARYOPENPROFILEDEF: () => IFCARBITRARYOPENPROFILEDEF,
+    IFCARBITRARYPROFILEDEFWITHVOIDS: () => IFCARBITRARYPROFILEDEFWITHVOIDS,
+    IFCARCINDEX: () => IFCARCINDEX,
+    IFCAREADENSITYMEASURE: () => IFCAREADENSITYMEASURE,
+    IFCAREAMEASURE: () => IFCAREAMEASURE,
+    IFCASSET: () => IFCASSET,
+    IFCASYMMETRICISHAPEPROFILEDEF: () => IFCASYMMETRICISHAPEPROFILEDEF,
+    IFCAUDIOVISUALAPPLIANCE: () => IFCAUDIOVISUALAPPLIANCE,
+    IFCAUDIOVISUALAPPLIANCETYPE: () => IFCAUDIOVISUALAPPLIANCETYPE,
+    IFCAXIS1PLACEMENT: () => IFCAXIS1PLACEMENT,
+    IFCAXIS2PLACEMENT2D: () => IFCAXIS2PLACEMENT2D,
+    IFCAXIS2PLACEMENT3D: () => IFCAXIS2PLACEMENT3D,
+    IFCAXIS2PLACEMENTLINEAR: () => IFCAXIS2PLACEMENTLINEAR,
+    IFCBEAM: () => IFCBEAM,
+    IFCBEAMSTANDARDCASE: () => IFCBEAMSTANDARDCASE,
+    IFCBEAMTYPE: () => IFCBEAMTYPE,
+    IFCBEARING: () => IFCBEARING,
+    IFCBEARINGTYPE: () => IFCBEARINGTYPE,
+    IFCBEZIERCURVE: () => IFCBEZIERCURVE,
+    IFCBINARY: () => IFCBINARY,
+    IFCBLOBTEXTURE: () => IFCBLOBTEXTURE,
+    IFCBLOCK: () => IFCBLOCK,
+    IFCBOILER: () => IFCBOILER,
+    IFCBOILERTYPE: () => IFCBOILERTYPE,
+    IFCBOOLEAN: () => IFCBOOLEAN,
+    IFCBOOLEANCLIPPINGRESULT: () => IFCBOOLEANCLIPPINGRESULT,
+    IFCBOOLEANRESULT: () => IFCBOOLEANRESULT,
+    IFCBOREHOLE: () => IFCBOREHOLE,
+    IFCBOUNDARYCONDITION: () => IFCBOUNDARYCONDITION,
+    IFCBOUNDARYCURVE: () => IFCBOUNDARYCURVE,
+    IFCBOUNDARYEDGECONDITION: () => IFCBOUNDARYEDGECONDITION,
+    IFCBOUNDARYFACECONDITION: () => IFCBOUNDARYFACECONDITION,
+    IFCBOUNDARYNODECONDITION: () => IFCBOUNDARYNODECONDITION,
+    IFCBOUNDARYNODECONDITIONWARPING: () => IFCBOUNDARYNODECONDITIONWARPING,
+    IFCBOUNDEDCURVE: () => IFCBOUNDEDCURVE,
+    IFCBOUNDEDSURFACE: () => IFCBOUNDEDSURFACE,
+    IFCBOUNDINGBOX: () => IFCBOUNDINGBOX,
+    IFCBOXALIGNMENT: () => IFCBOXALIGNMENT,
+    IFCBOXEDHALFSPACE: () => IFCBOXEDHALFSPACE,
+    IFCBRIDGE: () => IFCBRIDGE,
+    IFCBRIDGEPART: () => IFCBRIDGEPART,
+    IFCBSPLINECURVE: () => IFCBSPLINECURVE,
+    IFCBSPLINECURVEWITHKNOTS: () => IFCBSPLINECURVEWITHKNOTS,
+    IFCBSPLINESURFACE: () => IFCBSPLINESURFACE,
+    IFCBSPLINESURFACEWITHKNOTS: () => IFCBSPLINESURFACEWITHKNOTS,
+    IFCBUILDING: () => IFCBUILDING,
+    IFCBUILDINGELEMENT: () => IFCBUILDINGELEMENT,
+    IFCBUILDINGELEMENTCOMPONENT: () => IFCBUILDINGELEMENTCOMPONENT,
+    IFCBUILDINGELEMENTPART: () => IFCBUILDINGELEMENTPART,
+    IFCBUILDINGELEMENTPARTTYPE: () => IFCBUILDINGELEMENTPARTTYPE,
+    IFCBUILDINGELEMENTPROXY: () => IFCBUILDINGELEMENTPROXY,
+    IFCBUILDINGELEMENTPROXYTYPE: () => IFCBUILDINGELEMENTPROXYTYPE,
+    IFCBUILDINGELEMENTTYPE: () => IFCBUILDINGELEMENTTYPE,
+    IFCBUILDINGSTOREY: () => IFCBUILDINGSTOREY,
+    IFCBUILDINGSYSTEM: () => IFCBUILDINGSYSTEM,
+    IFCBUILTELEMENT: () => IFCBUILTELEMENT,
+    IFCBUILTELEMENTTYPE: () => IFCBUILTELEMENTTYPE,
+    IFCBUILTSYSTEM: () => IFCBUILTSYSTEM,
+    IFCBURNER: () => IFCBURNER,
+    IFCBURNERTYPE: () => IFCBURNERTYPE,
+    IFCCABLECARRIERFITTING: () => IFCCABLECARRIERFITTING,
+    IFCCABLECARRIERFITTINGTYPE: () => IFCCABLECARRIERFITTINGTYPE,
+    IFCCABLECARRIERSEGMENT: () => IFCCABLECARRIERSEGMENT,
+    IFCCABLECARRIERSEGMENTTYPE: () => IFCCABLECARRIERSEGMENTTYPE,
+    IFCCABLEFITTING: () => IFCCABLEFITTING,
+    IFCCABLEFITTINGTYPE: () => IFCCABLEFITTINGTYPE,
+    IFCCABLESEGMENT: () => IFCCABLESEGMENT,
+    IFCCABLESEGMENTTYPE: () => IFCCABLESEGMENTTYPE,
+    IFCCAISSONFOUNDATION: () => IFCCAISSONFOUNDATION,
+    IFCCAISSONFOUNDATIONTYPE: () => IFCCAISSONFOUNDATIONTYPE,
+    IFCCALENDARDATE: () => IFCCALENDARDATE,
+    IFCCARDINALPOINTREFERENCE: () => IFCCARDINALPOINTREFERENCE,
+    IFCCARTESIANPOINT: () => IFCCARTESIANPOINT,
+    IFCCARTESIANPOINTLIST: () => IFCCARTESIANPOINTLIST,
+    IFCCARTESIANPOINTLIST2D: () => IFCCARTESIANPOINTLIST2D,
+    IFCCARTESIANPOINTLIST3D: () => IFCCARTESIANPOINTLIST3D,
+    IFCCARTESIANTRANSFORMATIONOPERATOR: () => IFCCARTESIANTRANSFORMATIONOPERATOR,
+    IFCCARTESIANTRANSFORMATIONOPERATOR2D: () => IFCCARTESIANTRANSFORMATIONOPERATOR2D,
+    IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM: () => IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM,
+    IFCCARTESIANTRANSFORMATIONOPERATOR3D: () => IFCCARTESIANTRANSFORMATIONOPERATOR3D,
+    IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM: () => IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM,
+    IFCCENTERLINEPROFILEDEF: () => IFCCENTERLINEPROFILEDEF,
+    IFCCHAMFEREDGEFEATURE: () => IFCCHAMFEREDGEFEATURE,
+    IFCCHILLER: () => IFCCHILLER,
+    IFCCHILLERTYPE: () => IFCCHILLERTYPE,
+    IFCCHIMNEY: () => IFCCHIMNEY,
+    IFCCHIMNEYTYPE: () => IFCCHIMNEYTYPE,
+    IFCCIRCLE: () => IFCCIRCLE,
+    IFCCIRCLEHOLLOWPROFILEDEF: () => IFCCIRCLEHOLLOWPROFILEDEF,
+    IFCCIRCLEPROFILEDEF: () => IFCCIRCLEPROFILEDEF,
+    IFCCIVILELEMENT: () => IFCCIVILELEMENT,
+    IFCCIVILELEMENTTYPE: () => IFCCIVILELEMENTTYPE,
+    IFCCLASSIFICATION: () => IFCCLASSIFICATION,
+    IFCCLASSIFICATIONITEM: () => IFCCLASSIFICATIONITEM,
+    IFCCLASSIFICATIONITEMRELATIONSHIP: () => IFCCLASSIFICATIONITEMRELATIONSHIP,
+    IFCCLASSIFICATIONNOTATION: () => IFCCLASSIFICATIONNOTATION,
+    IFCCLASSIFICATIONNOTATIONFACET: () => IFCCLASSIFICATIONNOTATIONFACET,
+    IFCCLASSIFICATIONREFERENCE: () => IFCCLASSIFICATIONREFERENCE,
+    IFCCLOSEDSHELL: () => IFCCLOSEDSHELL,
+    IFCCLOTHOID: () => IFCCLOTHOID,
+    IFCCOIL: () => IFCCOIL,
+    IFCCOILTYPE: () => IFCCOILTYPE,
+    IFCCOLOURRGB: () => IFCCOLOURRGB,
+    IFCCOLOURRGBLIST: () => IFCCOLOURRGBLIST,
+    IFCCOLOURSPECIFICATION: () => IFCCOLOURSPECIFICATION,
+    IFCCOLUMN: () => IFCCOLUMN,
+    IFCCOLUMNSTANDARDCASE: () => IFCCOLUMNSTANDARDCASE,
+    IFCCOLUMNTYPE: () => IFCCOLUMNTYPE,
+    IFCCOMMUNICATIONSAPPLIANCE: () => IFCCOMMUNICATIONSAPPLIANCE,
+    IFCCOMMUNICATIONSAPPLIANCETYPE: () => IFCCOMMUNICATIONSAPPLIANCETYPE,
+    IFCCOMPLEXNUMBER: () => IFCCOMPLEXNUMBER,
+    IFCCOMPLEXPROPERTY: () => IFCCOMPLEXPROPERTY,
+    IFCCOMPLEXPROPERTYTEMPLATE: () => IFCCOMPLEXPROPERTYTEMPLATE,
+    IFCCOMPOSITECURVE: () => IFCCOMPOSITECURVE,
+    IFCCOMPOSITECURVEONSURFACE: () => IFCCOMPOSITECURVEONSURFACE,
+    IFCCOMPOSITECURVESEGMENT: () => IFCCOMPOSITECURVESEGMENT,
+    IFCCOMPOSITEPROFILEDEF: () => IFCCOMPOSITEPROFILEDEF,
+    IFCCOMPOUNDPLANEANGLEMEASURE: () => IFCCOMPOUNDPLANEANGLEMEASURE,
+    IFCCOMPRESSOR: () => IFCCOMPRESSOR,
+    IFCCOMPRESSORTYPE: () => IFCCOMPRESSORTYPE,
+    IFCCONDENSER: () => IFCCONDENSER,
+    IFCCONDENSERTYPE: () => IFCCONDENSERTYPE,
+    IFCCONDITION: () => IFCCONDITION,
+    IFCCONDITIONCRITERION: () => IFCCONDITIONCRITERION,
+    IFCCONIC: () => IFCCONIC,
+    IFCCONNECTEDFACESET: () => IFCCONNECTEDFACESET,
+    IFCCONNECTIONCURVEGEOMETRY: () => IFCCONNECTIONCURVEGEOMETRY,
+    IFCCONNECTIONGEOMETRY: () => IFCCONNECTIONGEOMETRY,
+    IFCCONNECTIONPOINTECCENTRICITY: () => IFCCONNECTIONPOINTECCENTRICITY,
+    IFCCONNECTIONPOINTGEOMETRY: () => IFCCONNECTIONPOINTGEOMETRY,
+    IFCCONNECTIONPORTGEOMETRY: () => IFCCONNECTIONPORTGEOMETRY,
+    IFCCONNECTIONSURFACEGEOMETRY: () => IFCCONNECTIONSURFACEGEOMETRY,
+    IFCCONNECTIONVOLUMEGEOMETRY: () => IFCCONNECTIONVOLUMEGEOMETRY,
+    IFCCONSTRAINT: () => IFCCONSTRAINT,
+    IFCCONSTRAINTAGGREGATIONRELATIONSHIP: () => IFCCONSTRAINTAGGREGATIONRELATIONSHIP,
+    IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP: () => IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP,
+    IFCCONSTRAINTRELATIONSHIP: () => IFCCONSTRAINTRELATIONSHIP,
+    IFCCONSTRUCTIONEQUIPMENTRESOURCE: () => IFCCONSTRUCTIONEQUIPMENTRESOURCE,
+    IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE: () => IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE,
+    IFCCONSTRUCTIONMATERIALRESOURCE: () => IFCCONSTRUCTIONMATERIALRESOURCE,
+    IFCCONSTRUCTIONMATERIALRESOURCETYPE: () => IFCCONSTRUCTIONMATERIALRESOURCETYPE,
+    IFCCONSTRUCTIONPRODUCTRESOURCE: () => IFCCONSTRUCTIONPRODUCTRESOURCE,
+    IFCCONSTRUCTIONPRODUCTRESOURCETYPE: () => IFCCONSTRUCTIONPRODUCTRESOURCETYPE,
+    IFCCONSTRUCTIONRESOURCE: () => IFCCONSTRUCTIONRESOURCE,
+    IFCCONSTRUCTIONRESOURCETYPE: () => IFCCONSTRUCTIONRESOURCETYPE,
+    IFCCONTEXT: () => IFCCONTEXT,
+    IFCCONTEXTDEPENDENTMEASURE: () => IFCCONTEXTDEPENDENTMEASURE,
+    IFCCONTEXTDEPENDENTUNIT: () => IFCCONTEXTDEPENDENTUNIT,
+    IFCCONTROL: () => IFCCONTROL,
+    IFCCONTROLLER: () => IFCCONTROLLER,
+    IFCCONTROLLERTYPE: () => IFCCONTROLLERTYPE,
+    IFCCONVERSIONBASEDUNIT: () => IFCCONVERSIONBASEDUNIT,
+    IFCCONVERSIONBASEDUNITWITHOFFSET: () => IFCCONVERSIONBASEDUNITWITHOFFSET,
+    IFCCONVEYORSEGMENT: () => IFCCONVEYORSEGMENT,
+    IFCCONVEYORSEGMENTTYPE: () => IFCCONVEYORSEGMENTTYPE,
+    IFCCOOLEDBEAM: () => IFCCOOLEDBEAM,
+    IFCCOOLEDBEAMTYPE: () => IFCCOOLEDBEAMTYPE,
+    IFCCOOLINGTOWER: () => IFCCOOLINGTOWER,
+    IFCCOOLINGTOWERTYPE: () => IFCCOOLINGTOWERTYPE,
+    IFCCOORDINATEDUNIVERSALTIMEOFFSET: () => IFCCOORDINATEDUNIVERSALTIMEOFFSET,
+    IFCCOORDINATEOPERATION: () => IFCCOORDINATEOPERATION,
+    IFCCOORDINATEREFERENCESYSTEM: () => IFCCOORDINATEREFERENCESYSTEM,
+    IFCCOSINESPIRAL: () => IFCCOSINESPIRAL,
+    IFCCOSTITEM: () => IFCCOSTITEM,
+    IFCCOSTSCHEDULE: () => IFCCOSTSCHEDULE,
+    IFCCOSTVALUE: () => IFCCOSTVALUE,
+    IFCCOUNTMEASURE: () => IFCCOUNTMEASURE,
+    IFCCOURSE: () => IFCCOURSE,
+    IFCCOURSETYPE: () => IFCCOURSETYPE,
+    IFCCOVERING: () => IFCCOVERING,
+    IFCCOVERINGTYPE: () => IFCCOVERINGTYPE,
+    IFCCRANERAILASHAPEPROFILEDEF: () => IFCCRANERAILASHAPEPROFILEDEF,
+    IFCCRANERAILFSHAPEPROFILEDEF: () => IFCCRANERAILFSHAPEPROFILEDEF,
+    IFCCREWRESOURCE: () => IFCCREWRESOURCE,
+    IFCCREWRESOURCETYPE: () => IFCCREWRESOURCETYPE,
+    IFCCSGPRIMITIVE3D: () => IFCCSGPRIMITIVE3D,
+    IFCCSGSOLID: () => IFCCSGSOLID,
+    IFCCSHAPEPROFILEDEF: () => IFCCSHAPEPROFILEDEF,
+    IFCCURRENCYRELATIONSHIP: () => IFCCURRENCYRELATIONSHIP,
+    IFCCURTAINWALL: () => IFCCURTAINWALL,
+    IFCCURTAINWALLTYPE: () => IFCCURTAINWALLTYPE,
+    IFCCURVATUREMEASURE: () => IFCCURVATUREMEASURE,
+    IFCCURVE: () => IFCCURVE,
+    IFCCURVEBOUNDEDPLANE: () => IFCCURVEBOUNDEDPLANE,
+    IFCCURVEBOUNDEDSURFACE: () => IFCCURVEBOUNDEDSURFACE,
+    IFCCURVESEGMENT: () => IFCCURVESEGMENT,
+    IFCCURVESTYLE: () => IFCCURVESTYLE,
+    IFCCURVESTYLEFONT: () => IFCCURVESTYLEFONT,
+    IFCCURVESTYLEFONTANDSCALING: () => IFCCURVESTYLEFONTANDSCALING,
+    IFCCURVESTYLEFONTPATTERN: () => IFCCURVESTYLEFONTPATTERN,
+    IFCCYLINDRICALSURFACE: () => IFCCYLINDRICALSURFACE,
+    IFCDAMPER: () => IFCDAMPER,
+    IFCDAMPERTYPE: () => IFCDAMPERTYPE,
+    IFCDATE: () => IFCDATE,
+    IFCDATEANDTIME: () => IFCDATEANDTIME,
+    IFCDATETIME: () => IFCDATETIME,
+    IFCDAYINMONTHNUMBER: () => IFCDAYINMONTHNUMBER,
+    IFCDAYINWEEKNUMBER: () => IFCDAYINWEEKNUMBER,
+    IFCDAYLIGHTSAVINGHOUR: () => IFCDAYLIGHTSAVINGHOUR,
+    IFCDEEPFOUNDATION: () => IFCDEEPFOUNDATION,
+    IFCDEEPFOUNDATIONTYPE: () => IFCDEEPFOUNDATIONTYPE,
+    IFCDEFINEDSYMBOL: () => IFCDEFINEDSYMBOL,
+    IFCDERIVEDPROFILEDEF: () => IFCDERIVEDPROFILEDEF,
+    IFCDERIVEDUNIT: () => IFCDERIVEDUNIT,
+    IFCDERIVEDUNITELEMENT: () => IFCDERIVEDUNITELEMENT,
+    IFCDESCRIPTIVEMEASURE: () => IFCDESCRIPTIVEMEASURE,
+    IFCDIAMETERDIMENSION: () => IFCDIAMETERDIMENSION,
+    IFCDIMENSIONALEXPONENTS: () => IFCDIMENSIONALEXPONENTS,
+    IFCDIMENSIONCALLOUTRELATIONSHIP: () => IFCDIMENSIONCALLOUTRELATIONSHIP,
+    IFCDIMENSIONCOUNT: () => IFCDIMENSIONCOUNT,
+    IFCDIMENSIONCURVE: () => IFCDIMENSIONCURVE,
+    IFCDIMENSIONCURVEDIRECTEDCALLOUT: () => IFCDIMENSIONCURVEDIRECTEDCALLOUT,
+    IFCDIMENSIONCURVETERMINATOR: () => IFCDIMENSIONCURVETERMINATOR,
+    IFCDIMENSIONPAIR: () => IFCDIMENSIONPAIR,
+    IFCDIRECTION: () => IFCDIRECTION,
+    IFCDIRECTRIXCURVESWEPTAREASOLID: () => IFCDIRECTRIXCURVESWEPTAREASOLID,
+    IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID: () => IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID,
+    IFCDISCRETEACCESSORY: () => IFCDISCRETEACCESSORY,
+    IFCDISCRETEACCESSORYTYPE: () => IFCDISCRETEACCESSORYTYPE,
+    IFCDISTRIBUTIONBOARD: () => IFCDISTRIBUTIONBOARD,
+    IFCDISTRIBUTIONBOARDTYPE: () => IFCDISTRIBUTIONBOARDTYPE,
+    IFCDISTRIBUTIONCHAMBERELEMENT: () => IFCDISTRIBUTIONCHAMBERELEMENT,
+    IFCDISTRIBUTIONCHAMBERELEMENTTYPE: () => IFCDISTRIBUTIONCHAMBERELEMENTTYPE,
+    IFCDISTRIBUTIONCIRCUIT: () => IFCDISTRIBUTIONCIRCUIT,
+    IFCDISTRIBUTIONCONTROLELEMENT: () => IFCDISTRIBUTIONCONTROLELEMENT,
+    IFCDISTRIBUTIONCONTROLELEMENTTYPE: () => IFCDISTRIBUTIONCONTROLELEMENTTYPE,
+    IFCDISTRIBUTIONELEMENT: () => IFCDISTRIBUTIONELEMENT,
+    IFCDISTRIBUTIONELEMENTTYPE: () => IFCDISTRIBUTIONELEMENTTYPE,
+    IFCDISTRIBUTIONFLOWELEMENT: () => IFCDISTRIBUTIONFLOWELEMENT,
+    IFCDISTRIBUTIONFLOWELEMENTTYPE: () => IFCDISTRIBUTIONFLOWELEMENTTYPE,
+    IFCDISTRIBUTIONPORT: () => IFCDISTRIBUTIONPORT,
+    IFCDISTRIBUTIONSYSTEM: () => IFCDISTRIBUTIONSYSTEM,
+    IFCDOCUMENTELECTRONICFORMAT: () => IFCDOCUMENTELECTRONICFORMAT,
+    IFCDOCUMENTINFORMATION: () => IFCDOCUMENTINFORMATION,
+    IFCDOCUMENTINFORMATIONRELATIONSHIP: () => IFCDOCUMENTINFORMATIONRELATIONSHIP,
+    IFCDOCUMENTREFERENCE: () => IFCDOCUMENTREFERENCE,
+    IFCDOOR: () => IFCDOOR,
+    IFCDOORLININGPROPERTIES: () => IFCDOORLININGPROPERTIES,
+    IFCDOORPANELPROPERTIES: () => IFCDOORPANELPROPERTIES,
+    IFCDOORSTANDARDCASE: () => IFCDOORSTANDARDCASE,
+    IFCDOORSTYLE: () => IFCDOORSTYLE,
+    IFCDOORTYPE: () => IFCDOORTYPE,
+    IFCDOSEEQUIVALENTMEASURE: () => IFCDOSEEQUIVALENTMEASURE,
+    IFCDRAUGHTINGCALLOUT: () => IFCDRAUGHTINGCALLOUT,
+    IFCDRAUGHTINGCALLOUTRELATIONSHIP: () => IFCDRAUGHTINGCALLOUTRELATIONSHIP,
+    IFCDRAUGHTINGPREDEFINEDCOLOUR: () => IFCDRAUGHTINGPREDEFINEDCOLOUR,
+    IFCDRAUGHTINGPREDEFINEDCURVEFONT: () => IFCDRAUGHTINGPREDEFINEDCURVEFONT,
+    IFCDRAUGHTINGPREDEFINEDTEXTFONT: () => IFCDRAUGHTINGPREDEFINEDTEXTFONT,
+    IFCDUCTFITTING: () => IFCDUCTFITTING,
+    IFCDUCTFITTINGTYPE: () => IFCDUCTFITTINGTYPE,
+    IFCDUCTSEGMENT: () => IFCDUCTSEGMENT,
+    IFCDUCTSEGMENTTYPE: () => IFCDUCTSEGMENTTYPE,
+    IFCDUCTSILENCER: () => IFCDUCTSILENCER,
+    IFCDUCTSILENCERTYPE: () => IFCDUCTSILENCERTYPE,
+    IFCDURATION: () => IFCDURATION,
+    IFCDYNAMICVISCOSITYMEASURE: () => IFCDYNAMICVISCOSITYMEASURE,
+    IFCEARTHWORKSCUT: () => IFCEARTHWORKSCUT,
+    IFCEARTHWORKSELEMENT: () => IFCEARTHWORKSELEMENT,
+    IFCEARTHWORKSFILL: () => IFCEARTHWORKSFILL,
+    IFCEDGE: () => IFCEDGE,
+    IFCEDGECURVE: () => IFCEDGECURVE,
+    IFCEDGEFEATURE: () => IFCEDGEFEATURE,
+    IFCEDGELOOP: () => IFCEDGELOOP,
+    IFCELECTRICALBASEPROPERTIES: () => IFCELECTRICALBASEPROPERTIES,
+    IFCELECTRICALCIRCUIT: () => IFCELECTRICALCIRCUIT,
+    IFCELECTRICALELEMENT: () => IFCELECTRICALELEMENT,
+    IFCELECTRICAPPLIANCE: () => IFCELECTRICAPPLIANCE,
+    IFCELECTRICAPPLIANCETYPE: () => IFCELECTRICAPPLIANCETYPE,
+    IFCELECTRICCAPACITANCEMEASURE: () => IFCELECTRICCAPACITANCEMEASURE,
+    IFCELECTRICCHARGEMEASURE: () => IFCELECTRICCHARGEMEASURE,
+    IFCELECTRICCONDUCTANCEMEASURE: () => IFCELECTRICCONDUCTANCEMEASURE,
+    IFCELECTRICCURRENTMEASURE: () => IFCELECTRICCURRENTMEASURE,
+    IFCELECTRICDISTRIBUTIONBOARD: () => IFCELECTRICDISTRIBUTIONBOARD,
+    IFCELECTRICDISTRIBUTIONBOARDTYPE: () => IFCELECTRICDISTRIBUTIONBOARDTYPE,
+    IFCELECTRICDISTRIBUTIONPOINT: () => IFCELECTRICDISTRIBUTIONPOINT,
+    IFCELECTRICFLOWSTORAGEDEVICE: () => IFCELECTRICFLOWSTORAGEDEVICE,
+    IFCELECTRICFLOWSTORAGEDEVICETYPE: () => IFCELECTRICFLOWSTORAGEDEVICETYPE,
+    IFCELECTRICFLOWTREATMENTDEVICE: () => IFCELECTRICFLOWTREATMENTDEVICE,
+    IFCELECTRICFLOWTREATMENTDEVICETYPE: () => IFCELECTRICFLOWTREATMENTDEVICETYPE,
+    IFCELECTRICGENERATOR: () => IFCELECTRICGENERATOR,
+    IFCELECTRICGENERATORTYPE: () => IFCELECTRICGENERATORTYPE,
+    IFCELECTRICHEATERTYPE: () => IFCELECTRICHEATERTYPE,
+    IFCELECTRICMOTOR: () => IFCELECTRICMOTOR,
+    IFCELECTRICMOTORTYPE: () => IFCELECTRICMOTORTYPE,
+    IFCELECTRICRESISTANCEMEASURE: () => IFCELECTRICRESISTANCEMEASURE,
+    IFCELECTRICTIMECONTROL: () => IFCELECTRICTIMECONTROL,
+    IFCELECTRICTIMECONTROLTYPE: () => IFCELECTRICTIMECONTROLTYPE,
+    IFCELECTRICVOLTAGEMEASURE: () => IFCELECTRICVOLTAGEMEASURE,
+    IFCELEMENT: () => IFCELEMENT,
+    IFCELEMENTARYSURFACE: () => IFCELEMENTARYSURFACE,
+    IFCELEMENTASSEMBLY: () => IFCELEMENTASSEMBLY,
+    IFCELEMENTASSEMBLYTYPE: () => IFCELEMENTASSEMBLYTYPE,
+    IFCELEMENTCOMPONENT: () => IFCELEMENTCOMPONENT,
+    IFCELEMENTCOMPONENTTYPE: () => IFCELEMENTCOMPONENTTYPE,
+    IFCELEMENTQUANTITY: () => IFCELEMENTQUANTITY,
+    IFCELEMENTTYPE: () => IFCELEMENTTYPE,
+    IFCELLIPSE: () => IFCELLIPSE,
+    IFCELLIPSEPROFILEDEF: () => IFCELLIPSEPROFILEDEF,
+    IFCENERGYCONVERSIONDEVICE: () => IFCENERGYCONVERSIONDEVICE,
+    IFCENERGYCONVERSIONDEVICETYPE: () => IFCENERGYCONVERSIONDEVICETYPE,
+    IFCENERGYMEASURE: () => IFCENERGYMEASURE,
+    IFCENERGYPROPERTIES: () => IFCENERGYPROPERTIES,
+    IFCENGINE: () => IFCENGINE,
+    IFCENGINETYPE: () => IFCENGINETYPE,
+    IFCENVIRONMENTALIMPACTVALUE: () => IFCENVIRONMENTALIMPACTVALUE,
+    IFCEQUIPMENTELEMENT: () => IFCEQUIPMENTELEMENT,
+    IFCEQUIPMENTSTANDARD: () => IFCEQUIPMENTSTANDARD,
+    IFCEVAPORATIVECOOLER: () => IFCEVAPORATIVECOOLER,
+    IFCEVAPORATIVECOOLERTYPE: () => IFCEVAPORATIVECOOLERTYPE,
+    IFCEVAPORATOR: () => IFCEVAPORATOR,
+    IFCEVAPORATORTYPE: () => IFCEVAPORATORTYPE,
+    IFCEVENT: () => IFCEVENT,
+    IFCEVENTTIME: () => IFCEVENTTIME,
+    IFCEVENTTYPE: () => IFCEVENTTYPE,
+    IFCEXTENDEDMATERIALPROPERTIES: () => IFCEXTENDEDMATERIALPROPERTIES,
+    IFCEXTENDEDPROPERTIES: () => IFCEXTENDEDPROPERTIES,
+    IFCEXTERNALINFORMATION: () => IFCEXTERNALINFORMATION,
+    IFCEXTERNALLYDEFINEDHATCHSTYLE: () => IFCEXTERNALLYDEFINEDHATCHSTYLE,
+    IFCEXTERNALLYDEFINEDSURFACESTYLE: () => IFCEXTERNALLYDEFINEDSURFACESTYLE,
+    IFCEXTERNALLYDEFINEDSYMBOL: () => IFCEXTERNALLYDEFINEDSYMBOL,
+    IFCEXTERNALLYDEFINEDTEXTFONT: () => IFCEXTERNALLYDEFINEDTEXTFONT,
+    IFCEXTERNALREFERENCE: () => IFCEXTERNALREFERENCE,
+    IFCEXTERNALREFERENCERELATIONSHIP: () => IFCEXTERNALREFERENCERELATIONSHIP,
+    IFCEXTERNALSPATIALELEMENT: () => IFCEXTERNALSPATIALELEMENT,
+    IFCEXTERNALSPATIALSTRUCTUREELEMENT: () => IFCEXTERNALSPATIALSTRUCTUREELEMENT,
+    IFCEXTRUDEDAREASOLID: () => IFCEXTRUDEDAREASOLID,
+    IFCEXTRUDEDAREASOLIDTAPERED: () => IFCEXTRUDEDAREASOLIDTAPERED,
+    IFCFACE: () => IFCFACE,
+    IFCFACEBASEDSURFACEMODEL: () => IFCFACEBASEDSURFACEMODEL,
+    IFCFACEBOUND: () => IFCFACEBOUND,
+    IFCFACEOUTERBOUND: () => IFCFACEOUTERBOUND,
+    IFCFACESURFACE: () => IFCFACESURFACE,
+    IFCFACETEDBREP: () => IFCFACETEDBREP,
+    IFCFACETEDBREPWITHVOIDS: () => IFCFACETEDBREPWITHVOIDS,
+    IFCFACILITY: () => IFCFACILITY,
+    IFCFACILITYPART: () => IFCFACILITYPART,
+    IFCFACILITYPARTCOMMON: () => IFCFACILITYPARTCOMMON,
+    IFCFAILURECONNECTIONCONDITION: () => IFCFAILURECONNECTIONCONDITION,
+    IFCFAN: () => IFCFAN,
+    IFCFANTYPE: () => IFCFANTYPE,
+    IFCFASTENER: () => IFCFASTENER,
+    IFCFASTENERTYPE: () => IFCFASTENERTYPE,
+    IFCFEATUREELEMENT: () => IFCFEATUREELEMENT,
+    IFCFEATUREELEMENTADDITION: () => IFCFEATUREELEMENTADDITION,
+    IFCFEATUREELEMENTSUBTRACTION: () => IFCFEATUREELEMENTSUBTRACTION,
+    IFCFILLAREASTYLE: () => IFCFILLAREASTYLE,
+    IFCFILLAREASTYLEHATCHING: () => IFCFILLAREASTYLEHATCHING,
+    IFCFILLAREASTYLETILES: () => IFCFILLAREASTYLETILES,
+    IFCFILLAREASTYLETILESYMBOLWITHSTYLE: () => IFCFILLAREASTYLETILESYMBOLWITHSTYLE,
+    IFCFILTER: () => IFCFILTER,
+    IFCFILTERTYPE: () => IFCFILTERTYPE,
+    IFCFIRESUPPRESSIONTERMINAL: () => IFCFIRESUPPRESSIONTERMINAL,
+    IFCFIRESUPPRESSIONTERMINALTYPE: () => IFCFIRESUPPRESSIONTERMINALTYPE,
+    IFCFIXEDREFERENCESWEPTAREASOLID: () => IFCFIXEDREFERENCESWEPTAREASOLID,
+    IFCFLOWCONTROLLER: () => IFCFLOWCONTROLLER,
+    IFCFLOWCONTROLLERTYPE: () => IFCFLOWCONTROLLERTYPE,
+    IFCFLOWFITTING: () => IFCFLOWFITTING,
+    IFCFLOWFITTINGTYPE: () => IFCFLOWFITTINGTYPE,
+    IFCFLOWINSTRUMENT: () => IFCFLOWINSTRUMENT,
+    IFCFLOWINSTRUMENTTYPE: () => IFCFLOWINSTRUMENTTYPE,
+    IFCFLOWMETER: () => IFCFLOWMETER,
+    IFCFLOWMETERTYPE: () => IFCFLOWMETERTYPE,
+    IFCFLOWMOVINGDEVICE: () => IFCFLOWMOVINGDEVICE,
+    IFCFLOWMOVINGDEVICETYPE: () => IFCFLOWMOVINGDEVICETYPE,
+    IFCFLOWSEGMENT: () => IFCFLOWSEGMENT,
+    IFCFLOWSEGMENTTYPE: () => IFCFLOWSEGMENTTYPE,
+    IFCFLOWSTORAGEDEVICE: () => IFCFLOWSTORAGEDEVICE,
+    IFCFLOWSTORAGEDEVICETYPE: () => IFCFLOWSTORAGEDEVICETYPE,
+    IFCFLOWTERMINAL: () => IFCFLOWTERMINAL,
+    IFCFLOWTERMINALTYPE: () => IFCFLOWTERMINALTYPE,
+    IFCFLOWTREATMENTDEVICE: () => IFCFLOWTREATMENTDEVICE,
+    IFCFLOWTREATMENTDEVICETYPE: () => IFCFLOWTREATMENTDEVICETYPE,
+    IFCFLUIDFLOWPROPERTIES: () => IFCFLUIDFLOWPROPERTIES,
+    IFCFONTSTYLE: () => IFCFONTSTYLE,
+    IFCFONTVARIANT: () => IFCFONTVARIANT,
+    IFCFONTWEIGHT: () => IFCFONTWEIGHT,
+    IFCFOOTING: () => IFCFOOTING,
+    IFCFOOTINGTYPE: () => IFCFOOTINGTYPE,
+    IFCFORCEMEASURE: () => IFCFORCEMEASURE,
+    IFCFREQUENCYMEASURE: () => IFCFREQUENCYMEASURE,
+    IFCFUELPROPERTIES: () => IFCFUELPROPERTIES,
+    IFCFURNISHINGELEMENT: () => IFCFURNISHINGELEMENT,
+    IFCFURNISHINGELEMENTTYPE: () => IFCFURNISHINGELEMENTTYPE,
+    IFCFURNITURE: () => IFCFURNITURE,
+    IFCFURNITURESTANDARD: () => IFCFURNITURESTANDARD,
+    IFCFURNITURETYPE: () => IFCFURNITURETYPE,
+    IFCGASTERMINALTYPE: () => IFCGASTERMINALTYPE,
+    IFCGENERALMATERIALPROPERTIES: () => IFCGENERALMATERIALPROPERTIES,
+    IFCGENERALPROFILEPROPERTIES: () => IFCGENERALPROFILEPROPERTIES,
+    IFCGEOGRAPHICELEMENT: () => IFCGEOGRAPHICELEMENT,
+    IFCGEOGRAPHICELEMENTTYPE: () => IFCGEOGRAPHICELEMENTTYPE,
+    IFCGEOMETRICCURVESET: () => IFCGEOMETRICCURVESET,
+    IFCGEOMETRICREPRESENTATIONCONTEXT: () => IFCGEOMETRICREPRESENTATIONCONTEXT,
+    IFCGEOMETRICREPRESENTATIONITEM: () => IFCGEOMETRICREPRESENTATIONITEM,
+    IFCGEOMETRICREPRESENTATIONSUBCONTEXT: () => IFCGEOMETRICREPRESENTATIONSUBCONTEXT,
+    IFCGEOMETRICSET: () => IFCGEOMETRICSET,
+    IFCGEOMODEL: () => IFCGEOMODEL,
+    IFCGEOSLICE: () => IFCGEOSLICE,
+    IFCGEOTECHNICALASSEMBLY: () => IFCGEOTECHNICALASSEMBLY,
+    IFCGEOTECHNICALELEMENT: () => IFCGEOTECHNICALELEMENT,
+    IFCGEOTECHNICALSTRATUM: () => IFCGEOTECHNICALSTRATUM,
+    IFCGLOBALLYUNIQUEID: () => IFCGLOBALLYUNIQUEID,
+    IFCGRADIENTCURVE: () => IFCGRADIENTCURVE,
+    IFCGRID: () => IFCGRID,
+    IFCGRIDAXIS: () => IFCGRIDAXIS,
+    IFCGRIDPLACEMENT: () => IFCGRIDPLACEMENT,
+    IFCGROUP: () => IFCGROUP,
+    IFCHALFSPACESOLID: () => IFCHALFSPACESOLID,
+    IFCHEATEXCHANGER: () => IFCHEATEXCHANGER,
+    IFCHEATEXCHANGERTYPE: () => IFCHEATEXCHANGERTYPE,
+    IFCHEATFLUXDENSITYMEASURE: () => IFCHEATFLUXDENSITYMEASURE,
+    IFCHEATINGVALUEMEASURE: () => IFCHEATINGVALUEMEASURE,
+    IFCHOURINDAY: () => IFCHOURINDAY,
+    IFCHUMIDIFIER: () => IFCHUMIDIFIER,
+    IFCHUMIDIFIERTYPE: () => IFCHUMIDIFIERTYPE,
+    IFCHYGROSCOPICMATERIALPROPERTIES: () => IFCHYGROSCOPICMATERIALPROPERTIES,
+    IFCIDENTIFIER: () => IFCIDENTIFIER,
+    IFCILLUMINANCEMEASURE: () => IFCILLUMINANCEMEASURE,
+    IFCIMAGETEXTURE: () => IFCIMAGETEXTURE,
+    IFCIMPACTPROTECTIONDEVICE: () => IFCIMPACTPROTECTIONDEVICE,
+    IFCIMPACTPROTECTIONDEVICETYPE: () => IFCIMPACTPROTECTIONDEVICETYPE,
+    IFCINDEXEDCOLOURMAP: () => IFCINDEXEDCOLOURMAP,
+    IFCINDEXEDPOLYCURVE: () => IFCINDEXEDPOLYCURVE,
+    IFCINDEXEDPOLYGONALFACE: () => IFCINDEXEDPOLYGONALFACE,
+    IFCINDEXEDPOLYGONALFACEWITHVOIDS: () => IFCINDEXEDPOLYGONALFACEWITHVOIDS,
+    IFCINDEXEDPOLYGONALTEXTUREMAP: () => IFCINDEXEDPOLYGONALTEXTUREMAP,
+    IFCINDEXEDTEXTUREMAP: () => IFCINDEXEDTEXTUREMAP,
+    IFCINDEXEDTRIANGLETEXTUREMAP: () => IFCINDEXEDTRIANGLETEXTUREMAP,
+    IFCINDUCTANCEMEASURE: () => IFCINDUCTANCEMEASURE,
+    IFCINTEGER: () => IFCINTEGER,
+    IFCINTEGERCOUNTRATEMEASURE: () => IFCINTEGERCOUNTRATEMEASURE,
+    IFCINTERCEPTOR: () => IFCINTERCEPTOR,
+    IFCINTERCEPTORTYPE: () => IFCINTERCEPTORTYPE,
+    IFCINTERSECTIONCURVE: () => IFCINTERSECTIONCURVE,
+    IFCINVENTORY: () => IFCINVENTORY,
+    IFCIONCONCENTRATIONMEASURE: () => IFCIONCONCENTRATIONMEASURE,
+    IFCIRREGULARTIMESERIES: () => IFCIRREGULARTIMESERIES,
+    IFCIRREGULARTIMESERIESVALUE: () => IFCIRREGULARTIMESERIESVALUE,
+    IFCISHAPEPROFILEDEF: () => IFCISHAPEPROFILEDEF,
+    IFCISOTHERMALMOISTURECAPACITYMEASURE: () => IFCISOTHERMALMOISTURECAPACITYMEASURE,
+    IFCJUNCTIONBOX: () => IFCJUNCTIONBOX,
+    IFCJUNCTIONBOXTYPE: () => IFCJUNCTIONBOXTYPE,
+    IFCKERB: () => IFCKERB,
+    IFCKERBTYPE: () => IFCKERBTYPE,
+    IFCKINEMATICVISCOSITYMEASURE: () => IFCKINEMATICVISCOSITYMEASURE,
+    IFCLABEL: () => IFCLABEL,
+    IFCLABORRESOURCE: () => IFCLABORRESOURCE,
+    IFCLABORRESOURCETYPE: () => IFCLABORRESOURCETYPE,
+    IFCLAGTIME: () => IFCLAGTIME,
+    IFCLAMP: () => IFCLAMP,
+    IFCLAMPTYPE: () => IFCLAMPTYPE,
+    IFCLANGUAGEID: () => IFCLANGUAGEID,
+    IFCLENGTHMEASURE: () => IFCLENGTHMEASURE,
+    IFCLIBRARYINFORMATION: () => IFCLIBRARYINFORMATION,
+    IFCLIBRARYREFERENCE: () => IFCLIBRARYREFERENCE,
+    IFCLIGHTDISTRIBUTIONDATA: () => IFCLIGHTDISTRIBUTIONDATA,
+    IFCLIGHTFIXTURE: () => IFCLIGHTFIXTURE,
+    IFCLIGHTFIXTURETYPE: () => IFCLIGHTFIXTURETYPE,
+    IFCLIGHTINTENSITYDISTRIBUTION: () => IFCLIGHTINTENSITYDISTRIBUTION,
+    IFCLIGHTSOURCE: () => IFCLIGHTSOURCE,
+    IFCLIGHTSOURCEAMBIENT: () => IFCLIGHTSOURCEAMBIENT,
+    IFCLIGHTSOURCEDIRECTIONAL: () => IFCLIGHTSOURCEDIRECTIONAL,
+    IFCLIGHTSOURCEGONIOMETRIC: () => IFCLIGHTSOURCEGONIOMETRIC,
+    IFCLIGHTSOURCEPOSITIONAL: () => IFCLIGHTSOURCEPOSITIONAL,
+    IFCLIGHTSOURCESPOT: () => IFCLIGHTSOURCESPOT,
+    IFCLINE: () => IFCLINE,
+    IFCLINEARDIMENSION: () => IFCLINEARDIMENSION,
+    IFCLINEARELEMENT: () => IFCLINEARELEMENT,
+    IFCLINEARFORCEMEASURE: () => IFCLINEARFORCEMEASURE,
+    IFCLINEARMOMENTMEASURE: () => IFCLINEARMOMENTMEASURE,
+    IFCLINEARPLACEMENT: () => IFCLINEARPLACEMENT,
+    IFCLINEARPOSITIONINGELEMENT: () => IFCLINEARPOSITIONINGELEMENT,
+    IFCLINEARSTIFFNESSMEASURE: () => IFCLINEARSTIFFNESSMEASURE,
+    IFCLINEARVELOCITYMEASURE: () => IFCLINEARVELOCITYMEASURE,
+    IFCLINEINDEX: () => IFCLINEINDEX,
+    IFCLIQUIDTERMINAL: () => IFCLIQUIDTERMINAL,
+    IFCLIQUIDTERMINALTYPE: () => IFCLIQUIDTERMINALTYPE,
+    IFCLOCALPLACEMENT: () => IFCLOCALPLACEMENT,
+    IFCLOCALTIME: () => IFCLOCALTIME,
+    IFCLOGICAL: () => IFCLOGICAL,
+    IFCLOOP: () => IFCLOOP,
+    IFCLSHAPEPROFILEDEF: () => IFCLSHAPEPROFILEDEF,
+    IFCLUMINOUSFLUXMEASURE: () => IFCLUMINOUSFLUXMEASURE,
+    IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE: () => IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE,
+    IFCLUMINOUSINTENSITYMEASURE: () => IFCLUMINOUSINTENSITYMEASURE,
+    IFCMAGNETICFLUXDENSITYMEASURE: () => IFCMAGNETICFLUXDENSITYMEASURE,
+    IFCMAGNETICFLUXMEASURE: () => IFCMAGNETICFLUXMEASURE,
+    IFCMANIFOLDSOLIDBREP: () => IFCMANIFOLDSOLIDBREP,
+    IFCMAPCONVERSION: () => IFCMAPCONVERSION,
+    IFCMAPPEDITEM: () => IFCMAPPEDITEM,
+    IFCMARINEFACILITY: () => IFCMARINEFACILITY,
+    IFCMARINEPART: () => IFCMARINEPART,
+    IFCMASSDENSITYMEASURE: () => IFCMASSDENSITYMEASURE,
+    IFCMASSFLOWRATEMEASURE: () => IFCMASSFLOWRATEMEASURE,
+    IFCMASSMEASURE: () => IFCMASSMEASURE,
+    IFCMASSPERLENGTHMEASURE: () => IFCMASSPERLENGTHMEASURE,
+    IFCMATERIAL: () => IFCMATERIAL,
+    IFCMATERIALCLASSIFICATIONRELATIONSHIP: () => IFCMATERIALCLASSIFICATIONRELATIONSHIP,
+    IFCMATERIALCONSTITUENT: () => IFCMATERIALCONSTITUENT,
+    IFCMATERIALCONSTITUENTSET: () => IFCMATERIALCONSTITUENTSET,
+    IFCMATERIALDEFINITION: () => IFCMATERIALDEFINITION,
+    IFCMATERIALDEFINITIONREPRESENTATION: () => IFCMATERIALDEFINITIONREPRESENTATION,
+    IFCMATERIALLAYER: () => IFCMATERIALLAYER,
+    IFCMATERIALLAYERSET: () => IFCMATERIALLAYERSET,
+    IFCMATERIALLAYERSETUSAGE: () => IFCMATERIALLAYERSETUSAGE,
+    IFCMATERIALLAYERWITHOFFSETS: () => IFCMATERIALLAYERWITHOFFSETS,
+    IFCMATERIALLIST: () => IFCMATERIALLIST,
+    IFCMATERIALPROFILE: () => IFCMATERIALPROFILE,
+    IFCMATERIALPROFILESET: () => IFCMATERIALPROFILESET,
+    IFCMATERIALPROFILESETUSAGE: () => IFCMATERIALPROFILESETUSAGE,
+    IFCMATERIALPROFILESETUSAGETAPERING: () => IFCMATERIALPROFILESETUSAGETAPERING,
+    IFCMATERIALPROFILEWITHOFFSETS: () => IFCMATERIALPROFILEWITHOFFSETS,
+    IFCMATERIALPROPERTIES: () => IFCMATERIALPROPERTIES,
+    IFCMATERIALRELATIONSHIP: () => IFCMATERIALRELATIONSHIP,
+    IFCMATERIALUSAGEDEFINITION: () => IFCMATERIALUSAGEDEFINITION,
+    IFCMEASUREWITHUNIT: () => IFCMEASUREWITHUNIT,
+    IFCMECHANICALCONCRETEMATERIALPROPERTIES: () => IFCMECHANICALCONCRETEMATERIALPROPERTIES,
+    IFCMECHANICALFASTENER: () => IFCMECHANICALFASTENER,
+    IFCMECHANICALFASTENERTYPE: () => IFCMECHANICALFASTENERTYPE,
+    IFCMECHANICALMATERIALPROPERTIES: () => IFCMECHANICALMATERIALPROPERTIES,
+    IFCMECHANICALSTEELMATERIALPROPERTIES: () => IFCMECHANICALSTEELMATERIALPROPERTIES,
+    IFCMEDICALDEVICE: () => IFCMEDICALDEVICE,
+    IFCMEDICALDEVICETYPE: () => IFCMEDICALDEVICETYPE,
+    IFCMEMBER: () => IFCMEMBER,
+    IFCMEMBERSTANDARDCASE: () => IFCMEMBERSTANDARDCASE,
+    IFCMEMBERTYPE: () => IFCMEMBERTYPE,
+    IFCMETRIC: () => IFCMETRIC,
+    IFCMINUTEINHOUR: () => IFCMINUTEINHOUR,
+    IFCMIRROREDPROFILEDEF: () => IFCMIRROREDPROFILEDEF,
+    IFCMOBILETELECOMMUNICATIONSAPPLIANCE: () => IFCMOBILETELECOMMUNICATIONSAPPLIANCE,
+    IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE: () => IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE,
+    IFCMODULUSOFELASTICITYMEASURE: () => IFCMODULUSOFELASTICITYMEASURE,
+    IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE: () => IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE,
+    IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE: () => IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE,
+    IFCMODULUSOFSUBGRADEREACTIONMEASURE: () => IFCMODULUSOFSUBGRADEREACTIONMEASURE,
+    IFCMOISTUREDIFFUSIVITYMEASURE: () => IFCMOISTUREDIFFUSIVITYMEASURE,
+    IFCMOLECULARWEIGHTMEASURE: () => IFCMOLECULARWEIGHTMEASURE,
+    IFCMOMENTOFINERTIAMEASURE: () => IFCMOMENTOFINERTIAMEASURE,
+    IFCMONETARYMEASURE: () => IFCMONETARYMEASURE,
+    IFCMONETARYUNIT: () => IFCMONETARYUNIT,
+    IFCMONTHINYEARNUMBER: () => IFCMONTHINYEARNUMBER,
+    IFCMOORINGDEVICE: () => IFCMOORINGDEVICE,
+    IFCMOORINGDEVICETYPE: () => IFCMOORINGDEVICETYPE,
+    IFCMOTORCONNECTION: () => IFCMOTORCONNECTION,
+    IFCMOTORCONNECTIONTYPE: () => IFCMOTORCONNECTIONTYPE,
+    IFCMOVE: () => IFCMOVE,
+    IFCNAMEDUNIT: () => IFCNAMEDUNIT,
+    IFCNAVIGATIONELEMENT: () => IFCNAVIGATIONELEMENT,
+    IFCNAVIGATIONELEMENTTYPE: () => IFCNAVIGATIONELEMENTTYPE,
+    IFCNONNEGATIVELENGTHMEASURE: () => IFCNONNEGATIVELENGTHMEASURE,
+    IFCNORMALISEDRATIOMEASURE: () => IFCNORMALISEDRATIOMEASURE,
+    IFCNUMERICMEASURE: () => IFCNUMERICMEASURE,
+    IFCOBJECT: () => IFCOBJECT,
+    IFCOBJECTDEFINITION: () => IFCOBJECTDEFINITION,
+    IFCOBJECTIVE: () => IFCOBJECTIVE,
+    IFCOBJECTPLACEMENT: () => IFCOBJECTPLACEMENT,
+    IFCOCCUPANT: () => IFCOCCUPANT,
+    IFCOFFSETCURVE: () => IFCOFFSETCURVE,
+    IFCOFFSETCURVE2D: () => IFCOFFSETCURVE2D,
+    IFCOFFSETCURVE3D: () => IFCOFFSETCURVE3D,
+    IFCOFFSETCURVEBYDISTANCES: () => IFCOFFSETCURVEBYDISTANCES,
+    IFCONEDIRECTIONREPEATFACTOR: () => IFCONEDIRECTIONREPEATFACTOR,
+    IFCOPENCROSSPROFILEDEF: () => IFCOPENCROSSPROFILEDEF,
+    IFCOPENINGELEMENT: () => IFCOPENINGELEMENT,
+    IFCOPENINGSTANDARDCASE: () => IFCOPENINGSTANDARDCASE,
+    IFCOPENSHELL: () => IFCOPENSHELL,
+    IFCOPTICALMATERIALPROPERTIES: () => IFCOPTICALMATERIALPROPERTIES,
+    IFCORDERACTION: () => IFCORDERACTION,
+    IFCORGANIZATION: () => IFCORGANIZATION,
+    IFCORGANIZATIONRELATIONSHIP: () => IFCORGANIZATIONRELATIONSHIP,
+    IFCORIENTEDEDGE: () => IFCORIENTEDEDGE,
+    IFCOUTERBOUNDARYCURVE: () => IFCOUTERBOUNDARYCURVE,
+    IFCOUTLET: () => IFCOUTLET,
+    IFCOUTLETTYPE: () => IFCOUTLETTYPE,
+    IFCOWNERHISTORY: () => IFCOWNERHISTORY,
+    IFCPARAMETERIZEDPROFILEDEF: () => IFCPARAMETERIZEDPROFILEDEF,
+    IFCPARAMETERVALUE: () => IFCPARAMETERVALUE,
+    IFCPATH: () => IFCPATH,
+    IFCPAVEMENT: () => IFCPAVEMENT,
+    IFCPAVEMENTTYPE: () => IFCPAVEMENTTYPE,
+    IFCPCURVE: () => IFCPCURVE,
+    IFCPERFORMANCEHISTORY: () => IFCPERFORMANCEHISTORY,
+    IFCPERMEABLECOVERINGPROPERTIES: () => IFCPERMEABLECOVERINGPROPERTIES,
+    IFCPERMIT: () => IFCPERMIT,
+    IFCPERSON: () => IFCPERSON,
+    IFCPERSONANDORGANIZATION: () => IFCPERSONANDORGANIZATION,
+    IFCPHMEASURE: () => IFCPHMEASURE,
+    IFCPHYSICALCOMPLEXQUANTITY: () => IFCPHYSICALCOMPLEXQUANTITY,
+    IFCPHYSICALQUANTITY: () => IFCPHYSICALQUANTITY,
+    IFCPHYSICALSIMPLEQUANTITY: () => IFCPHYSICALSIMPLEQUANTITY,
+    IFCPILE: () => IFCPILE,
+    IFCPILETYPE: () => IFCPILETYPE,
+    IFCPIPEFITTING: () => IFCPIPEFITTING,
+    IFCPIPEFITTINGTYPE: () => IFCPIPEFITTINGTYPE,
+    IFCPIPESEGMENT: () => IFCPIPESEGMENT,
+    IFCPIPESEGMENTTYPE: () => IFCPIPESEGMENTTYPE,
+    IFCPIXELTEXTURE: () => IFCPIXELTEXTURE,
+    IFCPLACEMENT: () => IFCPLACEMENT,
+    IFCPLANARBOX: () => IFCPLANARBOX,
+    IFCPLANAREXTENT: () => IFCPLANAREXTENT,
+    IFCPLANARFORCEMEASURE: () => IFCPLANARFORCEMEASURE,
+    IFCPLANE: () => IFCPLANE,
+    IFCPLANEANGLEMEASURE: () => IFCPLANEANGLEMEASURE,
+    IFCPLATE: () => IFCPLATE,
+    IFCPLATESTANDARDCASE: () => IFCPLATESTANDARDCASE,
+    IFCPLATETYPE: () => IFCPLATETYPE,
+    IFCPOINT: () => IFCPOINT,
+    IFCPOINTBYDISTANCEEXPRESSION: () => IFCPOINTBYDISTANCEEXPRESSION,
+    IFCPOINTONCURVE: () => IFCPOINTONCURVE,
+    IFCPOINTONSURFACE: () => IFCPOINTONSURFACE,
+    IFCPOLYGONALBOUNDEDHALFSPACE: () => IFCPOLYGONALBOUNDEDHALFSPACE,
+    IFCPOLYGONALFACESET: () => IFCPOLYGONALFACESET,
+    IFCPOLYLINE: () => IFCPOLYLINE,
+    IFCPOLYLOOP: () => IFCPOLYLOOP,
+    IFCPOLYNOMIALCURVE: () => IFCPOLYNOMIALCURVE,
+    IFCPORT: () => IFCPORT,
+    IFCPOSITIONINGELEMENT: () => IFCPOSITIONINGELEMENT,
+    IFCPOSITIVEINTEGER: () => IFCPOSITIVEINTEGER,
+    IFCPOSITIVELENGTHMEASURE: () => IFCPOSITIVELENGTHMEASURE,
+    IFCPOSITIVEPLANEANGLEMEASURE: () => IFCPOSITIVEPLANEANGLEMEASURE,
+    IFCPOSITIVERATIOMEASURE: () => IFCPOSITIVERATIOMEASURE,
+    IFCPOSTALADDRESS: () => IFCPOSTALADDRESS,
+    IFCPOWERMEASURE: () => IFCPOWERMEASURE,
+    IFCPREDEFINEDCOLOUR: () => IFCPREDEFINEDCOLOUR,
+    IFCPREDEFINEDCURVEFONT: () => IFCPREDEFINEDCURVEFONT,
+    IFCPREDEFINEDDIMENSIONSYMBOL: () => IFCPREDEFINEDDIMENSIONSYMBOL,
+    IFCPREDEFINEDITEM: () => IFCPREDEFINEDITEM,
+    IFCPREDEFINEDPOINTMARKERSYMBOL: () => IFCPREDEFINEDPOINTMARKERSYMBOL,
+    IFCPREDEFINEDPROPERTIES: () => IFCPREDEFINEDPROPERTIES,
+    IFCPREDEFINEDPROPERTYSET: () => IFCPREDEFINEDPROPERTYSET,
+    IFCPREDEFINEDSYMBOL: () => IFCPREDEFINEDSYMBOL,
+    IFCPREDEFINEDTERMINATORSYMBOL: () => IFCPREDEFINEDTERMINATORSYMBOL,
+    IFCPREDEFINEDTEXTFONT: () => IFCPREDEFINEDTEXTFONT,
+    IFCPRESENTABLETEXT: () => IFCPRESENTABLETEXT,
+    IFCPRESENTATIONITEM: () => IFCPRESENTATIONITEM,
+    IFCPRESENTATIONLAYERASSIGNMENT: () => IFCPRESENTATIONLAYERASSIGNMENT,
+    IFCPRESENTATIONLAYERWITHSTYLE: () => IFCPRESENTATIONLAYERWITHSTYLE,
+    IFCPRESENTATIONSTYLE: () => IFCPRESENTATIONSTYLE,
+    IFCPRESENTATIONSTYLEASSIGNMENT: () => IFCPRESENTATIONSTYLEASSIGNMENT,
+    IFCPRESSUREMEASURE: () => IFCPRESSUREMEASURE,
+    IFCPROCEDURE: () => IFCPROCEDURE,
+    IFCPROCEDURETYPE: () => IFCPROCEDURETYPE,
+    IFCPROCESS: () => IFCPROCESS,
+    IFCPRODUCT: () => IFCPRODUCT,
+    IFCPRODUCTDEFINITIONSHAPE: () => IFCPRODUCTDEFINITIONSHAPE,
+    IFCPRODUCTREPRESENTATION: () => IFCPRODUCTREPRESENTATION,
+    IFCPRODUCTSOFCOMBUSTIONPROPERTIES: () => IFCPRODUCTSOFCOMBUSTIONPROPERTIES,
+    IFCPROFILEDEF: () => IFCPROFILEDEF,
+    IFCPROFILEPROPERTIES: () => IFCPROFILEPROPERTIES,
+    IFCPROJECT: () => IFCPROJECT,
+    IFCPROJECTEDCRS: () => IFCPROJECTEDCRS,
+    IFCPROJECTIONCURVE: () => IFCPROJECTIONCURVE,
+    IFCPROJECTIONELEMENT: () => IFCPROJECTIONELEMENT,
+    IFCPROJECTLIBRARY: () => IFCPROJECTLIBRARY,
+    IFCPROJECTORDER: () => IFCPROJECTORDER,
+    IFCPROJECTORDERRECORD: () => IFCPROJECTORDERRECORD,
+    IFCPROPERTY: () => IFCPROPERTY,
+    IFCPROPERTYABSTRACTION: () => IFCPROPERTYABSTRACTION,
+    IFCPROPERTYBOUNDEDVALUE: () => IFCPROPERTYBOUNDEDVALUE,
+    IFCPROPERTYCONSTRAINTRELATIONSHIP: () => IFCPROPERTYCONSTRAINTRELATIONSHIP,
+    IFCPROPERTYDEFINITION: () => IFCPROPERTYDEFINITION,
+    IFCPROPERTYDEPENDENCYRELATIONSHIP: () => IFCPROPERTYDEPENDENCYRELATIONSHIP,
+    IFCPROPERTYENUMERATEDVALUE: () => IFCPROPERTYENUMERATEDVALUE,
+    IFCPROPERTYENUMERATION: () => IFCPROPERTYENUMERATION,
+    IFCPROPERTYLISTVALUE: () => IFCPROPERTYLISTVALUE,
+    IFCPROPERTYREFERENCEVALUE: () => IFCPROPERTYREFERENCEVALUE,
+    IFCPROPERTYSET: () => IFCPROPERTYSET,
+    IFCPROPERTYSETDEFINITION: () => IFCPROPERTYSETDEFINITION,
+    IFCPROPERTYSETDEFINITIONSET: () => IFCPROPERTYSETDEFINITIONSET,
+    IFCPROPERTYSETTEMPLATE: () => IFCPROPERTYSETTEMPLATE,
+    IFCPROPERTYSINGLEVALUE: () => IFCPROPERTYSINGLEVALUE,
+    IFCPROPERTYTABLEVALUE: () => IFCPROPERTYTABLEVALUE,
+    IFCPROPERTYTEMPLATE: () => IFCPROPERTYTEMPLATE,
+    IFCPROPERTYTEMPLATEDEFINITION: () => IFCPROPERTYTEMPLATEDEFINITION,
+    IFCPROTECTIVEDEVICE: () => IFCPROTECTIVEDEVICE,
+    IFCPROTECTIVEDEVICETRIPPINGUNIT: () => IFCPROTECTIVEDEVICETRIPPINGUNIT,
+    IFCPROTECTIVEDEVICETRIPPINGUNITTYPE: () => IFCPROTECTIVEDEVICETRIPPINGUNITTYPE,
+    IFCPROTECTIVEDEVICETYPE: () => IFCPROTECTIVEDEVICETYPE,
+    IFCPROXY: () => IFCPROXY,
+    IFCPUMP: () => IFCPUMP,
+    IFCPUMPTYPE: () => IFCPUMPTYPE,
+    IFCQUANTITYAREA: () => IFCQUANTITYAREA,
+    IFCQUANTITYCOUNT: () => IFCQUANTITYCOUNT,
+    IFCQUANTITYLENGTH: () => IFCQUANTITYLENGTH,
+    IFCQUANTITYNUMBER: () => IFCQUANTITYNUMBER,
+    IFCQUANTITYSET: () => IFCQUANTITYSET,
+    IFCQUANTITYTIME: () => IFCQUANTITYTIME,
+    IFCQUANTITYVOLUME: () => IFCQUANTITYVOLUME,
+    IFCQUANTITYWEIGHT: () => IFCQUANTITYWEIGHT,
+    IFCRADIOACTIVITYMEASURE: () => IFCRADIOACTIVITYMEASURE,
+    IFCRADIUSDIMENSION: () => IFCRADIUSDIMENSION,
+    IFCRAIL: () => IFCRAIL,
+    IFCRAILING: () => IFCRAILING,
+    IFCRAILINGTYPE: () => IFCRAILINGTYPE,
+    IFCRAILTYPE: () => IFCRAILTYPE,
+    IFCRAILWAY: () => IFCRAILWAY,
+    IFCRAILWAYPART: () => IFCRAILWAYPART,
+    IFCRAMP: () => IFCRAMP,
+    IFCRAMPFLIGHT: () => IFCRAMPFLIGHT,
+    IFCRAMPFLIGHTTYPE: () => IFCRAMPFLIGHTTYPE,
+    IFCRAMPTYPE: () => IFCRAMPTYPE,
+    IFCRATIOMEASURE: () => IFCRATIOMEASURE,
+    IFCRATIONALBEZIERCURVE: () => IFCRATIONALBEZIERCURVE,
+    IFCRATIONALBSPLINECURVEWITHKNOTS: () => IFCRATIONALBSPLINECURVEWITHKNOTS,
+    IFCRATIONALBSPLINESURFACEWITHKNOTS: () => IFCRATIONALBSPLINESURFACEWITHKNOTS,
+    IFCREAL: () => IFCREAL,
+    IFCRECTANGLEHOLLOWPROFILEDEF: () => IFCRECTANGLEHOLLOWPROFILEDEF,
+    IFCRECTANGLEPROFILEDEF: () => IFCRECTANGLEPROFILEDEF,
+    IFCRECTANGULARPYRAMID: () => IFCRECTANGULARPYRAMID,
+    IFCRECTANGULARTRIMMEDSURFACE: () => IFCRECTANGULARTRIMMEDSURFACE,
+    IFCRECURRENCEPATTERN: () => IFCRECURRENCEPATTERN,
+    IFCREFERENCE: () => IFCREFERENCE,
+    IFCREFERENCESVALUEDOCUMENT: () => IFCREFERENCESVALUEDOCUMENT,
+    IFCREFERENT: () => IFCREFERENT,
+    IFCREGULARTIMESERIES: () => IFCREGULARTIMESERIES,
+    IFCREINFORCEDSOIL: () => IFCREINFORCEDSOIL,
+    IFCREINFORCEMENTBARPROPERTIES: () => IFCREINFORCEMENTBARPROPERTIES,
+    IFCREINFORCEMENTDEFINITIONPROPERTIES: () => IFCREINFORCEMENTDEFINITIONPROPERTIES,
+    IFCREINFORCINGBAR: () => IFCREINFORCINGBAR,
+    IFCREINFORCINGBARTYPE: () => IFCREINFORCINGBARTYPE,
+    IFCREINFORCINGELEMENT: () => IFCREINFORCINGELEMENT,
+    IFCREINFORCINGELEMENTTYPE: () => IFCREINFORCINGELEMENTTYPE,
+    IFCREINFORCINGMESH: () => IFCREINFORCINGMESH,
+    IFCREINFORCINGMESHTYPE: () => IFCREINFORCINGMESHTYPE,
+    IFCRELADHERESTOELEMENT: () => IFCRELADHERESTOELEMENT,
+    IFCRELAGGREGATES: () => IFCRELAGGREGATES,
+    IFCRELASSIGNS: () => IFCRELASSIGNS,
+    IFCRELASSIGNSTASKS: () => IFCRELASSIGNSTASKS,
+    IFCRELASSIGNSTOACTOR: () => IFCRELASSIGNSTOACTOR,
+    IFCRELASSIGNSTOCONTROL: () => IFCRELASSIGNSTOCONTROL,
+    IFCRELASSIGNSTOGROUP: () => IFCRELASSIGNSTOGROUP,
+    IFCRELASSIGNSTOGROUPBYFACTOR: () => IFCRELASSIGNSTOGROUPBYFACTOR,
+    IFCRELASSIGNSTOPROCESS: () => IFCRELASSIGNSTOPROCESS,
+    IFCRELASSIGNSTOPRODUCT: () => IFCRELASSIGNSTOPRODUCT,
+    IFCRELASSIGNSTOPROJECTORDER: () => IFCRELASSIGNSTOPROJECTORDER,
+    IFCRELASSIGNSTORESOURCE: () => IFCRELASSIGNSTORESOURCE,
+    IFCRELASSOCIATES: () => IFCRELASSOCIATES,
+    IFCRELASSOCIATESAPPLIEDVALUE: () => IFCRELASSOCIATESAPPLIEDVALUE,
+    IFCRELASSOCIATESAPPROVAL: () => IFCRELASSOCIATESAPPROVAL,
+    IFCRELASSOCIATESCLASSIFICATION: () => IFCRELASSOCIATESCLASSIFICATION,
+    IFCRELASSOCIATESCONSTRAINT: () => IFCRELASSOCIATESCONSTRAINT,
+    IFCRELASSOCIATESDOCUMENT: () => IFCRELASSOCIATESDOCUMENT,
+    IFCRELASSOCIATESLIBRARY: () => IFCRELASSOCIATESLIBRARY,
+    IFCRELASSOCIATESMATERIAL: () => IFCRELASSOCIATESMATERIAL,
+    IFCRELASSOCIATESPROFILEDEF: () => IFCRELASSOCIATESPROFILEDEF,
+    IFCRELASSOCIATESPROFILEPROPERTIES: () => IFCRELASSOCIATESPROFILEPROPERTIES,
+    IFCRELATIONSHIP: () => IFCRELATIONSHIP,
+    IFCRELAXATION: () => IFCRELAXATION,
+    IFCRELCONNECTS: () => IFCRELCONNECTS,
+    IFCRELCONNECTSELEMENTS: () => IFCRELCONNECTSELEMENTS,
+    IFCRELCONNECTSPATHELEMENTS: () => IFCRELCONNECTSPATHELEMENTS,
+    IFCRELCONNECTSPORTS: () => IFCRELCONNECTSPORTS,
+    IFCRELCONNECTSPORTTOELEMENT: () => IFCRELCONNECTSPORTTOELEMENT,
+    IFCRELCONNECTSSTRUCTURALACTIVITY: () => IFCRELCONNECTSSTRUCTURALACTIVITY,
+    IFCRELCONNECTSSTRUCTURALELEMENT: () => IFCRELCONNECTSSTRUCTURALELEMENT,
+    IFCRELCONNECTSSTRUCTURALMEMBER: () => IFCRELCONNECTSSTRUCTURALMEMBER,
+    IFCRELCONNECTSWITHECCENTRICITY: () => IFCRELCONNECTSWITHECCENTRICITY,
+    IFCRELCONNECTSWITHREALIZINGELEMENTS: () => IFCRELCONNECTSWITHREALIZINGELEMENTS,
+    IFCRELCONTAINEDINSPATIALSTRUCTURE: () => IFCRELCONTAINEDINSPATIALSTRUCTURE,
+    IFCRELCOVERSBLDGELEMENTS: () => IFCRELCOVERSBLDGELEMENTS,
+    IFCRELCOVERSSPACES: () => IFCRELCOVERSSPACES,
+    IFCRELDECLARES: () => IFCRELDECLARES,
+    IFCRELDECOMPOSES: () => IFCRELDECOMPOSES,
+    IFCRELDEFINES: () => IFCRELDEFINES,
+    IFCRELDEFINESBYOBJECT: () => IFCRELDEFINESBYOBJECT,
+    IFCRELDEFINESBYPROPERTIES: () => IFCRELDEFINESBYPROPERTIES,
+    IFCRELDEFINESBYTEMPLATE: () => IFCRELDEFINESBYTEMPLATE,
+    IFCRELDEFINESBYTYPE: () => IFCRELDEFINESBYTYPE,
+    IFCRELFILLSELEMENT: () => IFCRELFILLSELEMENT,
+    IFCRELFLOWCONTROLELEMENTS: () => IFCRELFLOWCONTROLELEMENTS,
+    IFCRELINTERACTIONREQUIREMENTS: () => IFCRELINTERACTIONREQUIREMENTS,
+    IFCRELINTERFERESELEMENTS: () => IFCRELINTERFERESELEMENTS,
+    IFCRELNESTS: () => IFCRELNESTS,
+    IFCRELOCCUPIESSPACES: () => IFCRELOCCUPIESSPACES,
+    IFCRELOVERRIDESPROPERTIES: () => IFCRELOVERRIDESPROPERTIES,
+    IFCRELPOSITIONS: () => IFCRELPOSITIONS,
+    IFCRELPROJECTSELEMENT: () => IFCRELPROJECTSELEMENT,
+    IFCRELREFERENCEDINSPATIALSTRUCTURE: () => IFCRELREFERENCEDINSPATIALSTRUCTURE,
+    IFCRELSCHEDULESCOSTITEMS: () => IFCRELSCHEDULESCOSTITEMS,
+    IFCRELSEQUENCE: () => IFCRELSEQUENCE,
+    IFCRELSERVICESBUILDINGS: () => IFCRELSERVICESBUILDINGS,
+    IFCRELSPACEBOUNDARY: () => IFCRELSPACEBOUNDARY,
+    IFCRELSPACEBOUNDARY1STLEVEL: () => IFCRELSPACEBOUNDARY1STLEVEL,
+    IFCRELSPACEBOUNDARY2NDLEVEL: () => IFCRELSPACEBOUNDARY2NDLEVEL,
+    IFCRELVOIDSELEMENT: () => IFCRELVOIDSELEMENT,
+    IFCREPARAMETRISEDCOMPOSITECURVESEGMENT: () => IFCREPARAMETRISEDCOMPOSITECURVESEGMENT,
+    IFCREPRESENTATION: () => IFCREPRESENTATION,
+    IFCREPRESENTATIONCONTEXT: () => IFCREPRESENTATIONCONTEXT,
+    IFCREPRESENTATIONITEM: () => IFCREPRESENTATIONITEM,
+    IFCREPRESENTATIONMAP: () => IFCREPRESENTATIONMAP,
+    IFCRESOURCE: () => IFCRESOURCE,
+    IFCRESOURCEAPPROVALRELATIONSHIP: () => IFCRESOURCEAPPROVALRELATIONSHIP,
+    IFCRESOURCECONSTRAINTRELATIONSHIP: () => IFCRESOURCECONSTRAINTRELATIONSHIP,
+    IFCRESOURCELEVELRELATIONSHIP: () => IFCRESOURCELEVELRELATIONSHIP,
+    IFCRESOURCETIME: () => IFCRESOURCETIME,
+    IFCREVOLVEDAREASOLID: () => IFCREVOLVEDAREASOLID,
+    IFCREVOLVEDAREASOLIDTAPERED: () => IFCREVOLVEDAREASOLIDTAPERED,
+    IFCRIBPLATEPROFILEPROPERTIES: () => IFCRIBPLATEPROFILEPROPERTIES,
+    IFCRIGHTCIRCULARCONE: () => IFCRIGHTCIRCULARCONE,
+    IFCRIGHTCIRCULARCYLINDER: () => IFCRIGHTCIRCULARCYLINDER,
+    IFCROAD: () => IFCROAD,
+    IFCROADPART: () => IFCROADPART,
+    IFCROOF: () => IFCROOF,
+    IFCROOFTYPE: () => IFCROOFTYPE,
+    IFCROOT: () => IFCROOT,
+    IFCROTATIONALFREQUENCYMEASURE: () => IFCROTATIONALFREQUENCYMEASURE,
+    IFCROTATIONALMASSMEASURE: () => IFCROTATIONALMASSMEASURE,
+    IFCROTATIONALSTIFFNESSMEASURE: () => IFCROTATIONALSTIFFNESSMEASURE,
+    IFCROUNDEDEDGEFEATURE: () => IFCROUNDEDEDGEFEATURE,
+    IFCROUNDEDRECTANGLEPROFILEDEF: () => IFCROUNDEDRECTANGLEPROFILEDEF,
+    IFCSANITARYTERMINAL: () => IFCSANITARYTERMINAL,
+    IFCSANITARYTERMINALTYPE: () => IFCSANITARYTERMINALTYPE,
+    IFCSCHEDULETIMECONTROL: () => IFCSCHEDULETIMECONTROL,
+    IFCSCHEDULINGTIME: () => IFCSCHEDULINGTIME,
+    IFCSEAMCURVE: () => IFCSEAMCURVE,
+    IFCSECONDINMINUTE: () => IFCSECONDINMINUTE,
+    IFCSECONDORDERPOLYNOMIALSPIRAL: () => IFCSECONDORDERPOLYNOMIALSPIRAL,
+    IFCSECTIONALAREAINTEGRALMEASURE: () => IFCSECTIONALAREAINTEGRALMEASURE,
+    IFCSECTIONEDSOLID: () => IFCSECTIONEDSOLID,
+    IFCSECTIONEDSOLIDHORIZONTAL: () => IFCSECTIONEDSOLIDHORIZONTAL,
+    IFCSECTIONEDSPINE: () => IFCSECTIONEDSPINE,
+    IFCSECTIONEDSURFACE: () => IFCSECTIONEDSURFACE,
+    IFCSECTIONMODULUSMEASURE: () => IFCSECTIONMODULUSMEASURE,
+    IFCSECTIONPROPERTIES: () => IFCSECTIONPROPERTIES,
+    IFCSECTIONREINFORCEMENTPROPERTIES: () => IFCSECTIONREINFORCEMENTPROPERTIES,
+    IFCSEGMENT: () => IFCSEGMENT,
+    IFCSEGMENTEDREFERENCECURVE: () => IFCSEGMENTEDREFERENCECURVE,
+    IFCSENSOR: () => IFCSENSOR,
+    IFCSENSORTYPE: () => IFCSENSORTYPE,
+    IFCSERVICELIFE: () => IFCSERVICELIFE,
+    IFCSERVICELIFEFACTOR: () => IFCSERVICELIFEFACTOR,
+    IFCSEVENTHORDERPOLYNOMIALSPIRAL: () => IFCSEVENTHORDERPOLYNOMIALSPIRAL,
+    IFCSHADINGDEVICE: () => IFCSHADINGDEVICE,
+    IFCSHADINGDEVICETYPE: () => IFCSHADINGDEVICETYPE,
+    IFCSHAPEASPECT: () => IFCSHAPEASPECT,
+    IFCSHAPEMODEL: () => IFCSHAPEMODEL,
+    IFCSHAPEREPRESENTATION: () => IFCSHAPEREPRESENTATION,
+    IFCSHEARMODULUSMEASURE: () => IFCSHEARMODULUSMEASURE,
+    IFCSHELLBASEDSURFACEMODEL: () => IFCSHELLBASEDSURFACEMODEL,
+    IFCSIGN: () => IFCSIGN,
+    IFCSIGNAL: () => IFCSIGNAL,
+    IFCSIGNALTYPE: () => IFCSIGNALTYPE,
+    IFCSIGNTYPE: () => IFCSIGNTYPE,
+    IFCSIMPLEPROPERTY: () => IFCSIMPLEPROPERTY,
+    IFCSIMPLEPROPERTYTEMPLATE: () => IFCSIMPLEPROPERTYTEMPLATE,
+    IFCSINESPIRAL: () => IFCSINESPIRAL,
+    IFCSITE: () => IFCSITE,
+    IFCSIUNIT: () => IFCSIUNIT,
+    IFCSLAB: () => IFCSLAB,
+    IFCSLABELEMENTEDCASE: () => IFCSLABELEMENTEDCASE,
+    IFCSLABSTANDARDCASE: () => IFCSLABSTANDARDCASE,
+    IFCSLABTYPE: () => IFCSLABTYPE,
+    IFCSLIPPAGECONNECTIONCONDITION: () => IFCSLIPPAGECONNECTIONCONDITION,
+    IFCSOLARDEVICE: () => IFCSOLARDEVICE,
+    IFCSOLARDEVICETYPE: () => IFCSOLARDEVICETYPE,
+    IFCSOLIDANGLEMEASURE: () => IFCSOLIDANGLEMEASURE,
+    IFCSOLIDMODEL: () => IFCSOLIDMODEL,
+    IFCSOUNDPOWERLEVELMEASURE: () => IFCSOUNDPOWERLEVELMEASURE,
+    IFCSOUNDPOWERMEASURE: () => IFCSOUNDPOWERMEASURE,
+    IFCSOUNDPRESSURELEVELMEASURE: () => IFCSOUNDPRESSURELEVELMEASURE,
+    IFCSOUNDPRESSUREMEASURE: () => IFCSOUNDPRESSUREMEASURE,
+    IFCSOUNDPROPERTIES: () => IFCSOUNDPROPERTIES,
+    IFCSOUNDVALUE: () => IFCSOUNDVALUE,
+    IFCSPACE: () => IFCSPACE,
+    IFCSPACEHEATER: () => IFCSPACEHEATER,
+    IFCSPACEHEATERTYPE: () => IFCSPACEHEATERTYPE,
+    IFCSPACEPROGRAM: () => IFCSPACEPROGRAM,
+    IFCSPACETHERMALLOADPROPERTIES: () => IFCSPACETHERMALLOADPROPERTIES,
+    IFCSPACETYPE: () => IFCSPACETYPE,
+    IFCSPATIALELEMENT: () => IFCSPATIALELEMENT,
+    IFCSPATIALELEMENTTYPE: () => IFCSPATIALELEMENTTYPE,
+    IFCSPATIALSTRUCTUREELEMENT: () => IFCSPATIALSTRUCTUREELEMENT,
+    IFCSPATIALSTRUCTUREELEMENTTYPE: () => IFCSPATIALSTRUCTUREELEMENTTYPE,
+    IFCSPATIALZONE: () => IFCSPATIALZONE,
+    IFCSPATIALZONETYPE: () => IFCSPATIALZONETYPE,
+    IFCSPECIFICHEATCAPACITYMEASURE: () => IFCSPECIFICHEATCAPACITYMEASURE,
+    IFCSPECULAREXPONENT: () => IFCSPECULAREXPONENT,
+    IFCSPECULARROUGHNESS: () => IFCSPECULARROUGHNESS,
+    IFCSPHERE: () => IFCSPHERE,
+    IFCSPHERICALSURFACE: () => IFCSPHERICALSURFACE,
+    IFCSPIRAL: () => IFCSPIRAL,
+    IFCSTACKTERMINAL: () => IFCSTACKTERMINAL,
+    IFCSTACKTERMINALTYPE: () => IFCSTACKTERMINALTYPE,
+    IFCSTAIR: () => IFCSTAIR,
+    IFCSTAIRFLIGHT: () => IFCSTAIRFLIGHT,
+    IFCSTAIRFLIGHTTYPE: () => IFCSTAIRFLIGHTTYPE,
+    IFCSTAIRTYPE: () => IFCSTAIRTYPE,
+    IFCSTRUCTURALACTION: () => IFCSTRUCTURALACTION,
+    IFCSTRUCTURALACTIVITY: () => IFCSTRUCTURALACTIVITY,
+    IFCSTRUCTURALANALYSISMODEL: () => IFCSTRUCTURALANALYSISMODEL,
+    IFCSTRUCTURALCONNECTION: () => IFCSTRUCTURALCONNECTION,
+    IFCSTRUCTURALCONNECTIONCONDITION: () => IFCSTRUCTURALCONNECTIONCONDITION,
+    IFCSTRUCTURALCURVEACTION: () => IFCSTRUCTURALCURVEACTION,
+    IFCSTRUCTURALCURVECONNECTION: () => IFCSTRUCTURALCURVECONNECTION,
+    IFCSTRUCTURALCURVEMEMBER: () => IFCSTRUCTURALCURVEMEMBER,
+    IFCSTRUCTURALCURVEMEMBERVARYING: () => IFCSTRUCTURALCURVEMEMBERVARYING,
+    IFCSTRUCTURALCURVEREACTION: () => IFCSTRUCTURALCURVEREACTION,
+    IFCSTRUCTURALITEM: () => IFCSTRUCTURALITEM,
+    IFCSTRUCTURALLINEARACTION: () => IFCSTRUCTURALLINEARACTION,
+    IFCSTRUCTURALLINEARACTIONVARYING: () => IFCSTRUCTURALLINEARACTIONVARYING,
+    IFCSTRUCTURALLOAD: () => IFCSTRUCTURALLOAD,
+    IFCSTRUCTURALLOADCASE: () => IFCSTRUCTURALLOADCASE,
+    IFCSTRUCTURALLOADCONFIGURATION: () => IFCSTRUCTURALLOADCONFIGURATION,
+    IFCSTRUCTURALLOADGROUP: () => IFCSTRUCTURALLOADGROUP,
+    IFCSTRUCTURALLOADLINEARFORCE: () => IFCSTRUCTURALLOADLINEARFORCE,
+    IFCSTRUCTURALLOADORRESULT: () => IFCSTRUCTURALLOADORRESULT,
+    IFCSTRUCTURALLOADPLANARFORCE: () => IFCSTRUCTURALLOADPLANARFORCE,
+    IFCSTRUCTURALLOADSINGLEDISPLACEMENT: () => IFCSTRUCTURALLOADSINGLEDISPLACEMENT,
+    IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION: () => IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION,
+    IFCSTRUCTURALLOADSINGLEFORCE: () => IFCSTRUCTURALLOADSINGLEFORCE,
+    IFCSTRUCTURALLOADSINGLEFORCEWARPING: () => IFCSTRUCTURALLOADSINGLEFORCEWARPING,
+    IFCSTRUCTURALLOADSTATIC: () => IFCSTRUCTURALLOADSTATIC,
+    IFCSTRUCTURALLOADTEMPERATURE: () => IFCSTRUCTURALLOADTEMPERATURE,
+    IFCSTRUCTURALMEMBER: () => IFCSTRUCTURALMEMBER,
+    IFCSTRUCTURALPLANARACTION: () => IFCSTRUCTURALPLANARACTION,
+    IFCSTRUCTURALPLANARACTIONVARYING: () => IFCSTRUCTURALPLANARACTIONVARYING,
+    IFCSTRUCTURALPOINTACTION: () => IFCSTRUCTURALPOINTACTION,
+    IFCSTRUCTURALPOINTCONNECTION: () => IFCSTRUCTURALPOINTCONNECTION,
+    IFCSTRUCTURALPOINTREACTION: () => IFCSTRUCTURALPOINTREACTION,
+    IFCSTRUCTURALPROFILEPROPERTIES: () => IFCSTRUCTURALPROFILEPROPERTIES,
+    IFCSTRUCTURALREACTION: () => IFCSTRUCTURALREACTION,
+    IFCSTRUCTURALRESULTGROUP: () => IFCSTRUCTURALRESULTGROUP,
+    IFCSTRUCTURALSTEELPROFILEPROPERTIES: () => IFCSTRUCTURALSTEELPROFILEPROPERTIES,
+    IFCSTRUCTURALSURFACEACTION: () => IFCSTRUCTURALSURFACEACTION,
+    IFCSTRUCTURALSURFACECONNECTION: () => IFCSTRUCTURALSURFACECONNECTION,
+    IFCSTRUCTURALSURFACEMEMBER: () => IFCSTRUCTURALSURFACEMEMBER,
+    IFCSTRUCTURALSURFACEMEMBERVARYING: () => IFCSTRUCTURALSURFACEMEMBERVARYING,
+    IFCSTRUCTURALSURFACEREACTION: () => IFCSTRUCTURALSURFACEREACTION,
+    IFCSTRUCTUREDDIMENSIONCALLOUT: () => IFCSTRUCTUREDDIMENSIONCALLOUT,
+    IFCSTYLEDITEM: () => IFCSTYLEDITEM,
+    IFCSTYLEDREPRESENTATION: () => IFCSTYLEDREPRESENTATION,
+    IFCSTYLEMODEL: () => IFCSTYLEMODEL,
+    IFCSUBCONTRACTRESOURCE: () => IFCSUBCONTRACTRESOURCE,
+    IFCSUBCONTRACTRESOURCETYPE: () => IFCSUBCONTRACTRESOURCETYPE,
+    IFCSUBEDGE: () => IFCSUBEDGE,
+    IFCSURFACE: () => IFCSURFACE,
+    IFCSURFACECURVE: () => IFCSURFACECURVE,
+    IFCSURFACECURVESWEPTAREASOLID: () => IFCSURFACECURVESWEPTAREASOLID,
+    IFCSURFACEFEATURE: () => IFCSURFACEFEATURE,
+    IFCSURFACEOFLINEAREXTRUSION: () => IFCSURFACEOFLINEAREXTRUSION,
+    IFCSURFACEOFREVOLUTION: () => IFCSURFACEOFREVOLUTION,
+    IFCSURFACEREINFORCEMENTAREA: () => IFCSURFACEREINFORCEMENTAREA,
+    IFCSURFACESTYLE: () => IFCSURFACESTYLE,
+    IFCSURFACESTYLELIGHTING: () => IFCSURFACESTYLELIGHTING,
+    IFCSURFACESTYLEREFRACTION: () => IFCSURFACESTYLEREFRACTION,
+    IFCSURFACESTYLERENDERING: () => IFCSURFACESTYLERENDERING,
+    IFCSURFACESTYLESHADING: () => IFCSURFACESTYLESHADING,
+    IFCSURFACESTYLEWITHTEXTURES: () => IFCSURFACESTYLEWITHTEXTURES,
+    IFCSURFACETEXTURE: () => IFCSURFACETEXTURE,
+    IFCSWEPTAREASOLID: () => IFCSWEPTAREASOLID,
+    IFCSWEPTDISKSOLID: () => IFCSWEPTDISKSOLID,
+    IFCSWEPTDISKSOLIDPOLYGONAL: () => IFCSWEPTDISKSOLIDPOLYGONAL,
+    IFCSWEPTSURFACE: () => IFCSWEPTSURFACE,
+    IFCSWITCHINGDEVICE: () => IFCSWITCHINGDEVICE,
+    IFCSWITCHINGDEVICETYPE: () => IFCSWITCHINGDEVICETYPE,
+    IFCSYMBOLSTYLE: () => IFCSYMBOLSTYLE,
+    IFCSYSTEM: () => IFCSYSTEM,
+    IFCSYSTEMFURNITUREELEMENT: () => IFCSYSTEMFURNITUREELEMENT,
+    IFCSYSTEMFURNITUREELEMENTTYPE: () => IFCSYSTEMFURNITUREELEMENTTYPE,
+    IFCTABLE: () => IFCTABLE,
+    IFCTABLECOLUMN: () => IFCTABLECOLUMN,
+    IFCTABLEROW: () => IFCTABLEROW,
+    IFCTANK: () => IFCTANK,
+    IFCTANKTYPE: () => IFCTANKTYPE,
+    IFCTASK: () => IFCTASK,
+    IFCTASKTIME: () => IFCTASKTIME,
+    IFCTASKTIMERECURRING: () => IFCTASKTIMERECURRING,
+    IFCTASKTYPE: () => IFCTASKTYPE,
+    IFCTELECOMADDRESS: () => IFCTELECOMADDRESS,
+    IFCTEMPERATUREGRADIENTMEASURE: () => IFCTEMPERATUREGRADIENTMEASURE,
+    IFCTEMPERATURERATEOFCHANGEMEASURE: () => IFCTEMPERATURERATEOFCHANGEMEASURE,
+    IFCTENDON: () => IFCTENDON,
+    IFCTENDONANCHOR: () => IFCTENDONANCHOR,
+    IFCTENDONANCHORTYPE: () => IFCTENDONANCHORTYPE,
+    IFCTENDONCONDUIT: () => IFCTENDONCONDUIT,
+    IFCTENDONCONDUITTYPE: () => IFCTENDONCONDUITTYPE,
+    IFCTENDONTYPE: () => IFCTENDONTYPE,
+    IFCTERMINATORSYMBOL: () => IFCTERMINATORSYMBOL,
+    IFCTESSELLATEDFACESET: () => IFCTESSELLATEDFACESET,
+    IFCTESSELLATEDITEM: () => IFCTESSELLATEDITEM,
+    IFCTEXT: () => IFCTEXT,
+    IFCTEXTALIGNMENT: () => IFCTEXTALIGNMENT,
+    IFCTEXTDECORATION: () => IFCTEXTDECORATION,
+    IFCTEXTFONTNAME: () => IFCTEXTFONTNAME,
+    IFCTEXTLITERAL: () => IFCTEXTLITERAL,
+    IFCTEXTLITERALWITHEXTENT: () => IFCTEXTLITERALWITHEXTENT,
+    IFCTEXTSTYLE: () => IFCTEXTSTYLE,
+    IFCTEXTSTYLEFONTMODEL: () => IFCTEXTSTYLEFONTMODEL,
+    IFCTEXTSTYLEFORDEFINEDFONT: () => IFCTEXTSTYLEFORDEFINEDFONT,
+    IFCTEXTSTYLETEXTMODEL: () => IFCTEXTSTYLETEXTMODEL,
+    IFCTEXTSTYLEWITHBOXCHARACTERISTICS: () => IFCTEXTSTYLEWITHBOXCHARACTERISTICS,
+    IFCTEXTTRANSFORMATION: () => IFCTEXTTRANSFORMATION,
+    IFCTEXTURECOORDINATE: () => IFCTEXTURECOORDINATE,
+    IFCTEXTURECOORDINATEGENERATOR: () => IFCTEXTURECOORDINATEGENERATOR,
+    IFCTEXTURECOORDINATEINDICES: () => IFCTEXTURECOORDINATEINDICES,
+    IFCTEXTURECOORDINATEINDICESWITHVOIDS: () => IFCTEXTURECOORDINATEINDICESWITHVOIDS,
+    IFCTEXTUREMAP: () => IFCTEXTUREMAP,
+    IFCTEXTUREVERTEX: () => IFCTEXTUREVERTEX,
+    IFCTEXTUREVERTEXLIST: () => IFCTEXTUREVERTEXLIST,
+    IFCTHERMALADMITTANCEMEASURE: () => IFCTHERMALADMITTANCEMEASURE,
+    IFCTHERMALCONDUCTIVITYMEASURE: () => IFCTHERMALCONDUCTIVITYMEASURE,
+    IFCTHERMALEXPANSIONCOEFFICIENTMEASURE: () => IFCTHERMALEXPANSIONCOEFFICIENTMEASURE,
+    IFCTHERMALMATERIALPROPERTIES: () => IFCTHERMALMATERIALPROPERTIES,
+    IFCTHERMALRESISTANCEMEASURE: () => IFCTHERMALRESISTANCEMEASURE,
+    IFCTHERMALTRANSMITTANCEMEASURE: () => IFCTHERMALTRANSMITTANCEMEASURE,
+    IFCTHERMODYNAMICTEMPERATUREMEASURE: () => IFCTHERMODYNAMICTEMPERATUREMEASURE,
+    IFCTHIRDORDERPOLYNOMIALSPIRAL: () => IFCTHIRDORDERPOLYNOMIALSPIRAL,
+    IFCTIME: () => IFCTIME,
+    IFCTIMEMEASURE: () => IFCTIMEMEASURE,
+    IFCTIMEPERIOD: () => IFCTIMEPERIOD,
+    IFCTIMESERIES: () => IFCTIMESERIES,
+    IFCTIMESERIESREFERENCERELATIONSHIP: () => IFCTIMESERIESREFERENCERELATIONSHIP,
+    IFCTIMESERIESSCHEDULE: () => IFCTIMESERIESSCHEDULE,
+    IFCTIMESERIESVALUE: () => IFCTIMESERIESVALUE,
+    IFCTIMESTAMP: () => IFCTIMESTAMP,
+    IFCTOPOLOGICALREPRESENTATIONITEM: () => IFCTOPOLOGICALREPRESENTATIONITEM,
+    IFCTOPOLOGYREPRESENTATION: () => IFCTOPOLOGYREPRESENTATION,
+    IFCTOROIDALSURFACE: () => IFCTOROIDALSURFACE,
+    IFCTORQUEMEASURE: () => IFCTORQUEMEASURE,
+    IFCTRACKELEMENT: () => IFCTRACKELEMENT,
+    IFCTRACKELEMENTTYPE: () => IFCTRACKELEMENTTYPE,
+    IFCTRANSFORMER: () => IFCTRANSFORMER,
+    IFCTRANSFORMERTYPE: () => IFCTRANSFORMERTYPE,
+    IFCTRANSPORTATIONDEVICE: () => IFCTRANSPORTATIONDEVICE,
+    IFCTRANSPORTATIONDEVICETYPE: () => IFCTRANSPORTATIONDEVICETYPE,
+    IFCTRANSPORTELEMENT: () => IFCTRANSPORTELEMENT,
+    IFCTRANSPORTELEMENTTYPE: () => IFCTRANSPORTELEMENTTYPE,
+    IFCTRAPEZIUMPROFILEDEF: () => IFCTRAPEZIUMPROFILEDEF,
+    IFCTRIANGULATEDFACESET: () => IFCTRIANGULATEDFACESET,
+    IFCTRIANGULATEDIRREGULARNETWORK: () => IFCTRIANGULATEDIRREGULARNETWORK,
+    IFCTRIMMEDCURVE: () => IFCTRIMMEDCURVE,
+    IFCTSHAPEPROFILEDEF: () => IFCTSHAPEPROFILEDEF,
+    IFCTUBEBUNDLE: () => IFCTUBEBUNDLE,
+    IFCTUBEBUNDLETYPE: () => IFCTUBEBUNDLETYPE,
+    IFCTWODIRECTIONREPEATFACTOR: () => IFCTWODIRECTIONREPEATFACTOR,
+    IFCTYPEOBJECT: () => IFCTYPEOBJECT,
+    IFCTYPEPROCESS: () => IFCTYPEPROCESS,
+    IFCTYPEPRODUCT: () => IFCTYPEPRODUCT,
+    IFCTYPERESOURCE: () => IFCTYPERESOURCE,
+    IFCUNITARYCONTROLELEMENT: () => IFCUNITARYCONTROLELEMENT,
+    IFCUNITARYCONTROLELEMENTTYPE: () => IFCUNITARYCONTROLELEMENTTYPE,
+    IFCUNITARYEQUIPMENT: () => IFCUNITARYEQUIPMENT,
+    IFCUNITARYEQUIPMENTTYPE: () => IFCUNITARYEQUIPMENTTYPE,
+    IFCUNITASSIGNMENT: () => IFCUNITASSIGNMENT,
+    IFCURIREFERENCE: () => IFCURIREFERENCE,
+    IFCUSHAPEPROFILEDEF: () => IFCUSHAPEPROFILEDEF,
+    IFCVALVE: () => IFCVALVE,
+    IFCVALVETYPE: () => IFCVALVETYPE,
+    IFCVAPORPERMEABILITYMEASURE: () => IFCVAPORPERMEABILITYMEASURE,
+    IFCVECTOR: () => IFCVECTOR,
+    IFCVEHICLE: () => IFCVEHICLE,
+    IFCVEHICLETYPE: () => IFCVEHICLETYPE,
+    IFCVERTEX: () => IFCVERTEX,
+    IFCVERTEXBASEDTEXTUREMAP: () => IFCVERTEXBASEDTEXTUREMAP,
+    IFCVERTEXLOOP: () => IFCVERTEXLOOP,
+    IFCVERTEXPOINT: () => IFCVERTEXPOINT,
+    IFCVIBRATIONDAMPER: () => IFCVIBRATIONDAMPER,
+    IFCVIBRATIONDAMPERTYPE: () => IFCVIBRATIONDAMPERTYPE,
+    IFCVIBRATIONISOLATOR: () => IFCVIBRATIONISOLATOR,
+    IFCVIBRATIONISOLATORTYPE: () => IFCVIBRATIONISOLATORTYPE,
+    IFCVIRTUALELEMENT: () => IFCVIRTUALELEMENT,
+    IFCVIRTUALGRIDINTERSECTION: () => IFCVIRTUALGRIDINTERSECTION,
+    IFCVOIDINGFEATURE: () => IFCVOIDINGFEATURE,
+    IFCVOLUMEMEASURE: () => IFCVOLUMEMEASURE,
+    IFCVOLUMETRICFLOWRATEMEASURE: () => IFCVOLUMETRICFLOWRATEMEASURE,
+    IFCWALL: () => IFCWALL,
+    IFCWALLELEMENTEDCASE: () => IFCWALLELEMENTEDCASE,
+    IFCWALLSTANDARDCASE: () => IFCWALLSTANDARDCASE,
+    IFCWALLTYPE: () => IFCWALLTYPE,
+    IFCWARPINGCONSTANTMEASURE: () => IFCWARPINGCONSTANTMEASURE,
+    IFCWARPINGMOMENTMEASURE: () => IFCWARPINGMOMENTMEASURE,
+    IFCWASTETERMINAL: () => IFCWASTETERMINAL,
+    IFCWASTETERMINALTYPE: () => IFCWASTETERMINALTYPE,
+    IFCWATERPROPERTIES: () => IFCWATERPROPERTIES,
+    IFCWINDOW: () => IFCWINDOW,
+    IFCWINDOWLININGPROPERTIES: () => IFCWINDOWLININGPROPERTIES,
+    IFCWINDOWPANELPROPERTIES: () => IFCWINDOWPANELPROPERTIES,
+    IFCWINDOWSTANDARDCASE: () => IFCWINDOWSTANDARDCASE,
+    IFCWINDOWSTYLE: () => IFCWINDOWSTYLE,
+    IFCWINDOWTYPE: () => IFCWINDOWTYPE,
+    IFCWORKCALENDAR: () => IFCWORKCALENDAR,
+    IFCWORKCONTROL: () => IFCWORKCONTROL,
+    IFCWORKPLAN: () => IFCWORKPLAN,
+    IFCWORKSCHEDULE: () => IFCWORKSCHEDULE,
+    IFCWORKTIME: () => IFCWORKTIME,
+    IFCYEARNUMBER: () => IFCYEARNUMBER,
+    IFCZONE: () => IFCZONE,
+    IFCZSHAPEPROFILEDEF: () => IFCZSHAPEPROFILEDEF,
+    INTEGER: () => INTEGER,
+    IfcAPI: () => IfcAPI2,
+    IfcLineObject: () => IfcLineObject,
+    InheritanceDef: () => InheritanceDef,
+    InversePropertyDef: () => InversePropertyDef,
+    LABEL: () => LABEL,
+    LINE_END: () => LINE_END,
+    LogLevel: () => LogLevel,
+    Properties: () => Properties,
+    REAL: () => REAL,
+    REF: () => REF,
+    SET_BEGIN: () => SET_BEGIN,
+    SET_END: () => SET_END,
+    STRING: () => STRING,
+    SchemaNames: () => SchemaNames,
+    Schemas: () => Schemas,
+    ToRawLineData: () => ToRawLineData,
+    TypeInitialisers: () => TypeInitialisers,
+    UNKNOWN: () => UNKNOWN,
+    logical: () => logical,
+    ms: () => ms
+  });
+  var __defProp2 = Object.defineProperty;
+  var __defProps = Object.defineProperties;
+  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
+  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
+  var __hasOwnProp2 = Object.prototype.hasOwnProperty;
+  var __propIsEnum = Object.prototype.propertyIsEnumerable;
+  var __defNormalProp = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+  var __spreadValues = (a, b) => {
+    for (var prop in b || (b = {}))
+      if (__hasOwnProp2.call(b, prop))
+        __defNormalProp(a, prop, b[prop]);
+    if (__getOwnPropSymbols)
+      for (var prop of __getOwnPropSymbols(b)) {
+        if (__propIsEnum.call(b, prop))
+          __defNormalProp(a, prop, b[prop]);
+      }
+    return a;
+  };
+  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
+  var __commonJS = (cb, mod) => function __require() {
+    return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+  };
+  var __async = (__this, __arguments, generator) => {
+    return new Promise((resolve, reject) => {
+      var fulfilled = (value) => {
+        try {
+          step(generator.next(value));
+        } catch (e) {
+          reject(e);
+        }
+      };
+      var rejected = (value) => {
+        try {
+          step(generator.throw(value));
+        } catch (e) {
+          reject(e);
+        }
+      };
+      var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
+      step((generator = generator.apply(__this, __arguments)).next());
+    });
+  };
+  var require_web_ifc_mt = __commonJS({
+    "dist/web-ifc-mt.js"(exports, module) {
+      var WebIFCWasm2 = (() => {
+        var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0;
+        return function(moduleArg = {}) {
+          function GROWABLE_HEAP_I8() {
+            if (wasmMemory.buffer != HEAP8.buffer) {
+              updateMemoryViews();
+            }
+            return HEAP8;
+          }
+          function GROWABLE_HEAP_U8() {
+            if (wasmMemory.buffer != HEAP8.buffer) {
+              updateMemoryViews();
+            }
+            return HEAPU8;
+          }
+          function GROWABLE_HEAP_I16() {
+            if (wasmMemory.buffer != HEAP8.buffer) {
+              updateMemoryViews();
+            }
+            return HEAP16;
+          }
+          function GROWABLE_HEAP_U16() {
+            if (wasmMemory.buffer != HEAP8.buffer) {
+              updateMemoryViews();
+            }
+            return HEAPU16;
+          }
+          function GROWABLE_HEAP_I32() {
+            if (wasmMemory.buffer != HEAP8.buffer) {
+              updateMemoryViews();
+            }
+            return HEAP32;
+          }
+          function GROWABLE_HEAP_U32() {
+            if (wasmMemory.buffer != HEAP8.buffer) {
+              updateMemoryViews();
+            }
+            return HEAPU32;
+          }
+          function GROWABLE_HEAP_F32() {
+            if (wasmMemory.buffer != HEAP8.buffer) {
+              updateMemoryViews();
+            }
+            return HEAPF32;
+          }
+          function GROWABLE_HEAP_F64() {
+            if (wasmMemory.buffer != HEAP8.buffer) {
+              updateMemoryViews();
+            }
+            return HEAPF64;
+          }
+          var Module = moduleArg;
+          var readyPromiseResolve, readyPromiseReject;
+          Module["ready"] = new Promise((resolve, reject) => {
+            readyPromiseResolve = resolve;
+            readyPromiseReject = reject;
+          });
+          var moduleOverrides = Object.assign({}, Module);
+          var arguments_ = [];
+          var thisProgram = "./this.program";
+          var quit_ = (status, toThrow) => {
+            throw toThrow;
+          };
+          var ENVIRONMENT_IS_WEB = typeof window == "object";
+          var ENVIRONMENT_IS_WORKER = typeof importScripts == "function";
+          var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
+          var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false;
+          var scriptDirectory = "";
+          function locateFile(path) {
+            if (Module["locateFile"]) {
+              return Module["locateFile"](path, scriptDirectory);
+            }
+            return scriptDirectory + path;
+          }
+          var read_, readAsync, readBinary, setWindowTitle;
+          if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+            if (ENVIRONMENT_IS_WORKER) {
+              scriptDirectory = self.location.href;
+            } else if (typeof document != "undefined" && document.currentScript) {
+              scriptDirectory = document.currentScript.src;
+            }
+            if (_scriptDir) {
+              scriptDirectory = _scriptDir;
+            }
+            if (scriptDirectory.indexOf("blob:") !== 0) {
+              scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
+            } else {
+              scriptDirectory = "";
+            }
+            {
+              read_ = (url) => {
+                var xhr = new XMLHttpRequest();
+                xhr.open("GET", url, false);
+                xhr.send(null);
+                return xhr.responseText;
+              };
+              if (ENVIRONMENT_IS_WORKER) {
+                readBinary = (url) => {
+                  var xhr = new XMLHttpRequest();
+                  xhr.open("GET", url, false);
+                  xhr.responseType = "arraybuffer";
+                  xhr.send(null);
+                  return new Uint8Array(xhr.response);
+                };
+              }
+              readAsync = (url, onload, onerror) => {
+                var xhr = new XMLHttpRequest();
+                xhr.open("GET", url, true);
+                xhr.responseType = "arraybuffer";
+                xhr.onload = () => {
+                  if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
+                    onload(xhr.response);
+                    return;
+                  }
+                  onerror();
+                };
+                xhr.onerror = onerror;
+                xhr.send(null);
+              };
+            }
+            setWindowTitle = (title) => document.title = title;
+          } else {
+          }
+          var out = Module["print"] || console.log.bind(console);
+          var err = Module["printErr"] || console.error.bind(console);
+          Object.assign(Module, moduleOverrides);
+          moduleOverrides = null;
+          if (Module["arguments"])
+            arguments_ = Module["arguments"];
+          if (Module["thisProgram"])
+            thisProgram = Module["thisProgram"];
+          if (Module["quit"])
+            quit_ = Module["quit"];
+          var wasmBinary;
+          if (Module["wasmBinary"])
+            wasmBinary = Module["wasmBinary"];
+          var noExitRuntime = Module["noExitRuntime"] || true;
+          if (typeof WebAssembly != "object") {
+            abort("no native wasm support detected");
+          }
+          var wasmMemory;
+          var wasmExports;
+          var wasmModule;
+          var ABORT = false;
+          var EXITSTATUS;
+          function assert(condition, text) {
+            if (!condition) {
+              abort(text);
+            }
+          }
+          var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
+          function updateMemoryViews() {
+            var b = wasmMemory.buffer;
+            Module["HEAP8"] = HEAP8 = new Int8Array(b);
+            Module["HEAP16"] = HEAP16 = new Int16Array(b);
+            Module["HEAP32"] = HEAP32 = new Int32Array(b);
+            Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
+            Module["HEAPU16"] = HEAPU16 = new Uint16Array(b);
+            Module["HEAPU32"] = HEAPU32 = new Uint32Array(b);
+            Module["HEAPF32"] = HEAPF32 = new Float32Array(b);
+            Module["HEAPF64"] = HEAPF64 = new Float64Array(b);
+          }
+          var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;
+          assert(INITIAL_MEMORY >= 5242880, "INITIAL_MEMORY should be larger than STACK_SIZE, was " + INITIAL_MEMORY + "! (STACK_SIZE=5242880)");
+          if (ENVIRONMENT_IS_PTHREAD) {
+            wasmMemory = Module["wasmMemory"];
+          } else {
+            if (Module["wasmMemory"]) {
+              wasmMemory = Module["wasmMemory"];
+            } else {
+              wasmMemory = new WebAssembly.Memory({ "initial": INITIAL_MEMORY / 65536, "maximum": 4294967296 / 65536, "shared": true });
+              if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) {
+                err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");
+                if (ENVIRONMENT_IS_NODE) {
+                  err("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)");
+                }
+                throw Error("bad memory");
+              }
+            }
+          }
+          updateMemoryViews();
+          INITIAL_MEMORY = wasmMemory.buffer.byteLength;
+          var wasmTable;
+          var __ATPRERUN__ = [];
+          var __ATINIT__ = [];
+          var __ATPOSTRUN__ = [];
+          var runtimeInitialized = false;
+          var runtimeKeepaliveCounter = 0;
+          function keepRuntimeAlive() {
+            return noExitRuntime || runtimeKeepaliveCounter > 0;
+          }
+          function preRun() {
+            if (Module["preRun"]) {
+              if (typeof Module["preRun"] == "function")
+                Module["preRun"] = [Module["preRun"]];
+              while (Module["preRun"].length) {
+                addOnPreRun(Module["preRun"].shift());
+              }
+            }
+            callRuntimeCallbacks(__ATPRERUN__);
+          }
+          function initRuntime() {
+            runtimeInitialized = true;
+            if (ENVIRONMENT_IS_PTHREAD)
+              return;
+            if (!Module["noFSInit"] && !FS.init.initialized)
+              FS.init();
+            FS.ignorePermissions = false;
+            TTY.init();
+            callRuntimeCallbacks(__ATINIT__);
+          }
+          function postRun() {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return;
+            if (Module["postRun"]) {
+              if (typeof Module["postRun"] == "function")
+                Module["postRun"] = [Module["postRun"]];
+              while (Module["postRun"].length) {
+                addOnPostRun(Module["postRun"].shift());
+              }
+            }
+            callRuntimeCallbacks(__ATPOSTRUN__);
+          }
+          function addOnPreRun(cb) {
+            __ATPRERUN__.unshift(cb);
+          }
+          function addOnInit(cb) {
+            __ATINIT__.unshift(cb);
+          }
+          function addOnPostRun(cb) {
+            __ATPOSTRUN__.unshift(cb);
+          }
+          var runDependencies = 0;
+          var runDependencyWatcher = null;
+          var dependenciesFulfilled = null;
+          function getUniqueRunDependency(id) {
+            return id;
+          }
+          function addRunDependency(id) {
+            runDependencies++;
+            if (Module["monitorRunDependencies"]) {
+              Module["monitorRunDependencies"](runDependencies);
+            }
+          }
+          function removeRunDependency(id) {
+            runDependencies--;
+            if (Module["monitorRunDependencies"]) {
+              Module["monitorRunDependencies"](runDependencies);
+            }
+            if (runDependencies == 0) {
+              if (runDependencyWatcher !== null) {
+                clearInterval(runDependencyWatcher);
+                runDependencyWatcher = null;
+              }
+              if (dependenciesFulfilled) {
+                var callback = dependenciesFulfilled;
+                dependenciesFulfilled = null;
+                callback();
+              }
+            }
+          }
+          function abort(what) {
+            if (Module["onAbort"]) {
+              Module["onAbort"](what);
+            }
+            what = "Aborted(" + what + ")";
+            err(what);
+            ABORT = true;
+            EXITSTATUS = 1;
+            what += ". Build with -sASSERTIONS for more info.";
+            var e = new WebAssembly.RuntimeError(what);
+            readyPromiseReject(e);
+            throw e;
+          }
+          var dataURIPrefix = "data:application/octet-stream;base64,";
+          function isDataURI(filename) {
+            return filename.startsWith(dataURIPrefix);
+          }
+          var wasmBinaryFile;
+          wasmBinaryFile = "web-ifc-mt.wasm";
+          if (!isDataURI(wasmBinaryFile)) {
+            wasmBinaryFile = locateFile(wasmBinaryFile);
+          }
+          function getBinarySync(file) {
+            if (file == wasmBinaryFile && wasmBinary) {
+              return new Uint8Array(wasmBinary);
+            }
+            if (readBinary) {
+              return readBinary(file);
+            }
+            throw "both async and sync fetching of the wasm failed";
+          }
+          function getBinaryPromise(binaryFile) {
+            if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
+              if (typeof fetch == "function") {
+                return fetch(binaryFile, { credentials: "same-origin" }).then((response) => {
+                  if (!response["ok"]) {
+                    throw "failed to load wasm binary file at '" + binaryFile + "'";
+                  }
+                  return response["arrayBuffer"]();
+                }).catch(() => getBinarySync(binaryFile));
+              }
+            }
+            return Promise.resolve().then(() => getBinarySync(binaryFile));
+          }
+          function instantiateArrayBuffer(binaryFile, imports, receiver) {
+            return getBinaryPromise(binaryFile).then((binary) => WebAssembly.instantiate(binary, imports)).then((instance) => instance).then(receiver, (reason) => {
+              err("failed to asynchronously prepare wasm: " + reason);
+              abort(reason);
+            });
+          }
+          function instantiateAsync(binary, binaryFile, imports, callback) {
+            if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") {
+              return fetch(binaryFile, { credentials: "same-origin" }).then((response) => {
+                var result = WebAssembly.instantiateStreaming(response, imports);
+                return result.then(callback, function(reason) {
+                  err("wasm streaming compile failed: " + reason);
+                  err("falling back to ArrayBuffer instantiation");
+                  return instantiateArrayBuffer(binaryFile, imports, callback);
+                });
+              });
+            }
+            return instantiateArrayBuffer(binaryFile, imports, callback);
+          }
+          function createWasm() {
+            var info = { "a": wasmImports };
+            function receiveInstance(instance, module2) {
+              var exports2 = instance.exports;
+              exports2 = applySignatureConversions(exports2);
+              wasmExports = exports2;
+              registerTLSInit(wasmExports["ha"]);
+              wasmTable = wasmExports["fa"];
+              addOnInit(wasmExports["ea"]);
+              wasmModule = module2;
+              removeRunDependency("wasm-instantiate");
+              return exports2;
+            }
+            addRunDependency("wasm-instantiate");
+            function receiveInstantiationResult(result) {
+              receiveInstance(result["instance"], result["module"]);
+            }
+            if (Module["instantiateWasm"]) {
+              try {
+                return Module["instantiateWasm"](info, receiveInstance);
+              } catch (e) {
+                err("Module.instantiateWasm callback failed with error: " + e);
+                readyPromiseReject(e);
+              }
+            }
+            instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject);
+            return {};
+          }
+          var tempDouble;
+          var tempI64;
+          function ExitStatus(status) {
+            this.name = "ExitStatus";
+            this.message = `Program terminated with exit(${status})`;
+            this.status = status;
+          }
+          var terminateWorker = function(worker) {
+            worker.terminate();
+            worker.onmessage = (e) => {
+            };
+          };
+          function killThread(pthread_ptr) {
+            var worker = PThread.pthreads[pthread_ptr];
+            delete PThread.pthreads[pthread_ptr];
+            terminateWorker(worker);
+            __emscripten_thread_free_data(pthread_ptr);
+            PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1);
+            worker.pthread_ptr = 0;
+          }
+          function cancelThread(pthread_ptr) {
+            var worker = PThread.pthreads[pthread_ptr];
+            worker.postMessage({ "cmd": "cancel" });
+          }
+          function cleanupThread(pthread_ptr) {
+            var worker = PThread.pthreads[pthread_ptr];
+            assert(worker);
+            PThread.returnWorkerToPool(worker);
+          }
+          function spawnThread(threadParams) {
+            var worker = PThread.getNewWorker();
+            if (!worker) {
+              return 6;
+            }
+            PThread.runningWorkers.push(worker);
+            PThread.pthreads[threadParams.pthread_ptr] = worker;
+            worker.pthread_ptr = threadParams.pthread_ptr;
+            var msg = { "cmd": "run", "start_routine": threadParams.startRoutine, "arg": threadParams.arg, "pthread_ptr": threadParams.pthread_ptr };
+            worker.postMessage(msg, threadParams.transferList);
+            return 0;
+          }
+          var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => {
+            var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+            return splitPathRe.exec(filename).slice(1);
+          }, normalizeArray: (parts, allowAboveRoot) => {
+            var up = 0;
+            for (var i = parts.length - 1; i >= 0; i--) {
+              var last = parts[i];
+              if (last === ".") {
+                parts.splice(i, 1);
+              } else if (last === "..") {
+                parts.splice(i, 1);
+                up++;
+              } else if (up) {
+                parts.splice(i, 1);
+                up--;
+              }
+            }
+            if (allowAboveRoot) {
+              for (; up; up--) {
+                parts.unshift("..");
+              }
+            }
+            return parts;
+          }, normalize: (path) => {
+            var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/";
+            path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/");
+            if (!path && !isAbsolute) {
+              path = ".";
+            }
+            if (path && trailingSlash) {
+              path += "/";
+            }
+            return (isAbsolute ? "/" : "") + path;
+          }, dirname: (path) => {
+            var result = PATH.splitPath(path), root = result[0], dir = result[1];
+            if (!root && !dir) {
+              return ".";
+            }
+            if (dir) {
+              dir = dir.substr(0, dir.length - 1);
+            }
+            return root + dir;
+          }, basename: (path) => {
+            if (path === "/")
+              return "/";
+            path = PATH.normalize(path);
+            path = path.replace(/\/$/, "");
+            var lastSlash = path.lastIndexOf("/");
+            if (lastSlash === -1)
+              return path;
+            return path.substr(lastSlash + 1);
+          }, join: function() {
+            var paths = Array.prototype.slice.call(arguments);
+            return PATH.normalize(paths.join("/"));
+          }, join2: (l, r) => PATH.normalize(l + "/" + r) };
+          var initRandomFill = () => {
+            if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") {
+              return (view) => (view.set(crypto.getRandomValues(new Uint8Array(view.byteLength))), view);
+            } else
+              abort("initRandomDevice");
+          };
+          var randomFill = (view) => (randomFill = initRandomFill())(view);
+          var PATH_FS = { resolve: function() {
+            var resolvedPath = "", resolvedAbsolute = false;
+            for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+              var path = i >= 0 ? arguments[i] : FS.cwd();
+              if (typeof path != "string") {
+                throw new TypeError("Arguments to path.resolve must be strings");
+              } else if (!path) {
+                return "";
+              }
+              resolvedPath = path + "/" + resolvedPath;
+              resolvedAbsolute = PATH.isAbs(path);
+            }
+            resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/");
+            return (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
+          }, relative: (from, to) => {
+            from = PATH_FS.resolve(from).substr(1);
+            to = PATH_FS.resolve(to).substr(1);
+            function trim(arr) {
+              var start = 0;
+              for (; start < arr.length; start++) {
+                if (arr[start] !== "")
+                  break;
+              }
+              var end = arr.length - 1;
+              for (; end >= 0; end--) {
+                if (arr[end] !== "")
+                  break;
+              }
+              if (start > end)
+                return [];
+              return arr.slice(start, end - start + 1);
+            }
+            var fromParts = trim(from.split("/"));
+            var toParts = trim(to.split("/"));
+            var length = Math.min(fromParts.length, toParts.length);
+            var samePartsLength = length;
+            for (var i = 0; i < length; i++) {
+              if (fromParts[i] !== toParts[i]) {
+                samePartsLength = i;
+                break;
+              }
+            }
+            var outputParts = [];
+            for (var i = samePartsLength; i < fromParts.length; i++) {
+              outputParts.push("..");
+            }
+            outputParts = outputParts.concat(toParts.slice(samePartsLength));
+            return outputParts.join("/");
+          } };
+          var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0;
+          var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
+            idx >>>= 0;
+            var endIdx = idx + maxBytesToRead;
+            var endPtr = idx;
+            while (heapOrArray[endPtr] && !(endPtr >= endIdx))
+              ++endPtr;
+            if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
+              return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr));
+            }
+            var str = "";
+            while (idx < endPtr) {
+              var u0 = heapOrArray[idx++];
+              if (!(u0 & 128)) {
+                str += String.fromCharCode(u0);
+                continue;
+              }
+              var u1 = heapOrArray[idx++] & 63;
+              if ((u0 & 224) == 192) {
+                str += String.fromCharCode((u0 & 31) << 6 | u1);
+                continue;
+              }
+              var u2 = heapOrArray[idx++] & 63;
+              if ((u0 & 240) == 224) {
+                u0 = (u0 & 15) << 12 | u1 << 6 | u2;
+              } else {
+                u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
+              }
+              if (u0 < 65536) {
+                str += String.fromCharCode(u0);
+              } else {
+                var ch = u0 - 65536;
+                str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
+              }
+            }
+            return str;
+          };
+          var FS_stdin_getChar_buffer = [];
+          var lengthBytesUTF8 = (str) => {
+            var len = 0;
+            for (var i = 0; i < str.length; ++i) {
+              var c = str.charCodeAt(i);
+              if (c <= 127) {
+                len++;
+              } else if (c <= 2047) {
+                len += 2;
+              } else if (c >= 55296 && c <= 57343) {
+                len += 4;
+                ++i;
+              } else {
+                len += 3;
+              }
+            }
+            return len;
+          };
+          var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
+            outIdx >>>= 0;
+            if (!(maxBytesToWrite > 0))
+              return 0;
+            var startIdx = outIdx;
+            var endIdx = outIdx + maxBytesToWrite - 1;
+            for (var i = 0; i < str.length; ++i) {
+              var u = str.charCodeAt(i);
+              if (u >= 55296 && u <= 57343) {
+                var u1 = str.charCodeAt(++i);
+                u = 65536 + ((u & 1023) << 10) | u1 & 1023;
+              }
+              if (u <= 127) {
+                if (outIdx >= endIdx)
+                  break;
+                heap[outIdx++ >>> 0] = u;
+              } else if (u <= 2047) {
+                if (outIdx + 1 >= endIdx)
+                  break;
+                heap[outIdx++ >>> 0] = 192 | u >> 6;
+                heap[outIdx++ >>> 0] = 128 | u & 63;
+              } else if (u <= 65535) {
+                if (outIdx + 2 >= endIdx)
+                  break;
+                heap[outIdx++ >>> 0] = 224 | u >> 12;
+                heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;
+                heap[outIdx++ >>> 0] = 128 | u & 63;
+              } else {
+                if (outIdx + 3 >= endIdx)
+                  break;
+                heap[outIdx++ >>> 0] = 240 | u >> 18;
+                heap[outIdx++ >>> 0] = 128 | u >> 12 & 63;
+                heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;
+                heap[outIdx++ >>> 0] = 128 | u & 63;
+              }
+            }
+            heap[outIdx >>> 0] = 0;
+            return outIdx - startIdx;
+          };
+          function intArrayFromString(stringy, dontAddNull, length) {
+            var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
+            var u8array = new Array(len);
+            var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
+            if (dontAddNull)
+              u8array.length = numBytesWritten;
+            return u8array;
+          }
+          var FS_stdin_getChar = () => {
+            if (!FS_stdin_getChar_buffer.length) {
+              var result = null;
+              if (typeof window != "undefined" && typeof window.prompt == "function") {
+                result = window.prompt("Input: ");
+                if (result !== null) {
+                  result += "\n";
+                }
+              } else if (typeof readline == "function") {
+                result = readline();
+                if (result !== null) {
+                  result += "\n";
+                }
+              }
+              if (!result) {
+                return null;
+              }
+              FS_stdin_getChar_buffer = intArrayFromString(result, true);
+            }
+            return FS_stdin_getChar_buffer.shift();
+          };
+          var TTY = { ttys: [], init: function() {
+          }, shutdown: function() {
+          }, register: function(dev, ops) {
+            TTY.ttys[dev] = { input: [], output: [], ops };
+            FS.registerDevice(dev, TTY.stream_ops);
+          }, stream_ops: { open: function(stream) {
+            var tty = TTY.ttys[stream.node.rdev];
+            if (!tty) {
+              throw new FS.ErrnoError(43);
+            }
+            stream.tty = tty;
+            stream.seekable = false;
+          }, close: function(stream) {
+            stream.tty.ops.fsync(stream.tty);
+          }, fsync: function(stream) {
+            stream.tty.ops.fsync(stream.tty);
+          }, read: function(stream, buffer, offset, length, pos) {
+            if (!stream.tty || !stream.tty.ops.get_char) {
+              throw new FS.ErrnoError(60);
+            }
+            var bytesRead = 0;
+            for (var i = 0; i < length; i++) {
+              var result;
+              try {
+                result = stream.tty.ops.get_char(stream.tty);
+              } catch (e) {
+                throw new FS.ErrnoError(29);
+              }
+              if (result === void 0 && bytesRead === 0) {
+                throw new FS.ErrnoError(6);
+              }
+              if (result === null || result === void 0)
+                break;
+              bytesRead++;
+              buffer[offset + i] = result;
+            }
+            if (bytesRead) {
+              stream.node.timestamp = Date.now();
+            }
+            return bytesRead;
+          }, write: function(stream, buffer, offset, length, pos) {
+            if (!stream.tty || !stream.tty.ops.put_char) {
+              throw new FS.ErrnoError(60);
+            }
+            try {
+              for (var i = 0; i < length; i++) {
+                stream.tty.ops.put_char(stream.tty, buffer[offset + i]);
+              }
+            } catch (e) {
+              throw new FS.ErrnoError(29);
+            }
+            if (length) {
+              stream.node.timestamp = Date.now();
+            }
+            return i;
+          } }, default_tty_ops: { get_char: function(tty) {
+            return FS_stdin_getChar();
+          }, put_char: function(tty, val) {
+            if (val === null || val === 10) {
+              out(UTF8ArrayToString(tty.output, 0));
+              tty.output = [];
+            } else {
+              if (val != 0)
+                tty.output.push(val);
+            }
+          }, fsync: function(tty) {
+            if (tty.output && tty.output.length > 0) {
+              out(UTF8ArrayToString(tty.output, 0));
+              tty.output = [];
+            }
+          }, ioctl_tcgets: function(tty) {
+            return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] };
+          }, ioctl_tcsets: function(tty, optional_actions, data) {
+            return 0;
+          }, ioctl_tiocgwinsz: function(tty) {
+            return [24, 80];
+          } }, default_tty1_ops: { put_char: function(tty, val) {
+            if (val === null || val === 10) {
+              err(UTF8ArrayToString(tty.output, 0));
+              tty.output = [];
+            } else {
+              if (val != 0)
+                tty.output.push(val);
+            }
+          }, fsync: function(tty) {
+            if (tty.output && tty.output.length > 0) {
+              err(UTF8ArrayToString(tty.output, 0));
+              tty.output = [];
+            }
+          } } };
+          var mmapAlloc = (size) => {
+            abort();
+          };
+          var MEMFS = { ops_table: null, mount(mount) {
+            return MEMFS.createNode(null, "/", 16384 | 511, 0);
+          }, createNode(parent, name, mode, dev) {
+            if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
+              throw new FS.ErrnoError(63);
+            }
+            if (!MEMFS.ops_table) {
+              MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };
+            }
+            var node = FS.createNode(parent, name, mode, dev);
+            if (FS.isDir(node.mode)) {
+              node.node_ops = MEMFS.ops_table.dir.node;
+              node.stream_ops = MEMFS.ops_table.dir.stream;
+              node.contents = {};
+            } else if (FS.isFile(node.mode)) {
+              node.node_ops = MEMFS.ops_table.file.node;
+              node.stream_ops = MEMFS.ops_table.file.stream;
+              node.usedBytes = 0;
+              node.contents = null;
+            } else if (FS.isLink(node.mode)) {
+              node.node_ops = MEMFS.ops_table.link.node;
+              node.stream_ops = MEMFS.ops_table.link.stream;
+            } else if (FS.isChrdev(node.mode)) {
+              node.node_ops = MEMFS.ops_table.chrdev.node;
+              node.stream_ops = MEMFS.ops_table.chrdev.stream;
+            }
+            node.timestamp = Date.now();
+            if (parent) {
+              parent.contents[name] = node;
+              parent.timestamp = node.timestamp;
+            }
+            return node;
+          }, getFileDataAsTypedArray(node) {
+            if (!node.contents)
+              return new Uint8Array(0);
+            if (node.contents.subarray)
+              return node.contents.subarray(0, node.usedBytes);
+            return new Uint8Array(node.contents);
+          }, expandFileStorage(node, newCapacity) {
+            var prevCapacity = node.contents ? node.contents.length : 0;
+            if (prevCapacity >= newCapacity)
+              return;
+            var CAPACITY_DOUBLING_MAX = 1024 * 1024;
+            newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);
+            if (prevCapacity != 0)
+              newCapacity = Math.max(newCapacity, 256);
+            var oldContents = node.contents;
+            node.contents = new Uint8Array(newCapacity);
+            if (node.usedBytes > 0)
+              node.contents.set(oldContents.subarray(0, node.usedBytes), 0);
+          }, resizeFileStorage(node, newSize) {
+            if (node.usedBytes == newSize)
+              return;
+            if (newSize == 0) {
+              node.contents = null;
+              node.usedBytes = 0;
+            } else {
+              var oldContents = node.contents;
+              node.contents = new Uint8Array(newSize);
+              if (oldContents) {
+                node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));
+              }
+              node.usedBytes = newSize;
+            }
+          }, node_ops: { getattr(node) {
+            var attr = {};
+            attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
+            attr.ino = node.id;
+            attr.mode = node.mode;
+            attr.nlink = 1;
+            attr.uid = 0;
+            attr.gid = 0;
+            attr.rdev = node.rdev;
+            if (FS.isDir(node.mode)) {
+              attr.size = 4096;
+            } else if (FS.isFile(node.mode)) {
+              attr.size = node.usedBytes;
+            } else if (FS.isLink(node.mode)) {
+              attr.size = node.link.length;
+            } else {
+              attr.size = 0;
+            }
+            attr.atime = new Date(node.timestamp);
+            attr.mtime = new Date(node.timestamp);
+            attr.ctime = new Date(node.timestamp);
+            attr.blksize = 4096;
+            attr.blocks = Math.ceil(attr.size / attr.blksize);
+            return attr;
+          }, setattr(node, attr) {
+            if (attr.mode !== void 0) {
+              node.mode = attr.mode;
+            }
+            if (attr.timestamp !== void 0) {
+              node.timestamp = attr.timestamp;
+            }
+            if (attr.size !== void 0) {
+              MEMFS.resizeFileStorage(node, attr.size);
+            }
+          }, lookup(parent, name) {
+            throw FS.genericErrors[44];
+          }, mknod(parent, name, mode, dev) {
+            return MEMFS.createNode(parent, name, mode, dev);
+          }, rename(old_node, new_dir, new_name) {
+            if (FS.isDir(old_node.mode)) {
+              var new_node;
+              try {
+                new_node = FS.lookupNode(new_dir, new_name);
+              } catch (e) {
+              }
+              if (new_node) {
+                for (var i in new_node.contents) {
+                  throw new FS.ErrnoError(55);
+                }
+              }
+            }
+            delete old_node.parent.contents[old_node.name];
+            old_node.parent.timestamp = Date.now();
+            old_node.name = new_name;
+            new_dir.contents[new_name] = old_node;
+            new_dir.timestamp = old_node.parent.timestamp;
+            old_node.parent = new_dir;
+          }, unlink(parent, name) {
+            delete parent.contents[name];
+            parent.timestamp = Date.now();
+          }, rmdir(parent, name) {
+            var node = FS.lookupNode(parent, name);
+            for (var i in node.contents) {
+              throw new FS.ErrnoError(55);
+            }
+            delete parent.contents[name];
+            parent.timestamp = Date.now();
+          }, readdir(node) {
+            var entries = [".", ".."];
+            for (var key in node.contents) {
+              if (!node.contents.hasOwnProperty(key)) {
+                continue;
+              }
+              entries.push(key);
+            }
+            return entries;
+          }, symlink(parent, newname, oldpath) {
+            var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
+            node.link = oldpath;
+            return node;
+          }, readlink(node) {
+            if (!FS.isLink(node.mode)) {
+              throw new FS.ErrnoError(28);
+            }
+            return node.link;
+          } }, stream_ops: { read(stream, buffer, offset, length, position) {
+            var contents = stream.node.contents;
+            if (position >= stream.node.usedBytes)
+              return 0;
+            var size = Math.min(stream.node.usedBytes - position, length);
+            if (size > 8 && contents.subarray) {
+              buffer.set(contents.subarray(position, position + size), offset);
+            } else {
+              for (var i = 0; i < size; i++)
+                buffer[offset + i] = contents[position + i];
+            }
+            return size;
+          }, write(stream, buffer, offset, length, position, canOwn) {
+            if (buffer.buffer === GROWABLE_HEAP_I8().buffer) {
+              canOwn = false;
+            }
+            if (!length)
+              return 0;
+            var node = stream.node;
+            node.timestamp = Date.now();
+            if (buffer.subarray && (!node.contents || node.contents.subarray)) {
+              if (canOwn) {
+                node.contents = buffer.subarray(offset, offset + length);
+                node.usedBytes = length;
+                return length;
+              } else if (node.usedBytes === 0 && position === 0) {
+                node.contents = buffer.slice(offset, offset + length);
+                node.usedBytes = length;
+                return length;
+              } else if (position + length <= node.usedBytes) {
+                node.contents.set(buffer.subarray(offset, offset + length), position);
+                return length;
+              }
+            }
+            MEMFS.expandFileStorage(node, position + length);
+            if (node.contents.subarray && buffer.subarray) {
+              node.contents.set(buffer.subarray(offset, offset + length), position);
+            } else {
+              for (var i = 0; i < length; i++) {
+                node.contents[position + i] = buffer[offset + i];
+              }
+            }
+            node.usedBytes = Math.max(node.usedBytes, position + length);
+            return length;
+          }, llseek(stream, offset, whence) {
+            var position = offset;
+            if (whence === 1) {
+              position += stream.position;
+            } else if (whence === 2) {
+              if (FS.isFile(stream.node.mode)) {
+                position += stream.node.usedBytes;
+              }
+            }
+            if (position < 0) {
+              throw new FS.ErrnoError(28);
+            }
+            return position;
+          }, allocate(stream, offset, length) {
+            MEMFS.expandFileStorage(stream.node, offset + length);
+            stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
+          }, mmap(stream, length, position, prot, flags) {
+            if (!FS.isFile(stream.node.mode)) {
+              throw new FS.ErrnoError(43);
+            }
+            var ptr;
+            var allocated;
+            var contents = stream.node.contents;
+            if (!(flags & 2) && contents.buffer === GROWABLE_HEAP_I8().buffer) {
+              allocated = false;
+              ptr = contents.byteOffset;
+            } else {
+              if (position > 0 || position + length < contents.length) {
+                if (contents.subarray) {
+                  contents = contents.subarray(position, position + length);
+                } else {
+                  contents = Array.prototype.slice.call(contents, position, position + length);
+                }
+              }
+              allocated = true;
+              ptr = mmapAlloc(length);
+              if (!ptr) {
+                throw new FS.ErrnoError(48);
+              }
+              GROWABLE_HEAP_I8().set(contents, ptr >>> 0);
+            }
+            return { ptr, allocated };
+          }, msync(stream, buffer, offset, length, mmapFlags) {
+            MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
+            return 0;
+          } } };
+          var asyncLoad = (url, onload, onerror, noRunDep) => {
+            var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : "";
+            readAsync(url, (arrayBuffer) => {
+              assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`);
+              onload(new Uint8Array(arrayBuffer));
+              if (dep)
+                removeRunDependency(dep);
+            }, (event) => {
+              if (onerror) {
+                onerror();
+              } else {
+                throw `Loading data file "${url}" failed.`;
+              }
+            });
+            if (dep)
+              addRunDependency(dep);
+          };
+          var preloadPlugins = Module["preloadPlugins"] || [];
+          function FS_handledByPreloadPlugin(byteArray, fullname, finish, onerror) {
+            if (typeof Browser != "undefined")
+              Browser.init();
+            var handled = false;
+            preloadPlugins.forEach(function(plugin) {
+              if (handled)
+                return;
+              if (plugin["canHandle"](fullname)) {
+                plugin["handle"](byteArray, fullname, finish, onerror);
+                handled = true;
+              }
+            });
+            return handled;
+          }
+          function FS_createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
+            var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;
+            var dep = getUniqueRunDependency(`cp ${fullname}`);
+            function processData(byteArray) {
+              function finish(byteArray2) {
+                if (preFinish)
+                  preFinish();
+                if (!dontCreateFile) {
+                  FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn);
+                }
+                if (onload)
+                  onload();
+                removeRunDependency(dep);
+              }
+              if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => {
+                if (onerror)
+                  onerror();
+                removeRunDependency(dep);
+              })) {
+                return;
+              }
+              finish(byteArray);
+            }
+            addRunDependency(dep);
+            if (typeof url == "string") {
+              asyncLoad(url, (byteArray) => processData(byteArray), onerror);
+            } else {
+              processData(url);
+            }
+          }
+          function FS_modeStringToFlags(str) {
+            var flagModes = { "r": 0, "r+": 2, "w": 512 | 64 | 1, "w+": 512 | 64 | 2, "a": 1024 | 64 | 1, "a+": 1024 | 64 | 2 };
+            var flags = flagModes[str];
+            if (typeof flags == "undefined") {
+              throw new Error(`Unknown file open mode: ${str}`);
+            }
+            return flags;
+          }
+          function FS_getMode(canRead, canWrite) {
+            var mode = 0;
+            if (canRead)
+              mode |= 292 | 73;
+            if (canWrite)
+              mode |= 146;
+            return mode;
+          }
+          var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => {
+            path = PATH_FS.resolve(path);
+            if (!path)
+              return { path: "", node: null };
+            var defaults = { follow_mount: true, recurse_count: 0 };
+            opts = Object.assign(defaults, opts);
+            if (opts.recurse_count > 8) {
+              throw new FS.ErrnoError(32);
+            }
+            var parts = path.split("/").filter((p) => !!p);
+            var current = FS.root;
+            var current_path = "/";
+            for (var i = 0; i < parts.length; i++) {
+              var islast = i === parts.length - 1;
+              if (islast && opts.parent) {
+                break;
+              }
+              current = FS.lookupNode(current, parts[i]);
+              current_path = PATH.join2(current_path, parts[i]);
+              if (FS.isMountpoint(current)) {
+                if (!islast || islast && opts.follow_mount) {
+                  current = current.mounted.root;
+                }
+              }
+              if (!islast || opts.follow) {
+                var count = 0;
+                while (FS.isLink(current.mode)) {
+                  var link = FS.readlink(current_path);
+                  current_path = PATH_FS.resolve(PATH.dirname(current_path), link);
+                  var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 });
+                  current = lookup.node;
+                  if (count++ > 40) {
+                    throw new FS.ErrnoError(32);
+                  }
+                }
+              }
+            }
+            return { path: current_path, node: current };
+          }, getPath: (node) => {
+            var path;
+            while (true) {
+              if (FS.isRoot(node)) {
+                var mount = node.mount.mountpoint;
+                if (!path)
+                  return mount;
+                return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path;
+              }
+              path = path ? `${node.name}/${path}` : node.name;
+              node = node.parent;
+            }
+          }, hashName: (parentid, name) => {
+            var hash = 0;
+            for (var i = 0; i < name.length; i++) {
+              hash = (hash << 5) - hash + name.charCodeAt(i) | 0;
+            }
+            return (parentid + hash >>> 0) % FS.nameTable.length;
+          }, hashAddNode: (node) => {
+            var hash = FS.hashName(node.parent.id, node.name);
+            node.name_next = FS.nameTable[hash];
+            FS.nameTable[hash] = node;
+          }, hashRemoveNode: (node) => {
+            var hash = FS.hashName(node.parent.id, node.name);
+            if (FS.nameTable[hash] === node) {
+              FS.nameTable[hash] = node.name_next;
+            } else {
+              var current = FS.nameTable[hash];
+              while (current) {
+                if (current.name_next === node) {
+                  current.name_next = node.name_next;
+                  break;
+                }
+                current = current.name_next;
+              }
+            }
+          }, lookupNode: (parent, name) => {
+            var errCode = FS.mayLookup(parent);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode, parent);
+            }
+            var hash = FS.hashName(parent.id, name);
+            for (var node = FS.nameTable[hash]; node; node = node.name_next) {
+              var nodeName = node.name;
+              if (node.parent.id === parent.id && nodeName === name) {
+                return node;
+              }
+            }
+            return FS.lookup(parent, name);
+          }, createNode: (parent, name, mode, rdev) => {
+            var node = new FS.FSNode(parent, name, mode, rdev);
+            FS.hashAddNode(node);
+            return node;
+          }, destroyNode: (node) => {
+            FS.hashRemoveNode(node);
+          }, isRoot: (node) => node === node.parent, isMountpoint: (node) => !!node.mounted, isFile: (mode) => (mode & 61440) === 32768, isDir: (mode) => (mode & 61440) === 16384, isLink: (mode) => (mode & 61440) === 40960, isChrdev: (mode) => (mode & 61440) === 8192, isBlkdev: (mode) => (mode & 61440) === 24576, isFIFO: (mode) => (mode & 61440) === 4096, isSocket: (mode) => (mode & 49152) === 49152, flagsToPermissionString: (flag) => {
+            var perms = ["r", "w", "rw"][flag & 3];
+            if (flag & 512) {
+              perms += "w";
+            }
+            return perms;
+          }, nodePermissions: (node, perms) => {
+            if (FS.ignorePermissions) {
+              return 0;
+            }
+            if (perms.includes("r") && !(node.mode & 292)) {
+              return 2;
+            } else if (perms.includes("w") && !(node.mode & 146)) {
+              return 2;
+            } else if (perms.includes("x") && !(node.mode & 73)) {
+              return 2;
+            }
+            return 0;
+          }, mayLookup: (dir) => {
+            var errCode = FS.nodePermissions(dir, "x");
+            if (errCode)
+              return errCode;
+            if (!dir.node_ops.lookup)
+              return 2;
+            return 0;
+          }, mayCreate: (dir, name) => {
+            try {
+              var node = FS.lookupNode(dir, name);
+              return 20;
+            } catch (e) {
+            }
+            return FS.nodePermissions(dir, "wx");
+          }, mayDelete: (dir, name, isdir) => {
+            var node;
+            try {
+              node = FS.lookupNode(dir, name);
+            } catch (e) {
+              return e.errno;
+            }
+            var errCode = FS.nodePermissions(dir, "wx");
+            if (errCode) {
+              return errCode;
+            }
+            if (isdir) {
+              if (!FS.isDir(node.mode)) {
+                return 54;
+              }
+              if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
+                return 10;
+              }
+            } else {
+              if (FS.isDir(node.mode)) {
+                return 31;
+              }
+            }
+            return 0;
+          }, mayOpen: (node, flags) => {
+            if (!node) {
+              return 44;
+            }
+            if (FS.isLink(node.mode)) {
+              return 32;
+            } else if (FS.isDir(node.mode)) {
+              if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) {
+                return 31;
+              }
+            }
+            return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
+          }, MAX_OPEN_FDS: 4096, nextfd: () => {
+            for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) {
+              if (!FS.streams[fd]) {
+                return fd;
+              }
+            }
+            throw new FS.ErrnoError(33);
+          }, getStreamChecked: (fd) => {
+            var stream = FS.getStream(fd);
+            if (!stream) {
+              throw new FS.ErrnoError(8);
+            }
+            return stream;
+          }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd = -1) => {
+            if (!FS.FSStream) {
+              FS.FSStream = function() {
+                this.shared = {};
+              };
+              FS.FSStream.prototype = {};
+              Object.defineProperties(FS.FSStream.prototype, { object: { get() {
+                return this.node;
+              }, set(val) {
+                this.node = val;
+              } }, isRead: { get() {
+                return (this.flags & 2097155) !== 1;
+              } }, isWrite: { get() {
+                return (this.flags & 2097155) !== 0;
+              } }, isAppend: { get() {
+                return this.flags & 1024;
+              } }, flags: { get() {
+                return this.shared.flags;
+              }, set(val) {
+                this.shared.flags = val;
+              } }, position: { get() {
+                return this.shared.position;
+              }, set(val) {
+                this.shared.position = val;
+              } } });
+            }
+            stream = Object.assign(new FS.FSStream(), stream);
+            if (fd == -1) {
+              fd = FS.nextfd();
+            }
+            stream.fd = fd;
+            FS.streams[fd] = stream;
+            return stream;
+          }, closeStream: (fd) => {
+            FS.streams[fd] = null;
+          }, chrdev_stream_ops: { open: (stream) => {
+            var device = FS.getDevice(stream.node.rdev);
+            stream.stream_ops = device.stream_ops;
+            if (stream.stream_ops.open) {
+              stream.stream_ops.open(stream);
+            }
+          }, llseek: () => {
+            throw new FS.ErrnoError(70);
+          } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => {
+            FS.devices[dev] = { stream_ops: ops };
+          }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => {
+            var mounts = [];
+            var check = [mount];
+            while (check.length) {
+              var m = check.pop();
+              mounts.push(m);
+              check.push.apply(check, m.mounts);
+            }
+            return mounts;
+          }, syncfs: (populate, callback) => {
+            if (typeof populate == "function") {
+              callback = populate;
+              populate = false;
+            }
+            FS.syncFSRequests++;
+            if (FS.syncFSRequests > 1) {
+              err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);
+            }
+            var mounts = FS.getMounts(FS.root.mount);
+            var completed = 0;
+            function doCallback(errCode) {
+              FS.syncFSRequests--;
+              return callback(errCode);
+            }
+            function done(errCode) {
+              if (errCode) {
+                if (!done.errored) {
+                  done.errored = true;
+                  return doCallback(errCode);
+                }
+                return;
+              }
+              if (++completed >= mounts.length) {
+                doCallback(null);
+              }
+            }
+            mounts.forEach((mount) => {
+              if (!mount.type.syncfs) {
+                return done(null);
+              }
+              mount.type.syncfs(mount, populate, done);
+            });
+          }, mount: (type, opts, mountpoint) => {
+            var root = mountpoint === "/";
+            var pseudo = !mountpoint;
+            var node;
+            if (root && FS.root) {
+              throw new FS.ErrnoError(10);
+            } else if (!root && !pseudo) {
+              var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
+              mountpoint = lookup.path;
+              node = lookup.node;
+              if (FS.isMountpoint(node)) {
+                throw new FS.ErrnoError(10);
+              }
+              if (!FS.isDir(node.mode)) {
+                throw new FS.ErrnoError(54);
+              }
+            }
+            var mount = { type, opts, mountpoint, mounts: [] };
+            var mountRoot = type.mount(mount);
+            mountRoot.mount = mount;
+            mount.root = mountRoot;
+            if (root) {
+              FS.root = mountRoot;
+            } else if (node) {
+              node.mounted = mount;
+              if (node.mount) {
+                node.mount.mounts.push(mount);
+              }
+            }
+            return mountRoot;
+          }, unmount: (mountpoint) => {
+            var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
+            if (!FS.isMountpoint(lookup.node)) {
+              throw new FS.ErrnoError(28);
+            }
+            var node = lookup.node;
+            var mount = node.mounted;
+            var mounts = FS.getMounts(mount);
+            Object.keys(FS.nameTable).forEach((hash) => {
+              var current = FS.nameTable[hash];
+              while (current) {
+                var next = current.name_next;
+                if (mounts.includes(current.mount)) {
+                  FS.destroyNode(current);
+                }
+                current = next;
+              }
+            });
+            node.mounted = null;
+            var idx = node.mount.mounts.indexOf(mount);
+            node.mount.mounts.splice(idx, 1);
+          }, lookup: (parent, name) => parent.node_ops.lookup(parent, name), mknod: (path, mode, dev) => {
+            var lookup = FS.lookupPath(path, { parent: true });
+            var parent = lookup.node;
+            var name = PATH.basename(path);
+            if (!name || name === "." || name === "..") {
+              throw new FS.ErrnoError(28);
+            }
+            var errCode = FS.mayCreate(parent, name);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!parent.node_ops.mknod) {
+              throw new FS.ErrnoError(63);
+            }
+            return parent.node_ops.mknod(parent, name, mode, dev);
+          }, create: (path, mode) => {
+            mode = mode !== void 0 ? mode : 438;
+            mode &= 4095;
+            mode |= 32768;
+            return FS.mknod(path, mode, 0);
+          }, mkdir: (path, mode) => {
+            mode = mode !== void 0 ? mode : 511;
+            mode &= 511 | 512;
+            mode |= 16384;
+            return FS.mknod(path, mode, 0);
+          }, mkdirTree: (path, mode) => {
+            var dirs = path.split("/");
+            var d = "";
+            for (var i = 0; i < dirs.length; ++i) {
+              if (!dirs[i])
+                continue;
+              d += "/" + dirs[i];
+              try {
+                FS.mkdir(d, mode);
+              } catch (e) {
+                if (e.errno != 20)
+                  throw e;
+              }
+            }
+          }, mkdev: (path, mode, dev) => {
+            if (typeof dev == "undefined") {
+              dev = mode;
+              mode = 438;
+            }
+            mode |= 8192;
+            return FS.mknod(path, mode, dev);
+          }, symlink: (oldpath, newpath) => {
+            if (!PATH_FS.resolve(oldpath)) {
+              throw new FS.ErrnoError(44);
+            }
+            var lookup = FS.lookupPath(newpath, { parent: true });
+            var parent = lookup.node;
+            if (!parent) {
+              throw new FS.ErrnoError(44);
+            }
+            var newname = PATH.basename(newpath);
+            var errCode = FS.mayCreate(parent, newname);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!parent.node_ops.symlink) {
+              throw new FS.ErrnoError(63);
+            }
+            return parent.node_ops.symlink(parent, newname, oldpath);
+          }, rename: (old_path, new_path) => {
+            var old_dirname = PATH.dirname(old_path);
+            var new_dirname = PATH.dirname(new_path);
+            var old_name = PATH.basename(old_path);
+            var new_name = PATH.basename(new_path);
+            var lookup, old_dir, new_dir;
+            lookup = FS.lookupPath(old_path, { parent: true });
+            old_dir = lookup.node;
+            lookup = FS.lookupPath(new_path, { parent: true });
+            new_dir = lookup.node;
+            if (!old_dir || !new_dir)
+              throw new FS.ErrnoError(44);
+            if (old_dir.mount !== new_dir.mount) {
+              throw new FS.ErrnoError(75);
+            }
+            var old_node = FS.lookupNode(old_dir, old_name);
+            var relative = PATH_FS.relative(old_path, new_dirname);
+            if (relative.charAt(0) !== ".") {
+              throw new FS.ErrnoError(28);
+            }
+            relative = PATH_FS.relative(new_path, old_dirname);
+            if (relative.charAt(0) !== ".") {
+              throw new FS.ErrnoError(55);
+            }
+            var new_node;
+            try {
+              new_node = FS.lookupNode(new_dir, new_name);
+            } catch (e) {
+            }
+            if (old_node === new_node) {
+              return;
+            }
+            var isdir = FS.isDir(old_node.mode);
+            var errCode = FS.mayDelete(old_dir, old_name, isdir);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!old_dir.node_ops.rename) {
+              throw new FS.ErrnoError(63);
+            }
+            if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {
+              throw new FS.ErrnoError(10);
+            }
+            if (new_dir !== old_dir) {
+              errCode = FS.nodePermissions(old_dir, "w");
+              if (errCode) {
+                throw new FS.ErrnoError(errCode);
+              }
+            }
+            FS.hashRemoveNode(old_node);
+            try {
+              old_dir.node_ops.rename(old_node, new_dir, new_name);
+            } catch (e) {
+              throw e;
+            } finally {
+              FS.hashAddNode(old_node);
+            }
+          }, rmdir: (path) => {
+            var lookup = FS.lookupPath(path, { parent: true });
+            var parent = lookup.node;
+            var name = PATH.basename(path);
+            var node = FS.lookupNode(parent, name);
+            var errCode = FS.mayDelete(parent, name, true);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!parent.node_ops.rmdir) {
+              throw new FS.ErrnoError(63);
+            }
+            if (FS.isMountpoint(node)) {
+              throw new FS.ErrnoError(10);
+            }
+            parent.node_ops.rmdir(parent, name);
+            FS.destroyNode(node);
+          }, readdir: (path) => {
+            var lookup = FS.lookupPath(path, { follow: true });
+            var node = lookup.node;
+            if (!node.node_ops.readdir) {
+              throw new FS.ErrnoError(54);
+            }
+            return node.node_ops.readdir(node);
+          }, unlink: (path) => {
+            var lookup = FS.lookupPath(path, { parent: true });
+            var parent = lookup.node;
+            if (!parent) {
+              throw new FS.ErrnoError(44);
+            }
+            var name = PATH.basename(path);
+            var node = FS.lookupNode(parent, name);
+            var errCode = FS.mayDelete(parent, name, false);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!parent.node_ops.unlink) {
+              throw new FS.ErrnoError(63);
+            }
+            if (FS.isMountpoint(node)) {
+              throw new FS.ErrnoError(10);
+            }
+            parent.node_ops.unlink(parent, name);
+            FS.destroyNode(node);
+          }, readlink: (path) => {
+            var lookup = FS.lookupPath(path);
+            var link = lookup.node;
+            if (!link) {
+              throw new FS.ErrnoError(44);
+            }
+            if (!link.node_ops.readlink) {
+              throw new FS.ErrnoError(28);
+            }
+            return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
+          }, stat: (path, dontFollow) => {
+            var lookup = FS.lookupPath(path, { follow: !dontFollow });
+            var node = lookup.node;
+            if (!node) {
+              throw new FS.ErrnoError(44);
+            }
+            if (!node.node_ops.getattr) {
+              throw new FS.ErrnoError(63);
+            }
+            return node.node_ops.getattr(node);
+          }, lstat: (path) => FS.stat(path, true), chmod: (path, mode, dontFollow) => {
+            var node;
+            if (typeof path == "string") {
+              var lookup = FS.lookupPath(path, { follow: !dontFollow });
+              node = lookup.node;
+            } else {
+              node = path;
+            }
+            if (!node.node_ops.setattr) {
+              throw new FS.ErrnoError(63);
+            }
+            node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });
+          }, lchmod: (path, mode) => {
+            FS.chmod(path, mode, true);
+          }, fchmod: (fd, mode) => {
+            var stream = FS.getStreamChecked(fd);
+            FS.chmod(stream.node, mode);
+          }, chown: (path, uid, gid, dontFollow) => {
+            var node;
+            if (typeof path == "string") {
+              var lookup = FS.lookupPath(path, { follow: !dontFollow });
+              node = lookup.node;
+            } else {
+              node = path;
+            }
+            if (!node.node_ops.setattr) {
+              throw new FS.ErrnoError(63);
+            }
+            node.node_ops.setattr(node, { timestamp: Date.now() });
+          }, lchown: (path, uid, gid) => {
+            FS.chown(path, uid, gid, true);
+          }, fchown: (fd, uid, gid) => {
+            var stream = FS.getStreamChecked(fd);
+            FS.chown(stream.node, uid, gid);
+          }, truncate: (path, len) => {
+            if (len < 0) {
+              throw new FS.ErrnoError(28);
+            }
+            var node;
+            if (typeof path == "string") {
+              var lookup = FS.lookupPath(path, { follow: true });
+              node = lookup.node;
+            } else {
+              node = path;
+            }
+            if (!node.node_ops.setattr) {
+              throw new FS.ErrnoError(63);
+            }
+            if (FS.isDir(node.mode)) {
+              throw new FS.ErrnoError(31);
+            }
+            if (!FS.isFile(node.mode)) {
+              throw new FS.ErrnoError(28);
+            }
+            var errCode = FS.nodePermissions(node, "w");
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            node.node_ops.setattr(node, { size: len, timestamp: Date.now() });
+          }, ftruncate: (fd, len) => {
+            var stream = FS.getStreamChecked(fd);
+            if ((stream.flags & 2097155) === 0) {
+              throw new FS.ErrnoError(28);
+            }
+            FS.truncate(stream.node, len);
+          }, utime: (path, atime, mtime) => {
+            var lookup = FS.lookupPath(path, { follow: true });
+            var node = lookup.node;
+            node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });
+          }, open: (path, flags, mode) => {
+            if (path === "") {
+              throw new FS.ErrnoError(44);
+            }
+            flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags;
+            mode = typeof mode == "undefined" ? 438 : mode;
+            if (flags & 64) {
+              mode = mode & 4095 | 32768;
+            } else {
+              mode = 0;
+            }
+            var node;
+            if (typeof path == "object") {
+              node = path;
+            } else {
+              path = PATH.normalize(path);
+              try {
+                var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });
+                node = lookup.node;
+              } catch (e) {
+              }
+            }
+            var created = false;
+            if (flags & 64) {
+              if (node) {
+                if (flags & 128) {
+                  throw new FS.ErrnoError(20);
+                }
+              } else {
+                node = FS.mknod(path, mode, 0);
+                created = true;
+              }
+            }
+            if (!node) {
+              throw new FS.ErrnoError(44);
+            }
+            if (FS.isChrdev(node.mode)) {
+              flags &= ~512;
+            }
+            if (flags & 65536 && !FS.isDir(node.mode)) {
+              throw new FS.ErrnoError(54);
+            }
+            if (!created) {
+              var errCode = FS.mayOpen(node, flags);
+              if (errCode) {
+                throw new FS.ErrnoError(errCode);
+              }
+            }
+            if (flags & 512 && !created) {
+              FS.truncate(node, 0);
+            }
+            flags &= ~(128 | 512 | 131072);
+            var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false });
+            if (stream.stream_ops.open) {
+              stream.stream_ops.open(stream);
+            }
+            if (Module["logReadFiles"] && !(flags & 1)) {
+              if (!FS.readFiles)
+                FS.readFiles = {};
+              if (!(path in FS.readFiles)) {
+                FS.readFiles[path] = 1;
+              }
+            }
+            return stream;
+          }, close: (stream) => {
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if (stream.getdents)
+              stream.getdents = null;
+            try {
+              if (stream.stream_ops.close) {
+                stream.stream_ops.close(stream);
+              }
+            } catch (e) {
+              throw e;
+            } finally {
+              FS.closeStream(stream.fd);
+            }
+            stream.fd = null;
+          }, isClosed: (stream) => stream.fd === null, llseek: (stream, offset, whence) => {
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if (!stream.seekable || !stream.stream_ops.llseek) {
+              throw new FS.ErrnoError(70);
+            }
+            if (whence != 0 && whence != 1 && whence != 2) {
+              throw new FS.ErrnoError(28);
+            }
+            stream.position = stream.stream_ops.llseek(stream, offset, whence);
+            stream.ungotten = [];
+            return stream.position;
+          }, read: (stream, buffer, offset, length, position) => {
+            if (length < 0 || position < 0) {
+              throw new FS.ErrnoError(28);
+            }
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if ((stream.flags & 2097155) === 1) {
+              throw new FS.ErrnoError(8);
+            }
+            if (FS.isDir(stream.node.mode)) {
+              throw new FS.ErrnoError(31);
+            }
+            if (!stream.stream_ops.read) {
+              throw new FS.ErrnoError(28);
+            }
+            var seeking = typeof position != "undefined";
+            if (!seeking) {
+              position = stream.position;
+            } else if (!stream.seekable) {
+              throw new FS.ErrnoError(70);
+            }
+            var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
+            if (!seeking)
+              stream.position += bytesRead;
+            return bytesRead;
+          }, write: (stream, buffer, offset, length, position, canOwn) => {
+            if (length < 0 || position < 0) {
+              throw new FS.ErrnoError(28);
+            }
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if ((stream.flags & 2097155) === 0) {
+              throw new FS.ErrnoError(8);
+            }
+            if (FS.isDir(stream.node.mode)) {
+              throw new FS.ErrnoError(31);
+            }
+            if (!stream.stream_ops.write) {
+              throw new FS.ErrnoError(28);
+            }
+            if (stream.seekable && stream.flags & 1024) {
+              FS.llseek(stream, 0, 2);
+            }
+            var seeking = typeof position != "undefined";
+            if (!seeking) {
+              position = stream.position;
+            } else if (!stream.seekable) {
+              throw new FS.ErrnoError(70);
+            }
+            var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
+            if (!seeking)
+              stream.position += bytesWritten;
+            return bytesWritten;
+          }, allocate: (stream, offset, length) => {
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if (offset < 0 || length <= 0) {
+              throw new FS.ErrnoError(28);
+            }
+            if ((stream.flags & 2097155) === 0) {
+              throw new FS.ErrnoError(8);
+            }
+            if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
+              throw new FS.ErrnoError(43);
+            }
+            if (!stream.stream_ops.allocate) {
+              throw new FS.ErrnoError(138);
+            }
+            stream.stream_ops.allocate(stream, offset, length);
+          }, mmap: (stream, length, position, prot, flags) => {
+            if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {
+              throw new FS.ErrnoError(2);
+            }
+            if ((stream.flags & 2097155) === 1) {
+              throw new FS.ErrnoError(2);
+            }
+            if (!stream.stream_ops.mmap) {
+              throw new FS.ErrnoError(43);
+            }
+            return stream.stream_ops.mmap(stream, length, position, prot, flags);
+          }, msync: (stream, buffer, offset, length, mmapFlags) => {
+            if (!stream.stream_ops.msync) {
+              return 0;
+            }
+            return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
+          }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => {
+            if (!stream.stream_ops.ioctl) {
+              throw new FS.ErrnoError(59);
+            }
+            return stream.stream_ops.ioctl(stream, cmd, arg);
+          }, readFile: (path, opts = {}) => {
+            opts.flags = opts.flags || 0;
+            opts.encoding = opts.encoding || "binary";
+            if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
+              throw new Error(`Invalid encoding type "${opts.encoding}"`);
+            }
+            var ret;
+            var stream = FS.open(path, opts.flags);
+            var stat = FS.stat(path);
+            var length = stat.size;
+            var buf = new Uint8Array(length);
+            FS.read(stream, buf, 0, length, 0);
+            if (opts.encoding === "utf8") {
+              ret = UTF8ArrayToString(buf, 0);
+            } else if (opts.encoding === "binary") {
+              ret = buf;
+            }
+            FS.close(stream);
+            return ret;
+          }, writeFile: (path, data, opts = {}) => {
+            opts.flags = opts.flags || 577;
+            var stream = FS.open(path, opts.flags, opts.mode);
+            if (typeof data == "string") {
+              var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
+              var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
+              FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);
+            } else if (ArrayBuffer.isView(data)) {
+              FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);
+            } else {
+              throw new Error("Unsupported data type");
+            }
+            FS.close(stream);
+          }, cwd: () => FS.currentPath, chdir: (path) => {
+            var lookup = FS.lookupPath(path, { follow: true });
+            if (lookup.node === null) {
+              throw new FS.ErrnoError(44);
+            }
+            if (!FS.isDir(lookup.node.mode)) {
+              throw new FS.ErrnoError(54);
+            }
+            var errCode = FS.nodePermissions(lookup.node, "x");
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            FS.currentPath = lookup.path;
+          }, createDefaultDirectories: () => {
+            FS.mkdir("/tmp");
+            FS.mkdir("/home");
+            FS.mkdir("/home/web_user");
+          }, createDefaultDevices: () => {
+            FS.mkdir("/dev");
+            FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });
+            FS.mkdev("/dev/null", FS.makedev(1, 3));
+            TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
+            TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
+            FS.mkdev("/dev/tty", FS.makedev(5, 0));
+            FS.mkdev("/dev/tty1", FS.makedev(6, 0));
+            var randomBuffer = new Uint8Array(1024), randomLeft = 0;
+            var randomByte = () => {
+              if (randomLeft === 0) {
+                randomLeft = randomFill(randomBuffer).byteLength;
+              }
+              return randomBuffer[--randomLeft];
+            };
+            FS.createDevice("/dev", "random", randomByte);
+            FS.createDevice("/dev", "urandom", randomByte);
+            FS.mkdir("/dev/shm");
+            FS.mkdir("/dev/shm/tmp");
+          }, createSpecialDirectories: () => {
+            FS.mkdir("/proc");
+            var proc_self = FS.mkdir("/proc/self");
+            FS.mkdir("/proc/self/fd");
+            FS.mount({ mount: () => {
+              var node = FS.createNode(proc_self, "fd", 16384 | 511, 73);
+              node.node_ops = { lookup: (parent, name) => {
+                var fd = +name;
+                var stream = FS.getStreamChecked(fd);
+                var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } };
+                ret.parent = ret;
+                return ret;
+              } };
+              return node;
+            } }, {}, "/proc/self/fd");
+          }, createStandardStreams: () => {
+            if (Module["stdin"]) {
+              FS.createDevice("/dev", "stdin", Module["stdin"]);
+            } else {
+              FS.symlink("/dev/tty", "/dev/stdin");
+            }
+            if (Module["stdout"]) {
+              FS.createDevice("/dev", "stdout", null, Module["stdout"]);
+            } else {
+              FS.symlink("/dev/tty", "/dev/stdout");
+            }
+            if (Module["stderr"]) {
+              FS.createDevice("/dev", "stderr", null, Module["stderr"]);
+            } else {
+              FS.symlink("/dev/tty1", "/dev/stderr");
+            }
+            var stdin = FS.open("/dev/stdin", 0);
+            var stdout = FS.open("/dev/stdout", 1);
+            var stderr = FS.open("/dev/stderr", 1);
+          }, ensureErrnoError: () => {
+            if (FS.ErrnoError)
+              return;
+            FS.ErrnoError = function ErrnoError(errno, node) {
+              this.name = "ErrnoError";
+              this.node = node;
+              this.setErrno = function(errno2) {
+                this.errno = errno2;
+              };
+              this.setErrno(errno);
+              this.message = "FS error";
+            };
+            FS.ErrnoError.prototype = new Error();
+            FS.ErrnoError.prototype.constructor = FS.ErrnoError;
+            [44].forEach((code) => {
+              FS.genericErrors[code] = new FS.ErrnoError(code);
+              FS.genericErrors[code].stack = "";
+            });
+          }, staticInit: () => {
+            FS.ensureErrnoError();
+            FS.nameTable = new Array(4096);
+            FS.mount(MEMFS, {}, "/");
+            FS.createDefaultDirectories();
+            FS.createDefaultDevices();
+            FS.createSpecialDirectories();
+            FS.filesystems = { "MEMFS": MEMFS };
+          }, init: (input, output, error) => {
+            FS.init.initialized = true;
+            FS.ensureErrnoError();
+            Module["stdin"] = input || Module["stdin"];
+            Module["stdout"] = output || Module["stdout"];
+            Module["stderr"] = error || Module["stderr"];
+            FS.createStandardStreams();
+          }, quit: () => {
+            FS.init.initialized = false;
+            for (var i = 0; i < FS.streams.length; i++) {
+              var stream = FS.streams[i];
+              if (!stream) {
+                continue;
+              }
+              FS.close(stream);
+            }
+          }, findObject: (path, dontResolveLastLink) => {
+            var ret = FS.analyzePath(path, dontResolveLastLink);
+            if (!ret.exists) {
+              return null;
+            }
+            return ret.object;
+          }, analyzePath: (path, dontResolveLastLink) => {
+            try {
+              var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+              path = lookup.path;
+            } catch (e) {
+            }
+            var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null };
+            try {
+              var lookup = FS.lookupPath(path, { parent: true });
+              ret.parentExists = true;
+              ret.parentPath = lookup.path;
+              ret.parentObject = lookup.node;
+              ret.name = PATH.basename(path);
+              lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+              ret.exists = true;
+              ret.path = lookup.path;
+              ret.object = lookup.node;
+              ret.name = lookup.node.name;
+              ret.isRoot = lookup.path === "/";
+            } catch (e) {
+              ret.error = e.errno;
+            }
+            return ret;
+          }, createPath: (parent, path, canRead, canWrite) => {
+            parent = typeof parent == "string" ? parent : FS.getPath(parent);
+            var parts = path.split("/").reverse();
+            while (parts.length) {
+              var part = parts.pop();
+              if (!part)
+                continue;
+              var current = PATH.join2(parent, part);
+              try {
+                FS.mkdir(current);
+              } catch (e) {
+              }
+              parent = current;
+            }
+            return current;
+          }, createFile: (parent, name, properties, canRead, canWrite) => {
+            var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name);
+            var mode = FS_getMode(canRead, canWrite);
+            return FS.create(path, mode);
+          }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => {
+            var path = name;
+            if (parent) {
+              parent = typeof parent == "string" ? parent : FS.getPath(parent);
+              path = name ? PATH.join2(parent, name) : parent;
+            }
+            var mode = FS_getMode(canRead, canWrite);
+            var node = FS.create(path, mode);
+            if (data) {
+              if (typeof data == "string") {
+                var arr = new Array(data.length);
+                for (var i = 0, len = data.length; i < len; ++i)
+                  arr[i] = data.charCodeAt(i);
+                data = arr;
+              }
+              FS.chmod(node, mode | 146);
+              var stream = FS.open(node, 577);
+              FS.write(stream, data, 0, data.length, 0, canOwn);
+              FS.close(stream);
+              FS.chmod(node, mode);
+            }
+            return node;
+          }, createDevice: (parent, name, input, output) => {
+            var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name);
+            var mode = FS_getMode(!!input, !!output);
+            if (!FS.createDevice.major)
+              FS.createDevice.major = 64;
+            var dev = FS.makedev(FS.createDevice.major++, 0);
+            FS.registerDevice(dev, { open: (stream) => {
+              stream.seekable = false;
+            }, close: (stream) => {
+              if (output && output.buffer && output.buffer.length) {
+                output(10);
+              }
+            }, read: (stream, buffer, offset, length, pos) => {
+              var bytesRead = 0;
+              for (var i = 0; i < length; i++) {
+                var result;
+                try {
+                  result = input();
+                } catch (e) {
+                  throw new FS.ErrnoError(29);
+                }
+                if (result === void 0 && bytesRead === 0) {
+                  throw new FS.ErrnoError(6);
+                }
+                if (result === null || result === void 0)
+                  break;
+                bytesRead++;
+                buffer[offset + i] = result;
+              }
+              if (bytesRead) {
+                stream.node.timestamp = Date.now();
+              }
+              return bytesRead;
+            }, write: (stream, buffer, offset, length, pos) => {
+              for (var i = 0; i < length; i++) {
+                try {
+                  output(buffer[offset + i]);
+                } catch (e) {
+                  throw new FS.ErrnoError(29);
+                }
+              }
+              if (length) {
+                stream.node.timestamp = Date.now();
+              }
+              return i;
+            } });
+            return FS.mkdev(path, mode, dev);
+          }, forceLoadFile: (obj) => {
+            if (obj.isDevice || obj.isFolder || obj.link || obj.contents)
+              return true;
+            if (typeof XMLHttpRequest != "undefined") {
+              throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
+            } else if (read_) {
+              try {
+                obj.contents = intArrayFromString(read_(obj.url), true);
+                obj.usedBytes = obj.contents.length;
+              } catch (e) {
+                throw new FS.ErrnoError(29);
+              }
+            } else {
+              throw new Error("Cannot load without read() or XMLHttpRequest.");
+            }
+          }, createLazyFile: (parent, name, url, canRead, canWrite) => {
+            function LazyUint8Array() {
+              this.lengthKnown = false;
+              this.chunks = [];
+            }
+            LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
+              if (idx > this.length - 1 || idx < 0) {
+                return void 0;
+              }
+              var chunkOffset = idx % this.chunkSize;
+              var chunkNum = idx / this.chunkSize | 0;
+              return this.getter(chunkNum)[chunkOffset];
+            };
+            LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
+              this.getter = getter;
+            };
+            LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
+              var xhr = new XMLHttpRequest();
+              xhr.open("HEAD", url, false);
+              xhr.send(null);
+              if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304))
+                throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+              var datalength = Number(xhr.getResponseHeader("Content-length"));
+              var header;
+              var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
+              var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
+              var chunkSize = 1024 * 1024;
+              if (!hasByteServing)
+                chunkSize = datalength;
+              var doXHR = (from, to) => {
+                if (from > to)
+                  throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
+                if (to > datalength - 1)
+                  throw new Error("only " + datalength + " bytes available! programmer error!");
+                var xhr2 = new XMLHttpRequest();
+                xhr2.open("GET", url, false);
+                if (datalength !== chunkSize)
+                  xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to);
+                xhr2.responseType = "arraybuffer";
+                if (xhr2.overrideMimeType) {
+                  xhr2.overrideMimeType("text/plain; charset=x-user-defined");
+                }
+                xhr2.send(null);
+                if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304))
+                  throw new Error("Couldn't load " + url + ". Status: " + xhr2.status);
+                if (xhr2.response !== void 0) {
+                  return new Uint8Array(xhr2.response || []);
+                }
+                return intArrayFromString(xhr2.responseText || "", true);
+              };
+              var lazyArray2 = this;
+              lazyArray2.setDataGetter((chunkNum) => {
+                var start = chunkNum * chunkSize;
+                var end = (chunkNum + 1) * chunkSize - 1;
+                end = Math.min(end, datalength - 1);
+                if (typeof lazyArray2.chunks[chunkNum] == "undefined") {
+                  lazyArray2.chunks[chunkNum] = doXHR(start, end);
+                }
+                if (typeof lazyArray2.chunks[chunkNum] == "undefined")
+                  throw new Error("doXHR failed!");
+                return lazyArray2.chunks[chunkNum];
+              });
+              if (usesGzip || !datalength) {
+                chunkSize = datalength = 1;
+                datalength = this.getter(0).length;
+                chunkSize = datalength;
+                out("LazyFiles on gzip forces download of the whole file when length is accessed");
+              }
+              this._length = datalength;
+              this._chunkSize = chunkSize;
+              this.lengthKnown = true;
+            };
+            if (typeof XMLHttpRequest != "undefined") {
+              if (!ENVIRONMENT_IS_WORKER)
+                throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
+              var lazyArray = new LazyUint8Array();
+              Object.defineProperties(lazyArray, { length: { get: function() {
+                if (!this.lengthKnown) {
+                  this.cacheLength();
+                }
+                return this._length;
+              } }, chunkSize: { get: function() {
+                if (!this.lengthKnown) {
+                  this.cacheLength();
+                }
+                return this._chunkSize;
+              } } });
+              var properties = { isDevice: false, contents: lazyArray };
+            } else {
+              var properties = { isDevice: false, url };
+            }
+            var node = FS.createFile(parent, name, properties, canRead, canWrite);
+            if (properties.contents) {
+              node.contents = properties.contents;
+            } else if (properties.url) {
+              node.contents = null;
+              node.url = properties.url;
+            }
+            Object.defineProperties(node, { usedBytes: { get: function() {
+              return this.contents.length;
+            } } });
+            var stream_ops = {};
+            var keys = Object.keys(node.stream_ops);
+            keys.forEach((key) => {
+              var fn = node.stream_ops[key];
+              stream_ops[key] = function forceLoadLazyFile() {
+                FS.forceLoadFile(node);
+                return fn.apply(null, arguments);
+              };
+            });
+            function writeChunks(stream, buffer, offset, length, position) {
+              var contents = stream.node.contents;
+              if (position >= contents.length)
+                return 0;
+              var size = Math.min(contents.length - position, length);
+              if (contents.slice) {
+                for (var i = 0; i < size; i++) {
+                  buffer[offset + i] = contents[position + i];
+                }
+              } else {
+                for (var i = 0; i < size; i++) {
+                  buffer[offset + i] = contents.get(position + i);
+                }
+              }
+              return size;
+            }
+            stream_ops.read = (stream, buffer, offset, length, position) => {
+              FS.forceLoadFile(node);
+              return writeChunks(stream, buffer, offset, length, position);
+            };
+            stream_ops.mmap = (stream, length, position, prot, flags) => {
+              FS.forceLoadFile(node);
+              var ptr = mmapAlloc(length);
+              if (!ptr) {
+                throw new FS.ErrnoError(48);
+              }
+              writeChunks(stream, GROWABLE_HEAP_I8(), ptr, length, position);
+              return { ptr, allocated: true };
+            };
+            node.stream_ops = stream_ops;
+            return node;
+          } };
+          var UTF8ToString = (ptr, maxBytesToRead) => {
+            ptr >>>= 0;
+            return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : "";
+          };
+          var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) {
+            if (PATH.isAbs(path)) {
+              return path;
+            }
+            var dir;
+            if (dirfd === -100) {
+              dir = FS.cwd();
+            } else {
+              var dirstream = SYSCALLS.getStreamFromFD(dirfd);
+              dir = dirstream.path;
+            }
+            if (path.length == 0) {
+              if (!allowEmpty) {
+                throw new FS.ErrnoError(44);
+              }
+              return dir;
+            }
+            return PATH.join2(dir, path);
+          }, doStat: function(func, path, buf) {
+            try {
+              var stat = func(path);
+            } catch (e) {
+              if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
+                return -54;
+              }
+              throw e;
+            }
+            GROWABLE_HEAP_I32()[buf >>> 2] = stat.dev;
+            GROWABLE_HEAP_I32()[buf + 4 >>> 2] = stat.mode;
+            GROWABLE_HEAP_U32()[buf + 8 >>> 2] = stat.nlink;
+            GROWABLE_HEAP_I32()[buf + 12 >>> 2] = stat.uid;
+            GROWABLE_HEAP_I32()[buf + 16 >>> 2] = stat.gid;
+            GROWABLE_HEAP_I32()[buf + 20 >>> 2] = stat.rdev;
+            tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 24 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 28 >>> 2] = tempI64[1];
+            GROWABLE_HEAP_I32()[buf + 32 >>> 2] = 4096;
+            GROWABLE_HEAP_I32()[buf + 36 >>> 2] = stat.blocks;
+            var atime = stat.atime.getTime();
+            var mtime = stat.mtime.getTime();
+            var ctime = stat.ctime.getTime();
+            tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 40 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 44 >>> 2] = tempI64[1];
+            GROWABLE_HEAP_U32()[buf + 48 >>> 2] = atime % 1e3 * 1e3;
+            tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 56 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 60 >>> 2] = tempI64[1];
+            GROWABLE_HEAP_U32()[buf + 64 >>> 2] = mtime % 1e3 * 1e3;
+            tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 72 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 76 >>> 2] = tempI64[1];
+            GROWABLE_HEAP_U32()[buf + 80 >>> 2] = ctime % 1e3 * 1e3;
+            tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[buf + 88 >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[buf + 92 >>> 2] = tempI64[1];
+            return 0;
+          }, doMsync: function(addr, stream, len, flags, offset) {
+            if (!FS.isFile(stream.node.mode)) {
+              throw new FS.ErrnoError(43);
+            }
+            if (flags & 2) {
+              return 0;
+            }
+            var buffer = GROWABLE_HEAP_U8().slice(addr, addr + len);
+            FS.msync(stream, buffer, offset, len, flags);
+          }, varargs: void 0, get() {
+            SYSCALLS.varargs += 4;
+            var ret = GROWABLE_HEAP_I32()[SYSCALLS.varargs - 4 >>> 2];
+            return ret;
+          }, getStr(ptr) {
+            var ret = UTF8ToString(ptr);
+            return ret;
+          }, getStreamFromFD: function(fd) {
+            var stream = FS.getStreamChecked(fd);
+            return stream;
+          } };
+          function _proc_exit(code) {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return proxyToMainThread(1, 1, code);
+            EXITSTATUS = code;
+            if (!keepRuntimeAlive()) {
+              PThread.terminateAllThreads();
+              if (Module["onExit"])
+                Module["onExit"](code);
+              ABORT = true;
+            }
+            quit_(code, new ExitStatus(code));
+          }
+          var exitJS = (status, implicit) => {
+            EXITSTATUS = status;
+            if (ENVIRONMENT_IS_PTHREAD) {
+              exitOnMainThread(status);
+              throw "unwind";
+            }
+            _proc_exit(status);
+          };
+          var _exit = exitJS;
+          var handleException = (e) => {
+            if (e instanceof ExitStatus || e == "unwind") {
+              return EXITSTATUS;
+            }
+            quit_(1, e);
+          };
+          var PThread = { unusedWorkers: [], runningWorkers: [], tlsInitFunctions: [], pthreads: {}, init: function() {
+            if (ENVIRONMENT_IS_PTHREAD) {
+              PThread.initWorker();
+            } else {
+              PThread.initMainThread();
+            }
+          }, initMainThread: function() {
+            var pthreadPoolSize = navigator.hardwareConcurrency;
+            while (pthreadPoolSize--) {
+              PThread.allocateUnusedWorker();
+            }
+            addOnPreRun(() => {
+              addRunDependency("loading-workers");
+              PThread.loadWasmModuleToAllWorkers(() => removeRunDependency("loading-workers"));
+            });
+          }, initWorker: function() {
+            noExitRuntime = false;
+          }, setExitStatus: function(status) {
+            EXITSTATUS = status;
+          }, terminateAllThreads__deps: ["$terminateWorker"], terminateAllThreads: function() {
+            for (var worker of PThread.runningWorkers) {
+              terminateWorker(worker);
+            }
+            for (var worker of PThread.unusedWorkers) {
+              terminateWorker(worker);
+            }
+            PThread.unusedWorkers = [];
+            PThread.runningWorkers = [];
+            PThread.pthreads = [];
+          }, returnWorkerToPool: function(worker) {
+            var pthread_ptr = worker.pthread_ptr;
+            delete PThread.pthreads[pthread_ptr];
+            PThread.unusedWorkers.push(worker);
+            PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1);
+            worker.pthread_ptr = 0;
+            __emscripten_thread_free_data(pthread_ptr);
+          }, receiveObjectTransfer: function(data) {
+          }, threadInitTLS: function() {
+            PThread.tlsInitFunctions.forEach((f) => f());
+          }, loadWasmModuleToWorker: (worker) => new Promise((onFinishedLoading) => {
+            worker.onmessage = (e) => {
+              var d = e["data"];
+              var cmd = d["cmd"];
+              if (d["targetThread"] && d["targetThread"] != _pthread_self()) {
+                var targetWorker = PThread.pthreads[d.targetThread];
+                if (targetWorker) {
+                  targetWorker.postMessage(d, d["transferList"]);
+                } else {
+                  err('Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d["targetThread"] + ", but that thread no longer exists!");
+                }
+                return;
+              }
+              if (cmd === "checkMailbox") {
+                checkMailbox();
+              } else if (cmd === "spawnThread") {
+                spawnThread(d);
+              } else if (cmd === "cleanupThread") {
+                cleanupThread(d["thread"]);
+              } else if (cmd === "killThread") {
+                killThread(d["thread"]);
+              } else if (cmd === "cancelThread") {
+                cancelThread(d["thread"]);
+              } else if (cmd === "loaded") {
+                worker.loaded = true;
+                onFinishedLoading(worker);
+              } else if (cmd === "alert") {
+                alert("Thread " + d["threadId"] + ": " + d["text"]);
+              } else if (d.target === "setimmediate") {
+                worker.postMessage(d);
+              } else if (cmd === "callHandler") {
+                Module[d["handler"]](...d["args"]);
+              } else if (cmd) {
+                err("worker sent an unknown command " + cmd);
+              }
+            };
+            worker.onerror = (e) => {
+              var message = "worker sent an error!";
+              err(message + " " + e.filename + ":" + e.lineno + ": " + e.message);
+              throw e;
+            };
+            var handlers = [];
+            var knownHandlers = ["onExit", "onAbort", "print", "printErr"];
+            for (var handler of knownHandlers) {
+              if (Module.hasOwnProperty(handler)) {
+                handlers.push(handler);
+              }
+            }
+            worker.postMessage({ "cmd": "load", "handlers": handlers, "urlOrBlob": Module["mainScriptUrlOrBlob"] || _scriptDir, "wasmMemory": wasmMemory, "wasmModule": wasmModule });
+          }), loadWasmModuleToAllWorkers: function(onMaybeReady) {
+            if (ENVIRONMENT_IS_PTHREAD) {
+              return onMaybeReady();
+            }
+            let pthreadPoolReady = Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));
+            pthreadPoolReady.then(onMaybeReady);
+          }, allocateUnusedWorker: function() {
+            var worker;
+            var pthreadMainJs = locateFile("web-ifc-mt.worker.js");
+            worker = new Worker(pthreadMainJs);
+            PThread.unusedWorkers.push(worker);
+          }, getNewWorker: function() {
+            if (PThread.unusedWorkers.length == 0) {
+              PThread.allocateUnusedWorker();
+              PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]);
+            }
+            return PThread.unusedWorkers.pop();
+          } };
+          Module["PThread"] = PThread;
+          var callRuntimeCallbacks = (callbacks) => {
+            while (callbacks.length > 0) {
+              callbacks.shift()(Module);
+            }
+          };
+          function establishStackSpace() {
+            var pthread_ptr = _pthread_self();
+            var stackHigh = GROWABLE_HEAP_I32()[pthread_ptr + 52 >>> 2];
+            var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 56 >>> 2];
+            var stackLow = stackHigh - stackSize;
+            _emscripten_stack_set_limits(stackHigh, stackLow);
+            stackRestore(stackHigh);
+          }
+          Module["establishStackSpace"] = establishStackSpace;
+          function exitOnMainThread(returnCode) {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return proxyToMainThread(2, 0, returnCode);
+            _exit(returnCode);
+          }
+          var wasmTableMirror = [];
+          var getWasmTableEntry = (funcPtr) => {
+            var func = wasmTableMirror[funcPtr];
+            if (!func) {
+              if (funcPtr >= wasmTableMirror.length)
+                wasmTableMirror.length = funcPtr + 1;
+              wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
+            }
+            return func;
+          };
+          function invokeEntryPoint(ptr, arg) {
+            var result = getWasmTableEntry(ptr)(arg);
+            function finish(result2) {
+              if (keepRuntimeAlive()) {
+                PThread.setExitStatus(result2);
+              } else {
+                __emscripten_thread_exit(result2);
+              }
+            }
+            finish(result);
+          }
+          Module["invokeEntryPoint"] = invokeEntryPoint;
+          function registerTLSInit(tlsInitFunc) {
+            PThread.tlsInitFunctions.push(tlsInitFunc);
+          }
+          function ExceptionInfo(excPtr) {
+            this.excPtr = excPtr;
+            this.ptr = excPtr - 24;
+            this.set_type = function(type) {
+              GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2] = type;
+            };
+            this.get_type = function() {
+              return GROWABLE_HEAP_U32()[this.ptr + 4 >>> 2];
+            };
+            this.set_destructor = function(destructor) {
+              GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2] = destructor;
+            };
+            this.get_destructor = function() {
+              return GROWABLE_HEAP_U32()[this.ptr + 8 >>> 2];
+            };
+            this.set_caught = function(caught) {
+              caught = caught ? 1 : 0;
+              GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] = caught;
+            };
+            this.get_caught = function() {
+              return GROWABLE_HEAP_I8()[this.ptr + 12 >>> 0] != 0;
+            };
+            this.set_rethrown = function(rethrown) {
+              rethrown = rethrown ? 1 : 0;
+              GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] = rethrown;
+            };
+            this.get_rethrown = function() {
+              return GROWABLE_HEAP_I8()[this.ptr + 13 >>> 0] != 0;
+            };
+            this.init = function(type, destructor) {
+              this.set_adjusted_ptr(0);
+              this.set_type(type);
+              this.set_destructor(destructor);
+            };
+            this.set_adjusted_ptr = function(adjustedPtr) {
+              GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2] = adjustedPtr;
+            };
+            this.get_adjusted_ptr = function() {
+              return GROWABLE_HEAP_U32()[this.ptr + 16 >>> 2];
+            };
+            this.get_exception_ptr = function() {
+              var isPointer = ___cxa_is_pointer_type(this.get_type());
+              if (isPointer) {
+                return GROWABLE_HEAP_U32()[this.excPtr >>> 2];
+              }
+              var adjusted = this.get_adjusted_ptr();
+              if (adjusted !== 0)
+                return adjusted;
+              return this.excPtr;
+            };
+          }
+          var exceptionLast = 0;
+          var uncaughtExceptionCount = 0;
+          function convertI32PairToI53Checked(lo, hi) {
+            return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN;
+          }
+          function ___cxa_throw(ptr, type, destructor) {
+            ptr >>>= 0;
+            type >>>= 0;
+            destructor >>>= 0;
+            var info = new ExceptionInfo(ptr);
+            info.init(type, destructor);
+            exceptionLast = ptr;
+            uncaughtExceptionCount++;
+            throw exceptionLast;
+          }
+          function ___emscripten_init_main_thread_js(tb) {
+            tb >>>= 0;
+            __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB, 5242880, false);
+            PThread.threadInitTLS();
+          }
+          function ___emscripten_thread_cleanup(thread) {
+            thread >>>= 0;
+            if (!ENVIRONMENT_IS_PTHREAD)
+              cleanupThread(thread);
+            else
+              postMessage({ "cmd": "cleanupThread", "thread": thread });
+          }
+          var tupleRegistrations = {};
+          function runDestructors(destructors) {
+            while (destructors.length) {
+              var ptr = destructors.pop();
+              var del = destructors.pop();
+              del(ptr);
+            }
+          }
+          function simpleReadValueFromPointer(pointer) {
+            return this["fromWireType"](GROWABLE_HEAP_I32()[pointer >>> 2]);
+          }
+          var awaitingDependencies = {};
+          var registeredTypes = {};
+          var typeDependencies = {};
+          var InternalError = void 0;
+          function throwInternalError(message) {
+            throw new InternalError(message);
+          }
+          function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {
+            myTypes.forEach(function(type) {
+              typeDependencies[type] = dependentTypes;
+            });
+            function onComplete(typeConverters2) {
+              var myTypeConverters = getTypeConverters(typeConverters2);
+              if (myTypeConverters.length !== myTypes.length) {
+                throwInternalError("Mismatched type converter count");
+              }
+              for (var i = 0; i < myTypes.length; ++i) {
+                registerType(myTypes[i], myTypeConverters[i]);
+              }
+            }
+            var typeConverters = new Array(dependentTypes.length);
+            var unregisteredTypes = [];
+            var registered = 0;
+            dependentTypes.forEach((dt, i) => {
+              if (registeredTypes.hasOwnProperty(dt)) {
+                typeConverters[i] = registeredTypes[dt];
+              } else {
+                unregisteredTypes.push(dt);
+                if (!awaitingDependencies.hasOwnProperty(dt)) {
+                  awaitingDependencies[dt] = [];
+                }
+                awaitingDependencies[dt].push(() => {
+                  typeConverters[i] = registeredTypes[dt];
+                  ++registered;
+                  if (registered === unregisteredTypes.length) {
+                    onComplete(typeConverters);
+                  }
+                });
+              }
+            });
+            if (unregisteredTypes.length === 0) {
+              onComplete(typeConverters);
+            }
+          }
+          function __embind_finalize_value_array(rawTupleType) {
+            rawTupleType >>>= 0;
+            var reg = tupleRegistrations[rawTupleType];
+            delete tupleRegistrations[rawTupleType];
+            var elements = reg.elements;
+            var elementsLength = elements.length;
+            var elementTypes = elements.map(function(elt) {
+              return elt.getterReturnType;
+            }).concat(elements.map(function(elt) {
+              return elt.setterArgumentType;
+            }));
+            var rawConstructor = reg.rawConstructor;
+            var rawDestructor = reg.rawDestructor;
+            whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) {
+              elements.forEach((elt, i) => {
+                var getterReturnType = elementTypes2[i];
+                var getter = elt.getter;
+                var getterContext = elt.getterContext;
+                var setterArgumentType = elementTypes2[i + elementsLength];
+                var setter = elt.setter;
+                var setterContext = elt.setterContext;
+                elt.read = (ptr) => getterReturnType["fromWireType"](getter(getterContext, ptr));
+                elt.write = (ptr, o) => {
+                  var destructors = [];
+                  setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
+                  runDestructors(destructors);
+                };
+              });
+              return [{ name: reg.name, "fromWireType": function(ptr) {
+                var rv = new Array(elementsLength);
+                for (var i = 0; i < elementsLength; ++i) {
+                  rv[i] = elements[i].read(ptr);
+                }
+                rawDestructor(ptr);
+                return rv;
+              }, "toWireType": function(destructors, o) {
+                if (elementsLength !== o.length) {
+                  throw new TypeError(`Incorrect number of tuple elements for ${reg.name}: expected=${elementsLength}, actual=${o.length}`);
+                }
+                var ptr = rawConstructor();
+                for (var i = 0; i < elementsLength; ++i) {
+                  elements[i].write(ptr, o[i]);
+                }
+                if (destructors !== null) {
+                  destructors.push(rawDestructor, ptr);
+                }
+                return ptr;
+              }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }];
+            });
+          }
+          var structRegistrations = {};
+          var __embind_finalize_value_object = function(structType) {
+            structType >>>= 0;
+            var reg = structRegistrations[structType];
+            delete structRegistrations[structType];
+            var rawConstructor = reg.rawConstructor;
+            var rawDestructor = reg.rawDestructor;
+            var fieldRecords = reg.fields;
+            var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType));
+            whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => {
+              var fields = {};
+              fieldRecords.forEach((field, i) => {
+                var fieldName = field.fieldName;
+                var getterReturnType = fieldTypes2[i];
+                var getter = field.getter;
+                var getterContext = field.getterContext;
+                var setterArgumentType = fieldTypes2[i + fieldRecords.length];
+                var setter = field.setter;
+                var setterContext = field.setterContext;
+                fields[fieldName] = { read: (ptr) => getterReturnType["fromWireType"](getter(getterContext, ptr)), write: (ptr, o) => {
+                  var destructors = [];
+                  setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
+                  runDestructors(destructors);
+                } };
+              });
+              return [{ name: reg.name, "fromWireType": function(ptr) {
+                var rv = {};
+                for (var i in fields) {
+                  rv[i] = fields[i].read(ptr);
+                }
+                rawDestructor(ptr);
+                return rv;
+              }, "toWireType": function(destructors, o) {
+                for (var fieldName in fields) {
+                  if (!(fieldName in o)) {
+                    throw new TypeError(`Missing field: "${fieldName}"`);
+                  }
+                }
+                var ptr = rawConstructor();
+                for (fieldName in fields) {
+                  fields[fieldName].write(ptr, o[fieldName]);
+                }
+                if (destructors !== null) {
+                  destructors.push(rawDestructor, ptr);
+                }
+                return ptr;
+              }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }];
+            });
+          };
+          function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {
+            primitiveType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+          }
+          function getShiftFromSize(size) {
+            switch (size) {
+              case 1:
+                return 0;
+              case 2:
+                return 1;
+              case 4:
+                return 2;
+              case 8:
+                return 3;
+              default:
+                throw new TypeError(`Unknown type size: ${size}`);
+            }
+          }
+          function embind_init_charCodes() {
+            var codes = new Array(256);
+            for (var i = 0; i < 256; ++i) {
+              codes[i] = String.fromCharCode(i);
+            }
+            embind_charCodes = codes;
+          }
+          var embind_charCodes = void 0;
+          function readLatin1String(ptr) {
+            var ret = "";
+            var c = ptr;
+            while (GROWABLE_HEAP_U8()[c >>> 0]) {
+              ret += embind_charCodes[GROWABLE_HEAP_U8()[c++ >>> 0]];
+            }
+            return ret;
+          }
+          var BindingError = void 0;
+          function throwBindingError(message) {
+            throw new BindingError(message);
+          }
+          function sharedRegisterType(rawType, registeredInstance, options = {}) {
+            var name = registeredInstance.name;
+            if (!rawType) {
+              throwBindingError(`type "${name}" must have a positive integer typeid pointer`);
+            }
+            if (registeredTypes.hasOwnProperty(rawType)) {
+              if (options.ignoreDuplicateRegistrations) {
+                return;
+              } else {
+                throwBindingError(`Cannot register type '${name}' twice`);
+              }
+            }
+            registeredTypes[rawType] = registeredInstance;
+            delete typeDependencies[rawType];
+            if (awaitingDependencies.hasOwnProperty(rawType)) {
+              var callbacks = awaitingDependencies[rawType];
+              delete awaitingDependencies[rawType];
+              callbacks.forEach((cb) => cb());
+            }
+          }
+          function registerType(rawType, registeredInstance, options = {}) {
+            if (!("argPackAdvance" in registeredInstance)) {
+              throw new TypeError("registerType registeredInstance requires argPackAdvance");
+            }
+            return sharedRegisterType(rawType, registeredInstance, options);
+          }
+          function __embind_register_bool(rawType, name, size, trueValue, falseValue) {
+            rawType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+            var shift = getShiftFromSize(size);
+            name = readLatin1String(name);
+            registerType(rawType, { name, "fromWireType": function(wt) {
+              return !!wt;
+            }, "toWireType": function(destructors, o) {
+              return o ? trueValue : falseValue;
+            }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) {
+              var heap;
+              if (size === 1) {
+                heap = GROWABLE_HEAP_I8();
+              } else if (size === 2) {
+                heap = GROWABLE_HEAP_I16();
+              } else if (size === 4) {
+                heap = GROWABLE_HEAP_I32();
+              } else {
+                throw new TypeError("Unknown boolean type size: " + name);
+              }
+              return this["fromWireType"](heap[pointer >>> shift]);
+            }, destructorFunction: null });
+          }
+          function ClassHandle_isAliasOf(other) {
+            if (!(this instanceof ClassHandle)) {
+              return false;
+            }
+            if (!(other instanceof ClassHandle)) {
+              return false;
+            }
+            var leftClass = this.$$.ptrType.registeredClass;
+            var left = this.$$.ptr;
+            var rightClass = other.$$.ptrType.registeredClass;
+            var right = other.$$.ptr;
+            while (leftClass.baseClass) {
+              left = leftClass.upcast(left);
+              leftClass = leftClass.baseClass;
+            }
+            while (rightClass.baseClass) {
+              right = rightClass.upcast(right);
+              rightClass = rightClass.baseClass;
+            }
+            return leftClass === rightClass && left === right;
+          }
+          function shallowCopyInternalPointer(o) {
+            return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType };
+          }
+          function throwInstanceAlreadyDeleted(obj) {
+            function getInstanceTypeName(handle) {
+              return handle.$$.ptrType.registeredClass.name;
+            }
+            throwBindingError(getInstanceTypeName(obj) + " instance already deleted");
+          }
+          var finalizationRegistry = false;
+          function detachFinalizer(handle) {
+          }
+          function runDestructor($$) {
+            if ($$.smartPtr) {
+              $$.smartPtrType.rawDestructor($$.smartPtr);
+            } else {
+              $$.ptrType.registeredClass.rawDestructor($$.ptr);
+            }
+          }
+          function releaseClassHandle($$) {
+            $$.count.value -= 1;
+            var toDelete = $$.count.value === 0;
+            if (toDelete) {
+              runDestructor($$);
+            }
+          }
+          function downcastPointer(ptr, ptrClass, desiredClass) {
+            if (ptrClass === desiredClass) {
+              return ptr;
+            }
+            if (desiredClass.baseClass === void 0) {
+              return null;
+            }
+            var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
+            if (rv === null) {
+              return null;
+            }
+            return desiredClass.downcast(rv);
+          }
+          var registeredPointers = {};
+          function getInheritedInstanceCount() {
+            return Object.keys(registeredInstances).length;
+          }
+          function getLiveInheritedInstances() {
+            var rv = [];
+            for (var k in registeredInstances) {
+              if (registeredInstances.hasOwnProperty(k)) {
+                rv.push(registeredInstances[k]);
+              }
+            }
+            return rv;
+          }
+          var deletionQueue = [];
+          function flushPendingDeletes() {
+            while (deletionQueue.length) {
+              var obj = deletionQueue.pop();
+              obj.$$.deleteScheduled = false;
+              obj["delete"]();
+            }
+          }
+          var delayFunction = void 0;
+          function setDelayFunction(fn) {
+            delayFunction = fn;
+            if (deletionQueue.length && delayFunction) {
+              delayFunction(flushPendingDeletes);
+            }
+          }
+          function init_embind() {
+            Module["getInheritedInstanceCount"] = getInheritedInstanceCount;
+            Module["getLiveInheritedInstances"] = getLiveInheritedInstances;
+            Module["flushPendingDeletes"] = flushPendingDeletes;
+            Module["setDelayFunction"] = setDelayFunction;
+          }
+          var registeredInstances = {};
+          function getBasestPointer(class_, ptr) {
+            if (ptr === void 0) {
+              throwBindingError("ptr should not be undefined");
+            }
+            while (class_.baseClass) {
+              ptr = class_.upcast(ptr);
+              class_ = class_.baseClass;
+            }
+            return ptr;
+          }
+          function getInheritedInstance(class_, ptr) {
+            ptr = getBasestPointer(class_, ptr);
+            return registeredInstances[ptr];
+          }
+          function makeClassHandle(prototype, record) {
+            if (!record.ptrType || !record.ptr) {
+              throwInternalError("makeClassHandle requires ptr and ptrType");
+            }
+            var hasSmartPtrType = !!record.smartPtrType;
+            var hasSmartPtr = !!record.smartPtr;
+            if (hasSmartPtrType !== hasSmartPtr) {
+              throwInternalError("Both smartPtrType and smartPtr must be specified");
+            }
+            record.count = { value: 1 };
+            return attachFinalizer(Object.create(prototype, { $$: { value: record } }));
+          }
+          function RegisteredPointer_fromWireType(ptr) {
+            var rawPointer = this.getPointee(ptr);
+            if (!rawPointer) {
+              this.destructor(ptr);
+              return null;
+            }
+            var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
+            if (registeredInstance !== void 0) {
+              if (registeredInstance.$$.count.value === 0) {
+                registeredInstance.$$.ptr = rawPointer;
+                registeredInstance.$$.smartPtr = ptr;
+                return registeredInstance["clone"]();
+              } else {
+                var rv = registeredInstance["clone"]();
+                this.destructor(ptr);
+                return rv;
+              }
+            }
+            function makeDefaultHandle() {
+              if (this.isSmartPointer) {
+                return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });
+              } else {
+                return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });
+              }
+            }
+            var actualType = this.registeredClass.getActualType(rawPointer);
+            var registeredPointerRecord = registeredPointers[actualType];
+            if (!registeredPointerRecord) {
+              return makeDefaultHandle.call(this);
+            }
+            var toType;
+            if (this.isConst) {
+              toType = registeredPointerRecord.constPointerType;
+            } else {
+              toType = registeredPointerRecord.pointerType;
+            }
+            var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
+            if (dp === null) {
+              return makeDefaultHandle.call(this);
+            }
+            if (this.isSmartPointer) {
+              return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });
+            } else {
+              return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });
+            }
+          }
+          var attachFinalizer = function(handle) {
+            if (typeof FinalizationRegistry === "undefined") {
+              attachFinalizer = (handle2) => handle2;
+              return handle;
+            }
+            finalizationRegistry = new FinalizationRegistry((info) => {
+              releaseClassHandle(info.$$);
+            });
+            attachFinalizer = (handle2) => {
+              var $$ = handle2.$$;
+              var hasSmartPtr = !!$$.smartPtr;
+              if (hasSmartPtr) {
+                var info = { $$ };
+                finalizationRegistry.register(handle2, info, handle2);
+              }
+              return handle2;
+            };
+            detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);
+            return attachFinalizer(handle);
+          };
+          function ClassHandle_clone() {
+            if (!this.$$.ptr) {
+              throwInstanceAlreadyDeleted(this);
+            }
+            if (this.$$.preservePointerOnDelete) {
+              this.$$.count.value += 1;
+              return this;
+            } else {
+              var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } }));
+              clone.$$.count.value += 1;
+              clone.$$.deleteScheduled = false;
+              return clone;
+            }
+          }
+          function ClassHandle_delete() {
+            if (!this.$$.ptr) {
+              throwInstanceAlreadyDeleted(this);
+            }
+            if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
+              throwBindingError("Object already scheduled for deletion");
+            }
+            detachFinalizer(this);
+            releaseClassHandle(this.$$);
+            if (!this.$$.preservePointerOnDelete) {
+              this.$$.smartPtr = void 0;
+              this.$$.ptr = void 0;
+            }
+          }
+          function ClassHandle_isDeleted() {
+            return !this.$$.ptr;
+          }
+          function ClassHandle_deleteLater() {
+            if (!this.$$.ptr) {
+              throwInstanceAlreadyDeleted(this);
+            }
+            if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
+              throwBindingError("Object already scheduled for deletion");
+            }
+            deletionQueue.push(this);
+            if (deletionQueue.length === 1 && delayFunction) {
+              delayFunction(flushPendingDeletes);
+            }
+            this.$$.deleteScheduled = true;
+            return this;
+          }
+          function init_ClassHandle() {
+            ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf;
+            ClassHandle.prototype["clone"] = ClassHandle_clone;
+            ClassHandle.prototype["delete"] = ClassHandle_delete;
+            ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted;
+            ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater;
+          }
+          function ClassHandle() {
+          }
+          var char_0 = 48;
+          var char_9 = 57;
+          function makeLegalFunctionName(name) {
+            if (name === void 0) {
+              return "_unknown";
+            }
+            name = name.replace(/[^a-zA-Z0-9_]/g, "$");
+            var f = name.charCodeAt(0);
+            if (f >= char_0 && f <= char_9) {
+              return `_${name}`;
+            }
+            return name;
+          }
+          function createNamedFunction(name, body) {
+            name = makeLegalFunctionName(name);
+            return { [name]: function() {
+              return body.apply(this, arguments);
+            } }[name];
+          }
+          function ensureOverloadTable(proto, methodName, humanName) {
+            if (proto[methodName].overloadTable === void 0) {
+              var prevFunc = proto[methodName];
+              proto[methodName] = function() {
+                if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {
+                  throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`);
+                }
+                return proto[methodName].overloadTable[arguments.length].apply(this, arguments);
+              };
+              proto[methodName].overloadTable = [];
+              proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;
+            }
+          }
+          function exposePublicSymbol(name, value, numArguments) {
+            if (Module.hasOwnProperty(name)) {
+              if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) {
+                throwBindingError(`Cannot register public name '${name}' twice`);
+              }
+              ensureOverloadTable(Module, name, name);
+              if (Module.hasOwnProperty(numArguments)) {
+                throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);
+              }
+              Module[name].overloadTable[numArguments] = value;
+            } else {
+              Module[name] = value;
+              if (numArguments !== void 0) {
+                Module[name].numArguments = numArguments;
+              }
+            }
+          }
+          function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {
+            this.name = name;
+            this.constructor = constructor;
+            this.instancePrototype = instancePrototype;
+            this.rawDestructor = rawDestructor;
+            this.baseClass = baseClass;
+            this.getActualType = getActualType;
+            this.upcast = upcast;
+            this.downcast = downcast;
+            this.pureVirtualFunctions = [];
+          }
+          function upcastPointer(ptr, ptrClass, desiredClass) {
+            while (ptrClass !== desiredClass) {
+              if (!ptrClass.upcast) {
+                throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`);
+              }
+              ptr = ptrClass.upcast(ptr);
+              ptrClass = ptrClass.baseClass;
+            }
+            return ptr;
+          }
+          function constNoSmartPtrRawPointerToWireType(destructors, handle) {
+            if (handle === null) {
+              if (this.isReference) {
+                throwBindingError(`null is not a valid ${this.name}`);
+              }
+              return 0;
+            }
+            if (!handle.$$) {
+              throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);
+            }
+            if (!handle.$$.ptr) {
+              throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);
+            }
+            var handleClass = handle.$$.ptrType.registeredClass;
+            var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+            return ptr;
+          }
+          function genericPointerToWireType(destructors, handle) {
+            var ptr;
+            if (handle === null) {
+              if (this.isReference) {
+                throwBindingError(`null is not a valid ${this.name}`);
+              }
+              if (this.isSmartPointer) {
+                ptr = this.rawConstructor();
+                if (destructors !== null) {
+                  destructors.push(this.rawDestructor, ptr);
+                }
+                return ptr;
+              } else {
+                return 0;
+              }
+            }
+            if (!handle.$$) {
+              throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);
+            }
+            if (!handle.$$.ptr) {
+              throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);
+            }
+            if (!this.isConst && handle.$$.ptrType.isConst) {
+              throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`);
+            }
+            var handleClass = handle.$$.ptrType.registeredClass;
+            ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+            if (this.isSmartPointer) {
+              if (handle.$$.smartPtr === void 0) {
+                throwBindingError("Passing raw pointer to smart pointer is illegal");
+              }
+              switch (this.sharingPolicy) {
+                case 0:
+                  if (handle.$$.smartPtrType === this) {
+                    ptr = handle.$$.smartPtr;
+                  } else {
+                    throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`);
+                  }
+                  break;
+                case 1:
+                  ptr = handle.$$.smartPtr;
+                  break;
+                case 2:
+                  if (handle.$$.smartPtrType === this) {
+                    ptr = handle.$$.smartPtr;
+                  } else {
+                    var clonedHandle = handle["clone"]();
+                    ptr = this.rawShare(ptr, Emval.toHandle(function() {
+                      clonedHandle["delete"]();
+                    }));
+                    if (destructors !== null) {
+                      destructors.push(this.rawDestructor, ptr);
+                    }
+                  }
+                  break;
+                default:
+                  throwBindingError("Unsupporting sharing policy");
+              }
+            }
+            return ptr;
+          }
+          function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {
+            if (handle === null) {
+              if (this.isReference) {
+                throwBindingError(`null is not a valid ${this.name}`);
+              }
+              return 0;
+            }
+            if (!handle.$$) {
+              throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);
+            }
+            if (!handle.$$.ptr) {
+              throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);
+            }
+            if (handle.$$.ptrType.isConst) {
+              throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`);
+            }
+            var handleClass = handle.$$.ptrType.registeredClass;
+            var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+            return ptr;
+          }
+          function RegisteredPointer_getPointee(ptr) {
+            if (this.rawGetPointee) {
+              ptr = this.rawGetPointee(ptr);
+            }
+            return ptr;
+          }
+          function RegisteredPointer_destructor(ptr) {
+            if (this.rawDestructor) {
+              this.rawDestructor(ptr);
+            }
+          }
+          function RegisteredPointer_deleteObject(handle) {
+            if (handle !== null) {
+              handle["delete"]();
+            }
+          }
+          function init_RegisteredPointer() {
+            RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;
+            RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;
+            RegisteredPointer.prototype["argPackAdvance"] = 8;
+            RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer;
+            RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject;
+            RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType;
+          }
+          function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {
+            this.name = name;
+            this.registeredClass = registeredClass;
+            this.isReference = isReference;
+            this.isConst = isConst;
+            this.isSmartPointer = isSmartPointer;
+            this.pointeeType = pointeeType;
+            this.sharingPolicy = sharingPolicy;
+            this.rawGetPointee = rawGetPointee;
+            this.rawConstructor = rawConstructor;
+            this.rawShare = rawShare;
+            this.rawDestructor = rawDestructor;
+            if (!isSmartPointer && registeredClass.baseClass === void 0) {
+              if (isConst) {
+                this["toWireType"] = constNoSmartPtrRawPointerToWireType;
+                this.destructorFunction = null;
+              } else {
+                this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType;
+                this.destructorFunction = null;
+              }
+            } else {
+              this["toWireType"] = genericPointerToWireType;
+            }
+          }
+          function replacePublicSymbol(name, value, numArguments) {
+            if (!Module.hasOwnProperty(name)) {
+              throwInternalError("Replacing nonexistant public symbol");
+            }
+            if (Module[name].overloadTable !== void 0 && numArguments !== void 0) {
+              Module[name].overloadTable[numArguments] = value;
+            } else {
+              Module[name] = value;
+              Module[name].argCount = numArguments;
+            }
+          }
+          var dynCallLegacy = (sig, ptr, args) => {
+            var f = Module["dynCall_" + sig];
+            return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr);
+          };
+          var dynCall = (sig, ptr, args) => {
+            if (sig.includes("j")) {
+              return dynCallLegacy(sig, ptr, args);
+            }
+            var rtn = getWasmTableEntry(ptr).apply(null, args);
+            return rtn;
+          };
+          var getDynCaller = (sig, ptr) => {
+            var argCache = [];
+            return function() {
+              argCache.length = 0;
+              Object.assign(argCache, arguments);
+              return dynCall(sig, ptr, argCache);
+            };
+          };
+          function embind__requireFunction(signature, rawFunction) {
+            signature = readLatin1String(signature);
+            function makeDynCaller() {
+              if (signature.includes("j")) {
+                return getDynCaller(signature, rawFunction);
+              }
+              return getWasmTableEntry(rawFunction);
+            }
+            var fp = makeDynCaller();
+            if (typeof fp != "function") {
+              throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`);
+            }
+            return fp;
+          }
+          function extendError(baseErrorType, errorName) {
+            var errorClass = createNamedFunction(errorName, function(message) {
+              this.name = errorName;
+              this.message = message;
+              var stack = new Error(message).stack;
+              if (stack !== void 0) {
+                this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, "");
+              }
+            });
+            errorClass.prototype = Object.create(baseErrorType.prototype);
+            errorClass.prototype.constructor = errorClass;
+            errorClass.prototype.toString = function() {
+              if (this.message === void 0) {
+                return this.name;
+              } else {
+                return `${this.name}: ${this.message}`;
+              }
+            };
+            return errorClass;
+          }
+          var UnboundTypeError = void 0;
+          function getTypeName(type) {
+            var ptr = ___getTypeName(type);
+            var rv = readLatin1String(ptr);
+            _free(ptr);
+            return rv;
+          }
+          function throwUnboundTypeError(message, types) {
+            var unboundTypes = [];
+            var seen = {};
+            function visit(type) {
+              if (seen[type]) {
+                return;
+              }
+              if (registeredTypes[type]) {
+                return;
+              }
+              if (typeDependencies[type]) {
+                typeDependencies[type].forEach(visit);
+                return;
+              }
+              unboundTypes.push(type);
+              seen[type] = true;
+            }
+            types.forEach(visit);
+            throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([", "]));
+          }
+          function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {
+            rawType >>>= 0;
+            rawPointerType >>>= 0;
+            rawConstPointerType >>>= 0;
+            baseClassRawType >>>= 0;
+            getActualTypeSignature >>>= 0;
+            getActualType >>>= 0;
+            upcastSignature >>>= 0;
+            upcast >>>= 0;
+            downcastSignature >>>= 0;
+            downcast >>>= 0;
+            name >>>= 0;
+            destructorSignature >>>= 0;
+            rawDestructor >>>= 0;
+            name = readLatin1String(name);
+            getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
+            if (upcast) {
+              upcast = embind__requireFunction(upcastSignature, upcast);
+            }
+            if (downcast) {
+              downcast = embind__requireFunction(downcastSignature, downcast);
+            }
+            rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
+            var legalFunctionName = makeLegalFunctionName(name);
+            exposePublicSymbol(legalFunctionName, function() {
+              throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]);
+            });
+            whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) {
+              base = base[0];
+              var baseClass;
+              var basePrototype;
+              if (baseClassRawType) {
+                baseClass = base.registeredClass;
+                basePrototype = baseClass.instancePrototype;
+              } else {
+                basePrototype = ClassHandle.prototype;
+              }
+              var constructor = createNamedFunction(legalFunctionName, function() {
+                if (Object.getPrototypeOf(this) !== instancePrototype) {
+                  throw new BindingError("Use 'new' to construct " + name);
+                }
+                if (registeredClass.constructor_body === void 0) {
+                  throw new BindingError(name + " has no accessible constructor");
+                }
+                var body = registeredClass.constructor_body[arguments.length];
+                if (body === void 0) {
+                  throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`);
+                }
+                return body.apply(this, arguments);
+              });
+              var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } });
+              constructor.prototype = instancePrototype;
+              var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
+              if (registeredClass.baseClass) {
+                if (registeredClass.baseClass.__derivedClasses === void 0) {
+                  registeredClass.baseClass.__derivedClasses = [];
+                }
+                registeredClass.baseClass.__derivedClasses.push(registeredClass);
+              }
+              var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);
+              var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false);
+              var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false);
+              registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter };
+              replacePublicSymbol(legalFunctionName, constructor);
+              return [referenceConverter, pointerConverter, constPointerConverter];
+            });
+          }
+          function heap32VectorToArray(count, firstElement) {
+            var array = [];
+            for (var i = 0; i < count; i++) {
+              array.push(GROWABLE_HEAP_U32()[firstElement + i * 4 >>> 2]);
+            }
+            return array;
+          }
+          function newFunc(constructor, argumentList) {
+            if (!(constructor instanceof Function)) {
+              throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`);
+            }
+            var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() {
+            });
+            dummy.prototype = constructor.prototype;
+            var obj = new dummy();
+            var r = constructor.apply(obj, argumentList);
+            return r instanceof Object ? r : obj;
+          }
+          function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) {
+            var argCount = argTypes.length;
+            if (argCount < 2) {
+              throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");
+            }
+            var isClassMethodFunc = argTypes[1] !== null && classType !== null;
+            var needsDestructorStack = false;
+            for (var i = 1; i < argTypes.length; ++i) {
+              if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) {
+                needsDestructorStack = true;
+                break;
+              }
+            }
+            var returns = argTypes[0].name !== "void";
+            var argsList = "";
+            var argsListWired = "";
+            for (var i = 0; i < argCount - 2; ++i) {
+              argsList += (i !== 0 ? ", " : "") + "arg" + i;
+              argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired";
+            }
+            var invokerFnBody = `
+        return function ${makeLegalFunctionName(humanName)}(${argsList}) {
+        if (arguments.length !== ${argCount - 2}) {
+          throwBindingError('function ${humanName} called with ${arguments.length} arguments, expected ${argCount - 2} args!');
+        }`;
+            if (needsDestructorStack) {
+              invokerFnBody += "var destructors = [];\n";
+            }
+            var dtorStack = needsDestructorStack ? "destructors" : "null";
+            var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"];
+            var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];
+            if (isClassMethodFunc) {
+              invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n";
+            }
+            for (var i = 0; i < argCount - 2; ++i) {
+              invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n";
+              args1.push("argType" + i);
+              args2.push(argTypes[i + 2]);
+            }
+            if (isClassMethodFunc) {
+              argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired;
+            }
+            invokerFnBody += (returns || isAsync ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n";
+            if (needsDestructorStack) {
+              invokerFnBody += "runDestructors(destructors);\n";
+            } else {
+              for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {
+                var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired";
+                if (argTypes[i].destructorFunction !== null) {
+                  invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n";
+                  args1.push(paramName + "_dtor");
+                  args2.push(argTypes[i].destructorFunction);
+                }
+              }
+            }
+            if (returns) {
+              invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n";
+            } else {
+            }
+            invokerFnBody += "}\n";
+            args1.push(invokerFnBody);
+            return newFunc(Function, args1).apply(null, args2);
+          }
+          function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {
+            rawClassType >>>= 0;
+            rawArgTypesAddr >>>= 0;
+            invokerSignature >>>= 0;
+            invoker >>>= 0;
+            rawConstructor >>>= 0;
+            var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+            invoker = embind__requireFunction(invokerSignature, invoker);
+            whenDependentTypesAreResolved([], [rawClassType], function(classType) {
+              classType = classType[0];
+              var humanName = `constructor ${classType.name}`;
+              if (classType.registeredClass.constructor_body === void 0) {
+                classType.registeredClass.constructor_body = [];
+              }
+              if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) {
+                throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount - 1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
+              }
+              classType.registeredClass.constructor_body[argCount - 1] = () => {
+                throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`, rawArgTypes);
+              };
+              whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
+                argTypes.splice(1, 0, null);
+                classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor);
+                return [];
+              });
+              return [];
+            });
+          }
+          function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) {
+            rawClassType >>>= 0;
+            methodName >>>= 0;
+            rawArgTypesAddr >>>= 0;
+            invokerSignature >>>= 0;
+            rawInvoker >>>= 0;
+            context >>>= 0;
+            var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+            methodName = readLatin1String(methodName);
+            rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
+            whenDependentTypesAreResolved([], [rawClassType], function(classType) {
+              classType = classType[0];
+              var humanName = `${classType.name}.${methodName}`;
+              if (methodName.startsWith("@@")) {
+                methodName = Symbol[methodName.substring(2)];
+              }
+              if (isPureVirtual) {
+                classType.registeredClass.pureVirtualFunctions.push(methodName);
+              }
+              function unboundTypesHandler() {
+                throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes);
+              }
+              var proto = classType.registeredClass.instancePrototype;
+              var method = proto[methodName];
+              if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) {
+                unboundTypesHandler.argCount = argCount - 2;
+                unboundTypesHandler.className = classType.name;
+                proto[methodName] = unboundTypesHandler;
+              } else {
+                ensureOverloadTable(proto, methodName, humanName);
+                proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;
+              }
+              whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
+                var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync);
+                if (proto[methodName].overloadTable === void 0) {
+                  memberFunction.argCount = argCount - 2;
+                  proto[methodName] = memberFunction;
+                } else {
+                  proto[methodName].overloadTable[argCount - 2] = memberFunction;
+                }
+                return [];
+              });
+              return [];
+            });
+          }
+          function handleAllocatorInit() {
+            Object.assign(HandleAllocator.prototype, { get(id) {
+              return this.allocated[id];
+            }, has(id) {
+              return this.allocated[id] !== void 0;
+            }, allocate(handle) {
+              var id = this.freelist.pop() || this.allocated.length;
+              this.allocated[id] = handle;
+              return id;
+            }, free(id) {
+              this.allocated[id] = void 0;
+              this.freelist.push(id);
+            } });
+          }
+          function HandleAllocator() {
+            this.allocated = [void 0];
+            this.freelist = [];
+          }
+          var emval_handles = new HandleAllocator();
+          function __emval_decref(handle) {
+            handle >>>= 0;
+            if (handle >= emval_handles.reserved && --emval_handles.get(handle).refcount === 0) {
+              emval_handles.free(handle);
+            }
+          }
+          function count_emval_handles() {
+            var count = 0;
+            for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) {
+              if (emval_handles.allocated[i] !== void 0) {
+                ++count;
+              }
+            }
+            return count;
+          }
+          function init_emval() {
+            emval_handles.allocated.push({ value: void 0 }, { value: null }, { value: true }, { value: false });
+            emval_handles.reserved = emval_handles.allocated.length;
+            Module["count_emval_handles"] = count_emval_handles;
+          }
+          var Emval = { toValue: (handle) => {
+            if (!handle) {
+              throwBindingError("Cannot use deleted val. handle = " + handle);
+            }
+            return emval_handles.get(handle).value;
+          }, toHandle: (value) => {
+            switch (value) {
+              case void 0:
+                return 1;
+              case null:
+                return 2;
+              case true:
+                return 3;
+              case false:
+                return 4;
+              default: {
+                return emval_handles.allocate({ refcount: 1, value });
+              }
+            }
+          } };
+          function __embind_register_emval(rawType, name) {
+            rawType >>>= 0;
+            name >>>= 0;
+            name = readLatin1String(name);
+            registerType(rawType, { name, "fromWireType": function(handle) {
+              var rv = Emval.toValue(handle);
+              __emval_decref(handle);
+              return rv;
+            }, "toWireType": function(destructors, value) {
+              return Emval.toHandle(value);
+            }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null });
+          }
+          function enumReadValueFromPointer(name, shift, signed) {
+            switch (shift) {
+              case 0:
+                return function(pointer) {
+                  var heap = signed ? GROWABLE_HEAP_I8() : GROWABLE_HEAP_U8();
+                  return this["fromWireType"](heap[pointer >>> 0]);
+                };
+              case 1:
+                return function(pointer) {
+                  var heap = signed ? GROWABLE_HEAP_I16() : GROWABLE_HEAP_U16();
+                  return this["fromWireType"](heap[pointer >>> 1]);
+                };
+              case 2:
+                return function(pointer) {
+                  var heap = signed ? GROWABLE_HEAP_I32() : GROWABLE_HEAP_U32();
+                  return this["fromWireType"](heap[pointer >>> 2]);
+                };
+              default:
+                throw new TypeError("Unknown integer type: " + name);
+            }
+          }
+          function __embind_register_enum(rawType, name, size, isSigned) {
+            rawType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+            var shift = getShiftFromSize(size);
+            name = readLatin1String(name);
+            function ctor() {
+            }
+            ctor.values = {};
+            registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) {
+              return this.constructor.values[c];
+            }, "toWireType": function(destructors, c) {
+              return c.value;
+            }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null });
+            exposePublicSymbol(name, ctor);
+          }
+          function requireRegisteredType(rawType, humanName) {
+            var impl = registeredTypes[rawType];
+            if (impl === void 0) {
+              throwBindingError(humanName + " has unknown type " + getTypeName(rawType));
+            }
+            return impl;
+          }
+          function __embind_register_enum_value(rawEnumType, name, enumValue) {
+            rawEnumType >>>= 0;
+            name >>>= 0;
+            enumValue >>>= 0;
+            var enumType = requireRegisteredType(rawEnumType, "enum");
+            name = readLatin1String(name);
+            var Enum = enumType.constructor;
+            var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(`${enumType.name}_${name}`, function() {
+            }) } });
+            Enum.values[enumValue] = Value;
+            Enum[name] = Value;
+          }
+          function embindRepr(v) {
+            if (v === null) {
+              return "null";
+            }
+            var t = typeof v;
+            if (t === "object" || t === "array" || t === "function") {
+              return v.toString();
+            } else {
+              return "" + v;
+            }
+          }
+          function floatReadValueFromPointer(name, shift) {
+            switch (shift) {
+              case 2:
+                return function(pointer) {
+                  return this["fromWireType"](GROWABLE_HEAP_F32()[pointer >>> 2]);
+                };
+              case 3:
+                return function(pointer) {
+                  return this["fromWireType"](GROWABLE_HEAP_F64()[pointer >>> 3]);
+                };
+              default:
+                throw new TypeError("Unknown float type: " + name);
+            }
+          }
+          function __embind_register_float(rawType, name, size) {
+            rawType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+            var shift = getShiftFromSize(size);
+            name = readLatin1String(name);
+            registerType(rawType, { name, "fromWireType": function(value) {
+              return value;
+            }, "toWireType": function(destructors, value) {
+              return value;
+            }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null });
+          }
+          function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) {
+            name >>>= 0;
+            rawArgTypesAddr >>>= 0;
+            signature >>>= 0;
+            rawInvoker >>>= 0;
+            fn >>>= 0;
+            var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+            name = readLatin1String(name);
+            rawInvoker = embind__requireFunction(signature, rawInvoker);
+            exposePublicSymbol(name, function() {
+              throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes);
+            }, argCount - 1);
+            whenDependentTypesAreResolved([], argTypes, function(argTypes2) {
+              var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1));
+              replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn, isAsync), argCount - 1);
+              return [];
+            });
+          }
+          function integerReadValueFromPointer(name, shift, signed) {
+            switch (shift) {
+              case 0:
+                return signed ? function readS8FromPointer(pointer) {
+                  return GROWABLE_HEAP_I8()[pointer >>> 0];
+                } : function readU8FromPointer(pointer) {
+                  return GROWABLE_HEAP_U8()[pointer >>> 0];
+                };
+              case 1:
+                return signed ? function readS16FromPointer(pointer) {
+                  return GROWABLE_HEAP_I16()[pointer >>> 1];
+                } : function readU16FromPointer(pointer) {
+                  return GROWABLE_HEAP_U16()[pointer >>> 1];
+                };
+              case 2:
+                return signed ? function readS32FromPointer(pointer) {
+                  return GROWABLE_HEAP_I32()[pointer >>> 2];
+                } : function readU32FromPointer(pointer) {
+                  return GROWABLE_HEAP_U32()[pointer >>> 2];
+                };
+              default:
+                throw new TypeError("Unknown integer type: " + name);
+            }
+          }
+          function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {
+            primitiveType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+            name = readLatin1String(name);
+            if (maxRange === -1) {
+              maxRange = 4294967295;
+            }
+            var shift = getShiftFromSize(size);
+            var fromWireType = (value) => value;
+            if (minRange === 0) {
+              var bitshift = 32 - 8 * size;
+              fromWireType = (value) => value << bitshift >>> bitshift;
+            }
+            var isUnsignedType = name.includes("unsigned");
+            var checkAssertions = (value, toTypeName) => {
+            };
+            var toWireType;
+            if (isUnsignedType) {
+              toWireType = function(destructors, value) {
+                checkAssertions(value, this.name);
+                return value >>> 0;
+              };
+            } else {
+              toWireType = function(destructors, value) {
+                checkAssertions(value, this.name);
+                return value;
+              };
+            }
+            registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null });
+          }
+          function __embind_register_memory_view(rawType, dataTypeIndex, name) {
+            rawType >>>= 0;
+            name >>>= 0;
+            var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];
+            var TA = typeMapping[dataTypeIndex];
+            function decodeMemoryView(handle) {
+              handle = handle >> 2;
+              var heap = GROWABLE_HEAP_U32();
+              var size = heap[handle >>> 0];
+              var data = heap[handle + 1 >>> 0];
+              return new TA(heap.buffer, data, size);
+            }
+            name = readLatin1String(name);
+            registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true });
+          }
+          var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite);
+          function __embind_register_std_string(rawType, name) {
+            rawType >>>= 0;
+            name >>>= 0;
+            name = readLatin1String(name);
+            var stdStringIsUTF8 = name === "std::string";
+            registerType(rawType, { name, "fromWireType": function(value) {
+              var length = GROWABLE_HEAP_U32()[value >>> 2];
+              var payload = value + 4;
+              var str;
+              if (stdStringIsUTF8) {
+                var decodeStartPtr = payload;
+                for (var i = 0; i <= length; ++i) {
+                  var currentBytePtr = payload + i;
+                  if (i == length || GROWABLE_HEAP_U8()[currentBytePtr >>> 0] == 0) {
+                    var maxRead = currentBytePtr - decodeStartPtr;
+                    var stringSegment = UTF8ToString(decodeStartPtr, maxRead);
+                    if (str === void 0) {
+                      str = stringSegment;
+                    } else {
+                      str += String.fromCharCode(0);
+                      str += stringSegment;
+                    }
+                    decodeStartPtr = currentBytePtr + 1;
+                  }
+                }
+              } else {
+                var a = new Array(length);
+                for (var i = 0; i < length; ++i) {
+                  a[i] = String.fromCharCode(GROWABLE_HEAP_U8()[payload + i >>> 0]);
+                }
+                str = a.join("");
+              }
+              _free(value);
+              return str;
+            }, "toWireType": function(destructors, value) {
+              if (value instanceof ArrayBuffer) {
+                value = new Uint8Array(value);
+              }
+              var length;
+              var valueIsOfTypeString = typeof value == "string";
+              if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {
+                throwBindingError("Cannot pass non-string to std::string");
+              }
+              if (stdStringIsUTF8 && valueIsOfTypeString) {
+                length = lengthBytesUTF8(value);
+              } else {
+                length = value.length;
+              }
+              var base = _malloc(4 + length + 1);
+              var ptr = base + 4;
+              GROWABLE_HEAP_U32()[base >>> 2] = length;
+              if (stdStringIsUTF8 && valueIsOfTypeString) {
+                stringToUTF8(value, ptr, length + 1);
+              } else {
+                if (valueIsOfTypeString) {
+                  for (var i = 0; i < length; ++i) {
+                    var charCode = value.charCodeAt(i);
+                    if (charCode > 255) {
+                      _free(ptr);
+                      throwBindingError("String has UTF-16 code units that do not fit in 8 bits");
+                    }
+                    GROWABLE_HEAP_U8()[ptr + i >>> 0] = charCode;
+                  }
+                } else {
+                  for (var i = 0; i < length; ++i) {
+                    GROWABLE_HEAP_U8()[ptr + i >>> 0] = value[i];
+                  }
+                }
+              }
+              if (destructors !== null) {
+                destructors.push(_free, base);
+              }
+              return base;
+            }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) {
+              _free(ptr);
+            } });
+          }
+          var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0;
+          var UTF16ToString = (ptr, maxBytesToRead) => {
+            var endPtr = ptr;
+            var idx = endPtr >> 1;
+            var maxIdx = idx + maxBytesToRead / 2;
+            while (!(idx >= maxIdx) && GROWABLE_HEAP_U16()[idx >>> 0])
+              ++idx;
+            endPtr = idx << 1;
+            if (endPtr - ptr > 32 && UTF16Decoder)
+              return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr, endPtr));
+            var str = "";
+            for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {
+              var codeUnit = GROWABLE_HEAP_I16()[ptr + i * 2 >>> 1];
+              if (codeUnit == 0)
+                break;
+              str += String.fromCharCode(codeUnit);
+            }
+            return str;
+          };
+          var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
+            if (maxBytesToWrite === void 0) {
+              maxBytesToWrite = 2147483647;
+            }
+            if (maxBytesToWrite < 2)
+              return 0;
+            maxBytesToWrite -= 2;
+            var startPtr = outPtr;
+            var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
+            for (var i = 0; i < numCharsToWrite; ++i) {
+              var codeUnit = str.charCodeAt(i);
+              GROWABLE_HEAP_I16()[outPtr >>> 1] = codeUnit;
+              outPtr += 2;
+            }
+            GROWABLE_HEAP_I16()[outPtr >>> 1] = 0;
+            return outPtr - startPtr;
+          };
+          var lengthBytesUTF16 = (str) => str.length * 2;
+          var UTF32ToString = (ptr, maxBytesToRead) => {
+            var i = 0;
+            var str = "";
+            while (!(i >= maxBytesToRead / 4)) {
+              var utf32 = GROWABLE_HEAP_I32()[ptr + i * 4 >>> 2];
+              if (utf32 == 0)
+                break;
+              ++i;
+              if (utf32 >= 65536) {
+                var ch = utf32 - 65536;
+                str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
+              } else {
+                str += String.fromCharCode(utf32);
+              }
+            }
+            return str;
+          };
+          var stringToUTF32 = (str, outPtr, maxBytesToWrite) => {
+            outPtr >>>= 0;
+            if (maxBytesToWrite === void 0) {
+              maxBytesToWrite = 2147483647;
+            }
+            if (maxBytesToWrite < 4)
+              return 0;
+            var startPtr = outPtr;
+            var endPtr = startPtr + maxBytesToWrite - 4;
+            for (var i = 0; i < str.length; ++i) {
+              var codeUnit = str.charCodeAt(i);
+              if (codeUnit >= 55296 && codeUnit <= 57343) {
+                var trailSurrogate = str.charCodeAt(++i);
+                codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
+              }
+              GROWABLE_HEAP_I32()[outPtr >>> 2] = codeUnit;
+              outPtr += 4;
+              if (outPtr + 4 > endPtr)
+                break;
+            }
+            GROWABLE_HEAP_I32()[outPtr >>> 2] = 0;
+            return outPtr - startPtr;
+          };
+          var lengthBytesUTF32 = (str) => {
+            var len = 0;
+            for (var i = 0; i < str.length; ++i) {
+              var codeUnit = str.charCodeAt(i);
+              if (codeUnit >= 55296 && codeUnit <= 57343)
+                ++i;
+              len += 4;
+            }
+            return len;
+          };
+          var __embind_register_std_wstring = function(rawType, charSize, name) {
+            rawType >>>= 0;
+            charSize >>>= 0;
+            name >>>= 0;
+            name = readLatin1String(name);
+            var decodeString, encodeString, getHeap, lengthBytesUTF, shift;
+            if (charSize === 2) {
+              decodeString = UTF16ToString;
+              encodeString = stringToUTF16;
+              lengthBytesUTF = lengthBytesUTF16;
+              getHeap = () => GROWABLE_HEAP_U16();
+              shift = 1;
+            } else if (charSize === 4) {
+              decodeString = UTF32ToString;
+              encodeString = stringToUTF32;
+              lengthBytesUTF = lengthBytesUTF32;
+              getHeap = () => GROWABLE_HEAP_U32();
+              shift = 2;
+            }
+            registerType(rawType, { name, "fromWireType": function(value) {
+              var length = GROWABLE_HEAP_U32()[value >>> 2];
+              var HEAP = getHeap();
+              var str;
+              var decodeStartPtr = value + 4;
+              for (var i = 0; i <= length; ++i) {
+                var currentBytePtr = value + 4 + i * charSize;
+                if (i == length || HEAP[currentBytePtr >>> shift] == 0) {
+                  var maxReadBytes = currentBytePtr - decodeStartPtr;
+                  var stringSegment = decodeString(decodeStartPtr, maxReadBytes);
+                  if (str === void 0) {
+                    str = stringSegment;
+                  } else {
+                    str += String.fromCharCode(0);
+                    str += stringSegment;
+                  }
+                  decodeStartPtr = currentBytePtr + charSize;
+                }
+              }
+              _free(value);
+              return str;
+            }, "toWireType": function(destructors, value) {
+              if (!(typeof value == "string")) {
+                throwBindingError(`Cannot pass non-string to C++ string type ${name}`);
+              }
+              var length = lengthBytesUTF(value);
+              var ptr = _malloc(4 + length + charSize);
+              GROWABLE_HEAP_U32()[ptr >>> 2] = length >> shift;
+              encodeString(value, ptr + 4, length + charSize);
+              if (destructors !== null) {
+                destructors.push(_free, ptr);
+              }
+              return ptr;
+            }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) {
+              _free(ptr);
+            } });
+          };
+          function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
+            rawType >>>= 0;
+            name >>>= 0;
+            constructorSignature >>>= 0;
+            rawConstructor >>>= 0;
+            destructorSignature >>>= 0;
+            rawDestructor >>>= 0;
+            tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] };
+          }
+          function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {
+            rawTupleType >>>= 0;
+            getterReturnType >>>= 0;
+            getterSignature >>>= 0;
+            getter >>>= 0;
+            getterContext >>>= 0;
+            setterArgumentType >>>= 0;
+            setterSignature >>>= 0;
+            setter >>>= 0;
+            setterContext >>>= 0;
+            tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
+          }
+          function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
+            rawType >>>= 0;
+            name >>>= 0;
+            constructorSignature >>>= 0;
+            rawConstructor >>>= 0;
+            destructorSignature >>>= 0;
+            rawDestructor >>>= 0;
+            structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };
+          }
+          function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {
+            structType >>>= 0;
+            fieldName >>>= 0;
+            getterReturnType >>>= 0;
+            getterSignature >>>= 0;
+            getter >>>= 0;
+            getterContext >>>= 0;
+            setterArgumentType >>>= 0;
+            setterSignature >>>= 0;
+            setter >>>= 0;
+            setterContext >>>= 0;
+            structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
+          }
+          function __embind_register_void(rawType, name) {
+            rawType >>>= 0;
+            name >>>= 0;
+            name = readLatin1String(name);
+            registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() {
+              return void 0;
+            }, "toWireType": function(destructors, o) {
+              return void 0;
+            } });
+          }
+          var maybeExit = () => {
+            if (!keepRuntimeAlive()) {
+              try {
+                if (ENVIRONMENT_IS_PTHREAD)
+                  __emscripten_thread_exit(EXITSTATUS);
+                else
+                  _exit(EXITSTATUS);
+              } catch (e) {
+                handleException(e);
+              }
+            }
+          };
+          var callUserCallback = (func) => {
+            if (ABORT) {
+              return;
+            }
+            try {
+              func();
+              maybeExit();
+            } catch (e) {
+              handleException(e);
+            }
+          };
+          function __emscripten_thread_mailbox_await(pthread_ptr) {
+            pthread_ptr >>>= 0;
+            if (typeof Atomics.waitAsync === "function") {
+              var wait = Atomics.waitAsync(GROWABLE_HEAP_I32(), pthread_ptr >> 2, pthread_ptr);
+              wait.value.then(checkMailbox);
+              var waitingAsync = pthread_ptr + 128;
+              Atomics.store(GROWABLE_HEAP_I32(), waitingAsync >> 2, 1);
+            }
+          }
+          Module["__emscripten_thread_mailbox_await"] = __emscripten_thread_mailbox_await;
+          var checkMailbox = function() {
+            var pthread_ptr = _pthread_self();
+            if (pthread_ptr) {
+              __emscripten_thread_mailbox_await(pthread_ptr);
+              callUserCallback(() => __emscripten_check_mailbox());
+            }
+          };
+          Module["checkMailbox"] = checkMailbox;
+          var __emscripten_notify_mailbox_postmessage = function(targetThreadId, currThreadId, mainThreadId) {
+            targetThreadId >>>= 0;
+            currThreadId >>>= 0;
+            mainThreadId >>>= 0;
+            if (targetThreadId == currThreadId) {
+              setTimeout(() => checkMailbox());
+            } else if (ENVIRONMENT_IS_PTHREAD) {
+              postMessage({ "targetThread": targetThreadId, "cmd": "checkMailbox" });
+            } else {
+              var worker = PThread.pthreads[targetThreadId];
+              if (!worker) {
+                return;
+              }
+              worker.postMessage({ "cmd": "checkMailbox" });
+            }
+          };
+          function __emscripten_set_offscreencanvas_size(target, width, height) {
+            target >>>= 0;
+            return -1;
+          }
+          function __emscripten_thread_set_strongref(thread) {
+            thread >>>= 0;
+          }
+          function __emval_as(handle, returnType, destructorsRef) {
+            handle >>>= 0;
+            returnType >>>= 0;
+            destructorsRef >>>= 0;
+            handle = Emval.toValue(handle);
+            returnType = requireRegisteredType(returnType, "emval::as");
+            var destructors = [];
+            var rd = Emval.toHandle(destructors);
+            GROWABLE_HEAP_U32()[destructorsRef >>> 2] = rd;
+            return returnType["toWireType"](destructors, handle);
+          }
+          function emval_lookupTypes(argCount, argTypes) {
+            var a = new Array(argCount);
+            for (var i = 0; i < argCount; ++i) {
+              a[i] = requireRegisteredType(GROWABLE_HEAP_U32()[argTypes + i * 4 >>> 2], "parameter " + i);
+            }
+            return a;
+          }
+          function __emval_call(handle, argCount, argTypes, argv) {
+            handle >>>= 0;
+            argTypes >>>= 0;
+            argv >>>= 0;
+            handle = Emval.toValue(handle);
+            var types = emval_lookupTypes(argCount, argTypes);
+            var args = new Array(argCount);
+            for (var i = 0; i < argCount; ++i) {
+              var type = types[i];
+              args[i] = type["readValueFromPointer"](argv);
+              argv += type["argPackAdvance"];
+            }
+            var rv = handle.apply(void 0, args);
+            return Emval.toHandle(rv);
+          }
+          var emval_symbols = {};
+          function getStringOrSymbol(address) {
+            var symbol = emval_symbols[address];
+            if (symbol === void 0) {
+              return readLatin1String(address);
+            }
+            return symbol;
+          }
+          function emval_get_global() {
+            if (typeof globalThis == "object") {
+              return globalThis;
+            }
+            return (/* @__PURE__ */ function() {
+              return Function;
+            }())("return this")();
+          }
+          function __emval_get_global(name) {
+            name >>>= 0;
+            if (name === 0) {
+              return Emval.toHandle(emval_get_global());
+            } else {
+              name = getStringOrSymbol(name);
+              return Emval.toHandle(emval_get_global()[name]);
+            }
+          }
+          function __emval_get_property(handle, key) {
+            handle >>>= 0;
+            key >>>= 0;
+            handle = Emval.toValue(handle);
+            key = Emval.toValue(key);
+            return Emval.toHandle(handle[key]);
+          }
+          function __emval_incref(handle) {
+            handle >>>= 0;
+            if (handle > 4) {
+              emval_handles.get(handle).refcount += 1;
+            }
+          }
+          function __emval_instanceof(object, constructor) {
+            object >>>= 0;
+            constructor >>>= 0;
+            object = Emval.toValue(object);
+            constructor = Emval.toValue(constructor);
+            return object instanceof constructor;
+          }
+          function __emval_is_number(handle) {
+            handle >>>= 0;
+            handle = Emval.toValue(handle);
+            return typeof handle == "number";
+          }
+          function __emval_is_string(handle) {
+            handle >>>= 0;
+            handle = Emval.toValue(handle);
+            return typeof handle == "string";
+          }
+          function __emval_new_array() {
+            return Emval.toHandle([]);
+          }
+          function __emval_new_cstring(v) {
+            v >>>= 0;
+            return Emval.toHandle(getStringOrSymbol(v));
+          }
+          function __emval_new_object() {
+            return Emval.toHandle({});
+          }
+          function __emval_run_destructors(handle) {
+            handle >>>= 0;
+            var destructors = Emval.toValue(handle);
+            runDestructors(destructors);
+            __emval_decref(handle);
+          }
+          function __emval_set_property(handle, key, value) {
+            handle >>>= 0;
+            key >>>= 0;
+            value >>>= 0;
+            handle = Emval.toValue(handle);
+            key = Emval.toValue(key);
+            value = Emval.toValue(value);
+            handle[key] = value;
+          }
+          function __emval_take_value(type, arg) {
+            type >>>= 0;
+            arg >>>= 0;
+            type = requireRegisteredType(type, "_emval_take_value");
+            var v = type["readValueFromPointer"](arg);
+            return Emval.toHandle(v);
+          }
+          var _abort = () => {
+            abort("");
+          };
+          var warnOnce = (text) => {
+            if (!warnOnce.shown)
+              warnOnce.shown = {};
+            if (!warnOnce.shown[text]) {
+              warnOnce.shown[text] = 1;
+              err(text);
+            }
+          };
+          function _emscripten_check_blocking_allowed() {
+          }
+          var runtimeKeepalivePush = () => {
+            runtimeKeepaliveCounter += 1;
+          };
+          var _emscripten_exit_with_live_runtime = () => {
+            runtimeKeepalivePush();
+            throw "unwind";
+          };
+          var _emscripten_get_now;
+          _emscripten_get_now = () => performance.timeOrigin + performance.now();
+          var withStackSave = (f) => {
+            var stack = stackSave();
+            var ret = f();
+            stackRestore(stack);
+            return ret;
+          };
+          var proxyToMainThread = function(index, sync) {
+            var numCallArgs = arguments.length - 2;
+            var outerArgs = arguments;
+            return withStackSave(() => {
+              var serializedNumCallArgs = numCallArgs;
+              var args = stackAlloc(serializedNumCallArgs * 8);
+              var b = args >> 3;
+              for (var i = 0; i < numCallArgs; i++) {
+                var arg = outerArgs[2 + i];
+                GROWABLE_HEAP_F64()[b + i >>> 0] = arg;
+              }
+              return __emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync);
+            });
+          };
+          var emscripten_receive_on_main_thread_js_callArgs = [];
+          function _emscripten_receive_on_main_thread_js(index, callingThread, numCallArgs, args) {
+            callingThread >>>= 0;
+            args >>>= 0;
+            PThread.currentProxiedOperationCallerThread = callingThread;
+            emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs;
+            var b = args >> 3;
+            for (var i = 0; i < numCallArgs; i++) {
+              emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i >>> 0];
+            }
+            var func = proxiedFunctionTable[index];
+            return func.apply(null, emscripten_receive_on_main_thread_js_callArgs);
+          }
+          var getHeapMax = () => 4294901760;
+          var growMemory = (size) => {
+            var b = wasmMemory.buffer;
+            var pages = size - b.byteLength + 65535 >>> 16;
+            try {
+              wasmMemory.grow(pages);
+              updateMemoryViews();
+              return 1;
+            } catch (e) {
+            }
+          };
+          function _emscripten_resize_heap(requestedSize) {
+            requestedSize >>>= 0;
+            var oldSize = GROWABLE_HEAP_U8().length;
+            if (requestedSize <= oldSize) {
+              return false;
+            }
+            var maxHeapSize = getHeapMax();
+            if (requestedSize > maxHeapSize) {
+              return false;
+            }
+            var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;
+            for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
+              var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
+              overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
+              var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
+              var replacement = growMemory(newSize);
+              if (replacement) {
+                return true;
+              }
+            }
+            return false;
+          }
+          var ENV = {};
+          var getExecutableName = () => thisProgram || "./this.program";
+          var getEnvStrings = () => {
+            if (!getEnvStrings.strings) {
+              var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8";
+              var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() };
+              for (var x in ENV) {
+                if (ENV[x] === void 0)
+                  delete env[x];
+                else
+                  env[x] = ENV[x];
+              }
+              var strings = [];
+              for (var x in env) {
+                strings.push(`${x}=${env[x]}`);
+              }
+              getEnvStrings.strings = strings;
+            }
+            return getEnvStrings.strings;
+          };
+          var stringToAscii = (str, buffer) => {
+            for (var i = 0; i < str.length; ++i) {
+              GROWABLE_HEAP_I8()[buffer++ >>> 0] = str.charCodeAt(i);
+            }
+            GROWABLE_HEAP_I8()[buffer >>> 0] = 0;
+          };
+          function _environ_get(__environ, environ_buf) {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return proxyToMainThread(3, 1, __environ, environ_buf);
+            __environ >>>= 0;
+            environ_buf >>>= 0;
+            var bufSize = 0;
+            getEnvStrings().forEach(function(string, i) {
+              var ptr = environ_buf + bufSize;
+              GROWABLE_HEAP_U32()[__environ + i * 4 >>> 2] = ptr;
+              stringToAscii(string, ptr);
+              bufSize += string.length + 1;
+            });
+            return 0;
+          }
+          function _environ_sizes_get(penviron_count, penviron_buf_size) {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return proxyToMainThread(4, 1, penviron_count, penviron_buf_size);
+            penviron_count >>>= 0;
+            penviron_buf_size >>>= 0;
+            var strings = getEnvStrings();
+            GROWABLE_HEAP_U32()[penviron_count >>> 2] = strings.length;
+            var bufSize = 0;
+            strings.forEach(function(string) {
+              bufSize += string.length + 1;
+            });
+            GROWABLE_HEAP_U32()[penviron_buf_size >>> 2] = bufSize;
+            return 0;
+          }
+          function _fd_close(fd) {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return proxyToMainThread(5, 1, fd);
+            try {
+              var stream = SYSCALLS.getStreamFromFD(fd);
+              FS.close(stream);
+              return 0;
+            } catch (e) {
+              if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
+                throw e;
+              return e.errno;
+            }
+          }
+          var doReadv = (stream, iov, iovcnt, offset) => {
+            var ret = 0;
+            for (var i = 0; i < iovcnt; i++) {
+              var ptr = GROWABLE_HEAP_U32()[iov >>> 2];
+              var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2];
+              iov += 8;
+              var curr = FS.read(stream, GROWABLE_HEAP_I8(), ptr, len, offset);
+              if (curr < 0)
+                return -1;
+              ret += curr;
+              if (curr < len)
+                break;
+              if (typeof offset !== "undefined") {
+                offset += curr;
+              }
+            }
+            return ret;
+          };
+          function _fd_read(fd, iov, iovcnt, pnum) {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return proxyToMainThread(6, 1, fd, iov, iovcnt, pnum);
+            iov >>>= 0;
+            iovcnt >>>= 0;
+            pnum >>>= 0;
+            try {
+              var stream = SYSCALLS.getStreamFromFD(fd);
+              var num = doReadv(stream, iov, iovcnt);
+              GROWABLE_HEAP_U32()[pnum >>> 2] = num;
+              return 0;
+            } catch (e) {
+              if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
+                throw e;
+              return e.errno;
+            }
+          }
+          function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return proxyToMainThread(7, 1, fd, offset_low, offset_high, whence, newOffset);
+            var offset = convertI32PairToI53Checked(offset_low, offset_high);
+            newOffset >>>= 0;
+            try {
+              if (isNaN(offset))
+                return 61;
+              var stream = SYSCALLS.getStreamFromFD(fd);
+              FS.llseek(stream, offset, whence);
+              tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], GROWABLE_HEAP_I32()[newOffset >>> 2] = tempI64[0], GROWABLE_HEAP_I32()[newOffset + 4 >>> 2] = tempI64[1];
+              if (stream.getdents && offset === 0 && whence === 0)
+                stream.getdents = null;
+              return 0;
+            } catch (e) {
+              if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
+                throw e;
+              return e.errno;
+            }
+          }
+          var doWritev = (stream, iov, iovcnt, offset) => {
+            var ret = 0;
+            for (var i = 0; i < iovcnt; i++) {
+              var ptr = GROWABLE_HEAP_U32()[iov >>> 2];
+              var len = GROWABLE_HEAP_U32()[iov + 4 >>> 2];
+              iov += 8;
+              var curr = FS.write(stream, GROWABLE_HEAP_I8(), ptr, len, offset);
+              if (curr < 0)
+                return -1;
+              ret += curr;
+              if (typeof offset !== "undefined") {
+                offset += curr;
+              }
+            }
+            return ret;
+          };
+          function _fd_write(fd, iov, iovcnt, pnum) {
+            if (ENVIRONMENT_IS_PTHREAD)
+              return proxyToMainThread(8, 1, fd, iov, iovcnt, pnum);
+            iov >>>= 0;
+            iovcnt >>>= 0;
+            pnum >>>= 0;
+            try {
+              var stream = SYSCALLS.getStreamFromFD(fd);
+              var num = doWritev(stream, iov, iovcnt);
+              GROWABLE_HEAP_U32()[pnum >>> 2] = num;
+              return 0;
+            } catch (e) {
+              if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
+                throw e;
+              return e.errno;
+            }
+          }
+          var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
+          var arraySum = (array, index) => {
+            var sum = 0;
+            for (var i = 0; i <= index; sum += array[i++]) {
+            }
+            return sum;
+          };
+          var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+          var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+          var addDays = (date, days) => {
+            var newDate = new Date(date.getTime());
+            while (days > 0) {
+              var leap = isLeapYear(newDate.getFullYear());
+              var currentMonth = newDate.getMonth();
+              var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth];
+              if (days > daysInCurrentMonth - newDate.getDate()) {
+                days -= daysInCurrentMonth - newDate.getDate() + 1;
+                newDate.setDate(1);
+                if (currentMonth < 11) {
+                  newDate.setMonth(currentMonth + 1);
+                } else {
+                  newDate.setMonth(0);
+                  newDate.setFullYear(newDate.getFullYear() + 1);
+                }
+              } else {
+                newDate.setDate(newDate.getDate() + days);
+                return newDate;
+              }
+            }
+            return newDate;
+          };
+          var writeArrayToMemory = (array, buffer) => {
+            GROWABLE_HEAP_I8().set(array, buffer >>> 0);
+          };
+          function _strftime(s, maxsize, format, tm) {
+            s >>>= 0;
+            maxsize >>>= 0;
+            format >>>= 0;
+            tm >>>= 0;
+            var tm_zone = GROWABLE_HEAP_I32()[tm + 40 >>> 2];
+            var date = { tm_sec: GROWABLE_HEAP_I32()[tm >>> 2], tm_min: GROWABLE_HEAP_I32()[tm + 4 >>> 2], tm_hour: GROWABLE_HEAP_I32()[tm + 8 >>> 2], tm_mday: GROWABLE_HEAP_I32()[tm + 12 >>> 2], tm_mon: GROWABLE_HEAP_I32()[tm + 16 >>> 2], tm_year: GROWABLE_HEAP_I32()[tm + 20 >>> 2], tm_wday: GROWABLE_HEAP_I32()[tm + 24 >>> 2], tm_yday: GROWABLE_HEAP_I32()[tm + 28 >>> 2], tm_isdst: GROWABLE_HEAP_I32()[tm + 32 >>> 2], tm_gmtoff: GROWABLE_HEAP_I32()[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" };
+            var pattern = UTF8ToString(format);
+            var EXPANSION_RULES_1 = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S", "%Ec": "%c", "%EC": "%C", "%Ex": "%m/%d/%y", "%EX": "%H:%M:%S", "%Ey": "%y", "%EY": "%Y", "%Od": "%d", "%Oe": "%e", "%OH": "%H", "%OI": "%I", "%Om": "%m", "%OM": "%M", "%OS": "%S", "%Ou": "%u", "%OU": "%U", "%OV": "%V", "%Ow": "%w", "%OW": "%W", "%Oy": "%y" };
+            for (var rule in EXPANSION_RULES_1) {
+              pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]);
+            }
+            var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
+            var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
+            function leadingSomething(value, digits, character) {
+              var str = typeof value == "number" ? value.toString() : value || "";
+              while (str.length < digits) {
+                str = character[0] + str;
+              }
+              return str;
+            }
+            function leadingNulls(value, digits) {
+              return leadingSomething(value, digits, "0");
+            }
+            function compareByDay(date1, date2) {
+              function sgn(value) {
+                return value < 0 ? -1 : value > 0 ? 1 : 0;
+              }
+              var compare;
+              if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {
+                if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {
+                  compare = sgn(date1.getDate() - date2.getDate());
+                }
+              }
+              return compare;
+            }
+            function getFirstWeekStartDate(janFourth) {
+              switch (janFourth.getDay()) {
+                case 0:
+                  return new Date(janFourth.getFullYear() - 1, 11, 29);
+                case 1:
+                  return janFourth;
+                case 2:
+                  return new Date(janFourth.getFullYear(), 0, 3);
+                case 3:
+                  return new Date(janFourth.getFullYear(), 0, 2);
+                case 4:
+                  return new Date(janFourth.getFullYear(), 0, 1);
+                case 5:
+                  return new Date(janFourth.getFullYear() - 1, 11, 31);
+                case 6:
+                  return new Date(janFourth.getFullYear() - 1, 11, 30);
+              }
+            }
+            function getWeekBasedYear(date2) {
+              var thisDate = addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday);
+              var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
+              var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);
+              var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
+              var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
+              if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
+                if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
+                  return thisDate.getFullYear() + 1;
+                }
+                return thisDate.getFullYear();
+              }
+              return thisDate.getFullYear() - 1;
+            }
+            var EXPANSION_RULES_2 = { "%a": (date2) => WEEKDAYS[date2.tm_wday].substring(0, 3), "%A": (date2) => WEEKDAYS[date2.tm_wday], "%b": (date2) => MONTHS[date2.tm_mon].substring(0, 3), "%B": (date2) => MONTHS[date2.tm_mon], "%C": (date2) => {
+              var year = date2.tm_year + 1900;
+              return leadingNulls(year / 100 | 0, 2);
+            }, "%d": (date2) => leadingNulls(date2.tm_mday, 2), "%e": (date2) => leadingSomething(date2.tm_mday, 2, " "), "%g": (date2) => getWeekBasedYear(date2).toString().substring(2), "%G": (date2) => getWeekBasedYear(date2), "%H": (date2) => leadingNulls(date2.tm_hour, 2), "%I": (date2) => {
+              var twelveHour = date2.tm_hour;
+              if (twelveHour == 0)
+                twelveHour = 12;
+              else if (twelveHour > 12)
+                twelveHour -= 12;
+              return leadingNulls(twelveHour, 2);
+            }, "%j": (date2) => leadingNulls(date2.tm_mday + arraySum(isLeapYear(date2.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3), "%m": (date2) => leadingNulls(date2.tm_mon + 1, 2), "%M": (date2) => leadingNulls(date2.tm_min, 2), "%n": () => "\n", "%p": (date2) => {
+              if (date2.tm_hour >= 0 && date2.tm_hour < 12) {
+                return "AM";
+              }
+              return "PM";
+            }, "%S": (date2) => leadingNulls(date2.tm_sec, 2), "%t": () => "	", "%u": (date2) => date2.tm_wday || 7, "%U": (date2) => {
+              var days = date2.tm_yday + 7 - date2.tm_wday;
+              return leadingNulls(Math.floor(days / 7), 2);
+            }, "%V": (date2) => {
+              var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7);
+              if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) {
+                val++;
+              }
+              if (!val) {
+                val = 52;
+                var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7;
+                if (dec31 == 4 || dec31 == 5 && isLeapYear(date2.tm_year % 400 - 1)) {
+                  val++;
+                }
+              } else if (val == 53) {
+                var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7;
+                if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date2.tm_year)))
+                  val = 1;
+              }
+              return leadingNulls(val, 2);
+            }, "%w": (date2) => date2.tm_wday, "%W": (date2) => {
+              var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7;
+              return leadingNulls(Math.floor(days / 7), 2);
+            }, "%y": (date2) => (date2.tm_year + 1900).toString().substring(2), "%Y": (date2) => date2.tm_year + 1900, "%z": (date2) => {
+              var off = date2.tm_gmtoff;
+              var ahead = off >= 0;
+              off = Math.abs(off) / 60;
+              off = off / 60 * 100 + off % 60;
+              return (ahead ? "+" : "-") + String("0000" + off).slice(-4);
+            }, "%Z": (date2) => date2.tm_zone, "%%": () => "%" };
+            pattern = pattern.replace(/%%/g, "\0\0");
+            for (var rule in EXPANSION_RULES_2) {
+              if (pattern.includes(rule)) {
+                pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date));
+              }
+            }
+            pattern = pattern.replace(/\0\0/g, "%");
+            var bytes = intArrayFromString(pattern, false);
+            if (bytes.length > maxsize) {
+              return 0;
+            }
+            writeArrayToMemory(bytes, s);
+            return bytes.length - 1;
+          }
+          function _strftime_l(s, maxsize, format, tm, loc) {
+            s >>>= 0;
+            maxsize >>>= 0;
+            format >>>= 0;
+            tm >>>= 0;
+            loc >>>= 0;
+            return _strftime(s, maxsize, format, tm);
+          }
+          PThread.init();
+          var FSNode = function(parent, name, mode, rdev) {
+            if (!parent) {
+              parent = this;
+            }
+            this.parent = parent;
+            this.mount = parent.mount;
+            this.mounted = null;
+            this.id = FS.nextInode++;
+            this.name = name;
+            this.mode = mode;
+            this.node_ops = {};
+            this.stream_ops = {};
+            this.rdev = rdev;
+          };
+          var readMode = 292 | 73;
+          var writeMode = 146;
+          Object.defineProperties(FSNode.prototype, { read: { get: function() {
+            return (this.mode & readMode) === readMode;
+          }, set: function(val) {
+            val ? this.mode |= readMode : this.mode &= ~readMode;
+          } }, write: { get: function() {
+            return (this.mode & writeMode) === writeMode;
+          }, set: function(val) {
+            val ? this.mode |= writeMode : this.mode &= ~writeMode;
+          } }, isFolder: { get: function() {
+            return FS.isDir(this.mode);
+          } }, isDevice: { get: function() {
+            return FS.isChrdev(this.mode);
+          } } });
+          FS.FSNode = FSNode;
+          FS.createPreloadedFile = FS_createPreloadedFile;
+          FS.staticInit();
+          InternalError = Module["InternalError"] = class InternalError extends Error {
+            constructor(message) {
+              super(message);
+              this.name = "InternalError";
+            }
+          };
+          embind_init_charCodes();
+          BindingError = Module["BindingError"] = class BindingError extends Error {
+            constructor(message) {
+              super(message);
+              this.name = "BindingError";
+            }
+          };
+          init_ClassHandle();
+          init_embind();
+          init_RegisteredPointer();
+          UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
+          handleAllocatorInit();
+          init_emval();
+          var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, _environ_get, _environ_sizes_get, _fd_close, _fd_read, _fd_seek, _fd_write];
+          var wasmImports = { h: ___cxa_throw, W: ___emscripten_init_main_thread_js, K: ___emscripten_thread_cleanup, ba: __embind_finalize_value_array, r: __embind_finalize_value_object, I: __embind_register_bigint, $: __embind_register_bool, q: __embind_register_class, p: __embind_register_class_constructor, c: __embind_register_class_function, _: __embind_register_emval, E: __embind_register_enum, u: __embind_register_enum_value, C: __embind_register_float, d: __embind_register_function, t: __embind_register_integer, l: __embind_register_memory_view, D: __embind_register_std_string, z: __embind_register_std_wstring, ca: __embind_register_value_array, m: __embind_register_value_array_element, s: __embind_register_value_object, f: __embind_register_value_object_field, aa: __embind_register_void, R: __emscripten_notify_mailbox_postmessage, U: __emscripten_set_offscreencanvas_size, V: __emscripten_thread_mailbox_await, Z: __emscripten_thread_set_strongref, k: __emval_as, y: __emval_call, b: __emval_decref, B: __emval_get_global, i: __emval_get_property, o: __emval_incref, G: __emval_instanceof, A: __emval_is_number, F: __emval_is_string, da: __emval_new_array, g: __emval_new_cstring, w: __emval_new_object, j: __emval_run_destructors, n: __emval_set_property, e: __emval_take_value, x: _abort, X: _emscripten_check_blocking_allowed, Y: _emscripten_exit_with_live_runtime, v: _emscripten_get_now, T: _emscripten_receive_on_main_thread_js, Q: _emscripten_resize_heap, M: _environ_get, N: _environ_sizes_get, J: _exit, O: _fd_close, P: _fd_read, H: _fd_seek, S: _fd_write, a: wasmMemory || Module["wasmMemory"], L: _strftime_l };
+          var asm = createWasm();
+          var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["ea"])();
+          var _malloc = (a0) => (_malloc = wasmExports["ga"])(a0);
+          var __emscripten_tls_init = Module["__emscripten_tls_init"] = () => (__emscripten_tls_init = Module["__emscripten_tls_init"] = wasmExports["ha"])();
+          var _pthread_self = Module["_pthread_self"] = () => (_pthread_self = Module["_pthread_self"] = wasmExports["ia"])();
+          var ___getTypeName = (a0) => (___getTypeName = wasmExports["ja"])(a0);
+          var __embind_initialize_bindings = Module["__embind_initialize_bindings"] = () => (__embind_initialize_bindings = Module["__embind_initialize_bindings"] = wasmExports["ka"])();
+          var ___errno_location = () => (___errno_location = wasmExports["__errno_location"])();
+          var __emscripten_thread_init = Module["__emscripten_thread_init"] = (a0, a1, a2, a3, a4, a5) => (__emscripten_thread_init = Module["__emscripten_thread_init"] = wasmExports["la"])(a0, a1, a2, a3, a4, a5);
+          var __emscripten_thread_crashed = Module["__emscripten_thread_crashed"] = () => (__emscripten_thread_crashed = Module["__emscripten_thread_crashed"] = wasmExports["ma"])();
+          var _emscripten_main_runtime_thread_id = () => (_emscripten_main_runtime_thread_id = wasmExports["emscripten_main_runtime_thread_id"])();
+          var _emscripten_main_thread_process_queued_calls = () => (_emscripten_main_thread_process_queued_calls = wasmExports["emscripten_main_thread_process_queued_calls"])();
+          var __emscripten_run_in_main_runtime_thread_js = (a0, a1, a2, a3) => (__emscripten_run_in_main_runtime_thread_js = wasmExports["na"])(a0, a1, a2, a3);
+          var _emscripten_dispatch_to_thread_ = (a0, a1, a2, a3, a4) => (_emscripten_dispatch_to_thread_ = wasmExports["emscripten_dispatch_to_thread_"])(a0, a1, a2, a3, a4);
+          var __emscripten_thread_free_data = (a0) => (__emscripten_thread_free_data = wasmExports["oa"])(a0);
+          var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = (a0) => (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = wasmExports["pa"])(a0);
+          var _free = (a0) => (_free = wasmExports["qa"])(a0);
+          var __emscripten_check_mailbox = Module["__emscripten_check_mailbox"] = () => (__emscripten_check_mailbox = Module["__emscripten_check_mailbox"] = wasmExports["ra"])();
+          var _emscripten_stack_set_limits = (a0, a1) => (_emscripten_stack_set_limits = wasmExports["sa"])(a0, a1);
+          var stackSave = () => (stackSave = wasmExports["ta"])();
+          var stackRestore = (a0) => (stackRestore = wasmExports["ua"])(a0);
+          var stackAlloc = (a0) => (stackAlloc = wasmExports["va"])(a0);
+          var ___cxa_increment_exception_refcount = (a0) => (___cxa_increment_exception_refcount = wasmExports["__cxa_increment_exception_refcount"])(a0);
+          var ___cxa_is_pointer_type = (a0) => (___cxa_is_pointer_type = wasmExports["wa"])(a0);
+          var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["xa"])(a0, a1, a2, a3, a4);
+          var dynCall_viijii = Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module["dynCall_viijii"] = wasmExports["ya"])(a0, a1, a2, a3, a4, a5, a6);
+          var dynCall_iiiiij = Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module["dynCall_iiiiij"] = wasmExports["za"])(a0, a1, a2, a3, a4, a5, a6);
+          var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = wasmExports["Aa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
+          var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = wasmExports["Ba"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+          function applySignatureConversions(exports2) {
+            exports2 = Object.assign({}, exports2);
+            var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0;
+            var makeWrapper_p = (f) => () => f() >>> 0;
+            exports2["malloc"] = makeWrapper_pp(exports2["malloc"]);
+            exports2["pthread_self"] = makeWrapper_p(exports2["pthread_self"]);
+            exports2["__getTypeName"] = makeWrapper_pp(exports2["__getTypeName"]);
+            exports2["__errno_location"] = makeWrapper_p(exports2["__errno_location"]);
+            exports2["stackSave"] = makeWrapper_p(exports2["stackSave"]);
+            exports2["stackAlloc"] = makeWrapper_pp(exports2["stackAlloc"]);
+            return exports2;
+          }
+          Module["keepRuntimeAlive"] = keepRuntimeAlive;
+          Module["wasmMemory"] = wasmMemory;
+          Module["ExitStatus"] = ExitStatus;
+          Module["PThread"] = PThread;
+          var calledRun;
+          dependenciesFulfilled = function runCaller() {
+            if (!calledRun)
+              run();
+            if (!calledRun)
+              dependenciesFulfilled = runCaller;
+          };
+          function run() {
+            if (runDependencies > 0) {
+              return;
+            }
+            if (ENVIRONMENT_IS_PTHREAD) {
+              readyPromiseResolve(Module);
+              initRuntime();
+              startWorker(Module);
+              return;
+            }
+            preRun();
+            if (runDependencies > 0) {
+              return;
+            }
+            function doRun() {
+              if (calledRun)
+                return;
+              calledRun = true;
+              Module["calledRun"] = true;
+              if (ABORT)
+                return;
+              initRuntime();
+              readyPromiseResolve(Module);
+              if (Module["onRuntimeInitialized"])
+                Module["onRuntimeInitialized"]();
+              postRun();
+            }
+            if (Module["setStatus"]) {
+              Module["setStatus"]("Running...");
+              setTimeout(function() {
+                setTimeout(function() {
+                  Module["setStatus"]("");
+                }, 1);
+                doRun();
+              }, 1);
+            } else {
+              doRun();
+            }
+          }
+          if (Module["preInit"]) {
+            if (typeof Module["preInit"] == "function")
+              Module["preInit"] = [Module["preInit"]];
+            while (Module["preInit"].length > 0) {
+              Module["preInit"].pop()();
+            }
+          }
+          run();
+          return moduleArg.ready;
+        };
+      })();
+      if (typeof exports === "object" && typeof module === "object")
+        module.exports = WebIFCWasm2;
+      else if (typeof define === "function" && define["amd"])
+        define([], () => WebIFCWasm2);
+    }
+  });
+  var require_web_ifc = __commonJS({
+    "dist/web-ifc.js"(exports, module) {
+      var WebIFCWasm2 = (() => {
+        var _scriptDir = typeof document !== "undefined" && document.currentScript ? document.currentScript.src : void 0;
+        return function(moduleArg = {}) {
+          var Module = moduleArg;
+          var readyPromiseResolve, readyPromiseReject;
+          Module["ready"] = new Promise((resolve, reject) => {
+            readyPromiseResolve = resolve;
+            readyPromiseReject = reject;
+          });
+          var moduleOverrides = Object.assign({}, Module);
+          var arguments_ = [];
+          var thisProgram = "./this.program";
+          var quit_ = (status, toThrow) => {
+            throw toThrow;
+          };
+          var ENVIRONMENT_IS_WEB = true;
+          var ENVIRONMENT_IS_WORKER = false;
+          var scriptDirectory = "";
+          function locateFile(path) {
+            if (Module["locateFile"]) {
+              return Module["locateFile"](path, scriptDirectory);
+            }
+            return scriptDirectory + path;
+          }
+          var read_, readAsync, readBinary, setWindowTitle;
+          if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+            if (ENVIRONMENT_IS_WORKER) {
+              scriptDirectory = self.location.href;
+            } else if (typeof document != "undefined" && document.currentScript) {
+              scriptDirectory = document.currentScript.src;
+            }
+            if (_scriptDir) {
+              scriptDirectory = _scriptDir;
+            }
+            if (scriptDirectory.indexOf("blob:") !== 0) {
+              scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
+            } else {
+              scriptDirectory = "";
+            }
+            {
+              read_ = (url) => {
+                var xhr = new XMLHttpRequest();
+                xhr.open("GET", url, false);
+                xhr.send(null);
+                return xhr.responseText;
+              };
+              if (ENVIRONMENT_IS_WORKER) {
+                readBinary = (url) => {
+                  var xhr = new XMLHttpRequest();
+                  xhr.open("GET", url, false);
+                  xhr.responseType = "arraybuffer";
+                  xhr.send(null);
+                  return new Uint8Array(xhr.response);
+                };
+              }
+              readAsync = (url, onload, onerror) => {
+                var xhr = new XMLHttpRequest();
+                xhr.open("GET", url, true);
+                xhr.responseType = "arraybuffer";
+                xhr.onload = () => {
+                  if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
+                    onload(xhr.response);
+                    return;
+                  }
+                  onerror();
+                };
+                xhr.onerror = onerror;
+                xhr.send(null);
+              };
+            }
+            setWindowTitle = (title) => document.title = title;
+          } else {
+          }
+          var out = Module["print"] || console.log.bind(console);
+          var err = Module["printErr"] || console.error.bind(console);
+          Object.assign(Module, moduleOverrides);
+          moduleOverrides = null;
+          if (Module["arguments"])
+            arguments_ = Module["arguments"];
+          if (Module["thisProgram"])
+            thisProgram = Module["thisProgram"];
+          if (Module["quit"])
+            quit_ = Module["quit"];
+          var wasmBinary;
+          if (Module["wasmBinary"])
+            wasmBinary = Module["wasmBinary"];
+          var noExitRuntime = Module["noExitRuntime"] || true;
+          if (typeof WebAssembly != "object") {
+            abort("no native wasm support detected");
+          }
+          var wasmMemory;
+          var wasmExports;
+          var ABORT = false;
+          var EXITSTATUS;
+          function assert(condition, text) {
+            if (!condition) {
+              abort(text);
+            }
+          }
+          var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
+          function updateMemoryViews() {
+            var b = wasmMemory.buffer;
+            Module["HEAP8"] = HEAP8 = new Int8Array(b);
+            Module["HEAP16"] = HEAP16 = new Int16Array(b);
+            Module["HEAP32"] = HEAP32 = new Int32Array(b);
+            Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
+            Module["HEAPU16"] = HEAPU16 = new Uint16Array(b);
+            Module["HEAPU32"] = HEAPU32 = new Uint32Array(b);
+            Module["HEAPF32"] = HEAPF32 = new Float32Array(b);
+            Module["HEAPF64"] = HEAPF64 = new Float64Array(b);
+          }
+          var wasmTable;
+          var __ATPRERUN__ = [];
+          var __ATINIT__ = [];
+          var __ATPOSTRUN__ = [];
+          var runtimeInitialized = false;
+          function preRun() {
+            if (Module["preRun"]) {
+              if (typeof Module["preRun"] == "function")
+                Module["preRun"] = [Module["preRun"]];
+              while (Module["preRun"].length) {
+                addOnPreRun(Module["preRun"].shift());
+              }
+            }
+            callRuntimeCallbacks(__ATPRERUN__);
+          }
+          function initRuntime() {
+            runtimeInitialized = true;
+            if (!Module["noFSInit"] && !FS.init.initialized)
+              FS.init();
+            FS.ignorePermissions = false;
+            TTY.init();
+            callRuntimeCallbacks(__ATINIT__);
+          }
+          function postRun() {
+            if (Module["postRun"]) {
+              if (typeof Module["postRun"] == "function")
+                Module["postRun"] = [Module["postRun"]];
+              while (Module["postRun"].length) {
+                addOnPostRun(Module["postRun"].shift());
+              }
+            }
+            callRuntimeCallbacks(__ATPOSTRUN__);
+          }
+          function addOnPreRun(cb) {
+            __ATPRERUN__.unshift(cb);
+          }
+          function addOnInit(cb) {
+            __ATINIT__.unshift(cb);
+          }
+          function addOnPostRun(cb) {
+            __ATPOSTRUN__.unshift(cb);
+          }
+          var runDependencies = 0;
+          var runDependencyWatcher = null;
+          var dependenciesFulfilled = null;
+          function getUniqueRunDependency(id) {
+            return id;
+          }
+          function addRunDependency(id) {
+            runDependencies++;
+            if (Module["monitorRunDependencies"]) {
+              Module["monitorRunDependencies"](runDependencies);
+            }
+          }
+          function removeRunDependency(id) {
+            runDependencies--;
+            if (Module["monitorRunDependencies"]) {
+              Module["monitorRunDependencies"](runDependencies);
+            }
+            if (runDependencies == 0) {
+              if (runDependencyWatcher !== null) {
+                clearInterval(runDependencyWatcher);
+                runDependencyWatcher = null;
+              }
+              if (dependenciesFulfilled) {
+                var callback = dependenciesFulfilled;
+                dependenciesFulfilled = null;
+                callback();
+              }
+            }
+          }
+          function abort(what) {
+            if (Module["onAbort"]) {
+              Module["onAbort"](what);
+            }
+            what = "Aborted(" + what + ")";
+            err(what);
+            ABORT = true;
+            EXITSTATUS = 1;
+            what += ". Build with -sASSERTIONS for more info.";
+            var e = new WebAssembly.RuntimeError(what);
+            readyPromiseReject(e);
+            throw e;
+          }
+          var dataURIPrefix = "data:application/octet-stream;base64,";
+          function isDataURI(filename) {
+            return filename.startsWith(dataURIPrefix);
+          }
+          var wasmBinaryFile;
+          wasmBinaryFile = "web-ifc.wasm";
+          if (!isDataURI(wasmBinaryFile)) {
+            wasmBinaryFile = locateFile(wasmBinaryFile);
+          }
+          function getBinarySync(file) {
+            if (file == wasmBinaryFile && wasmBinary) {
+              return new Uint8Array(wasmBinary);
+            }
+            if (readBinary) {
+              return readBinary(file);
+            }
+            throw "both async and sync fetching of the wasm failed";
+          }
+          function getBinaryPromise(binaryFile) {
+            if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
+              if (typeof fetch == "function") {
+                return fetch(binaryFile, { credentials: "same-origin" }).then((response) => {
+                  if (!response["ok"]) {
+                    throw "failed to load wasm binary file at '" + binaryFile + "'";
+                  }
+                  return response["arrayBuffer"]();
+                }).catch(() => getBinarySync(binaryFile));
+              }
+            }
+            return Promise.resolve().then(() => getBinarySync(binaryFile));
+          }
+          function instantiateArrayBuffer(binaryFile, imports, receiver) {
+            return getBinaryPromise(binaryFile).then((binary) => WebAssembly.instantiate(binary, imports)).then((instance) => instance).then(receiver, (reason) => {
+              err("failed to asynchronously prepare wasm: " + reason);
+              abort(reason);
+            });
+          }
+          function instantiateAsync(binary, binaryFile, imports, callback) {
+            if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") {
+              return fetch(binaryFile, { credentials: "same-origin" }).then((response) => {
+                var result = WebAssembly.instantiateStreaming(response, imports);
+                return result.then(callback, function(reason) {
+                  err("wasm streaming compile failed: " + reason);
+                  err("falling back to ArrayBuffer instantiation");
+                  return instantiateArrayBuffer(binaryFile, imports, callback);
+                });
+              });
+            }
+            return instantiateArrayBuffer(binaryFile, imports, callback);
+          }
+          function createWasm() {
+            var info = { "a": wasmImports };
+            function receiveInstance(instance, module2) {
+              var exports2 = instance.exports;
+              exports2 = applySignatureConversions(exports2);
+              wasmExports = exports2;
+              wasmMemory = wasmExports["V"];
+              updateMemoryViews();
+              wasmTable = wasmExports["X"];
+              addOnInit(wasmExports["W"]);
+              removeRunDependency("wasm-instantiate");
+              return exports2;
+            }
+            addRunDependency("wasm-instantiate");
+            function receiveInstantiationResult(result) {
+              receiveInstance(result["instance"]);
+            }
+            if (Module["instantiateWasm"]) {
+              try {
+                return Module["instantiateWasm"](info, receiveInstance);
+              } catch (e) {
+                err("Module.instantiateWasm callback failed with error: " + e);
+                readyPromiseReject(e);
+              }
+            }
+            instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject);
+            return {};
+          }
+          var tempDouble;
+          var tempI64;
+          var callRuntimeCallbacks = (callbacks) => {
+            while (callbacks.length > 0) {
+              callbacks.shift()(Module);
+            }
+          };
+          function ExceptionInfo(excPtr) {
+            this.excPtr = excPtr;
+            this.ptr = excPtr - 24;
+            this.set_type = function(type) {
+              HEAPU32[this.ptr + 4 >>> 2] = type;
+            };
+            this.get_type = function() {
+              return HEAPU32[this.ptr + 4 >>> 2];
+            };
+            this.set_destructor = function(destructor) {
+              HEAPU32[this.ptr + 8 >>> 2] = destructor;
+            };
+            this.get_destructor = function() {
+              return HEAPU32[this.ptr + 8 >>> 2];
+            };
+            this.set_caught = function(caught) {
+              caught = caught ? 1 : 0;
+              HEAP8[this.ptr + 12 >>> 0] = caught;
+            };
+            this.get_caught = function() {
+              return HEAP8[this.ptr + 12 >>> 0] != 0;
+            };
+            this.set_rethrown = function(rethrown) {
+              rethrown = rethrown ? 1 : 0;
+              HEAP8[this.ptr + 13 >>> 0] = rethrown;
+            };
+            this.get_rethrown = function() {
+              return HEAP8[this.ptr + 13 >>> 0] != 0;
+            };
+            this.init = function(type, destructor) {
+              this.set_adjusted_ptr(0);
+              this.set_type(type);
+              this.set_destructor(destructor);
+            };
+            this.set_adjusted_ptr = function(adjustedPtr) {
+              HEAPU32[this.ptr + 16 >>> 2] = adjustedPtr;
+            };
+            this.get_adjusted_ptr = function() {
+              return HEAPU32[this.ptr + 16 >>> 2];
+            };
+            this.get_exception_ptr = function() {
+              var isPointer = ___cxa_is_pointer_type(this.get_type());
+              if (isPointer) {
+                return HEAPU32[this.excPtr >>> 2];
+              }
+              var adjusted = this.get_adjusted_ptr();
+              if (adjusted !== 0)
+                return adjusted;
+              return this.excPtr;
+            };
+          }
+          var exceptionLast = 0;
+          var uncaughtExceptionCount = 0;
+          function convertI32PairToI53Checked(lo, hi) {
+            return hi + 2097152 >>> 0 < 4194305 - !!lo ? (lo >>> 0) + hi * 4294967296 : NaN;
+          }
+          function ___cxa_throw(ptr, type, destructor) {
+            ptr >>>= 0;
+            type >>>= 0;
+            destructor >>>= 0;
+            var info = new ExceptionInfo(ptr);
+            info.init(type, destructor);
+            exceptionLast = ptr;
+            uncaughtExceptionCount++;
+            throw exceptionLast;
+          }
+          var tupleRegistrations = {};
+          function runDestructors(destructors) {
+            while (destructors.length) {
+              var ptr = destructors.pop();
+              var del = destructors.pop();
+              del(ptr);
+            }
+          }
+          function simpleReadValueFromPointer(pointer) {
+            return this["fromWireType"](HEAP32[pointer >>> 2]);
+          }
+          var awaitingDependencies = {};
+          var registeredTypes = {};
+          var typeDependencies = {};
+          var InternalError = void 0;
+          function throwInternalError(message) {
+            throw new InternalError(message);
+          }
+          function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {
+            myTypes.forEach(function(type) {
+              typeDependencies[type] = dependentTypes;
+            });
+            function onComplete(typeConverters2) {
+              var myTypeConverters = getTypeConverters(typeConverters2);
+              if (myTypeConverters.length !== myTypes.length) {
+                throwInternalError("Mismatched type converter count");
+              }
+              for (var i = 0; i < myTypes.length; ++i) {
+                registerType(myTypes[i], myTypeConverters[i]);
+              }
+            }
+            var typeConverters = new Array(dependentTypes.length);
+            var unregisteredTypes = [];
+            var registered = 0;
+            dependentTypes.forEach((dt, i) => {
+              if (registeredTypes.hasOwnProperty(dt)) {
+                typeConverters[i] = registeredTypes[dt];
+              } else {
+                unregisteredTypes.push(dt);
+                if (!awaitingDependencies.hasOwnProperty(dt)) {
+                  awaitingDependencies[dt] = [];
+                }
+                awaitingDependencies[dt].push(() => {
+                  typeConverters[i] = registeredTypes[dt];
+                  ++registered;
+                  if (registered === unregisteredTypes.length) {
+                    onComplete(typeConverters);
+                  }
+                });
+              }
+            });
+            if (unregisteredTypes.length === 0) {
+              onComplete(typeConverters);
+            }
+          }
+          function __embind_finalize_value_array(rawTupleType) {
+            rawTupleType >>>= 0;
+            var reg = tupleRegistrations[rawTupleType];
+            delete tupleRegistrations[rawTupleType];
+            var elements = reg.elements;
+            var elementsLength = elements.length;
+            var elementTypes = elements.map(function(elt) {
+              return elt.getterReturnType;
+            }).concat(elements.map(function(elt) {
+              return elt.setterArgumentType;
+            }));
+            var rawConstructor = reg.rawConstructor;
+            var rawDestructor = reg.rawDestructor;
+            whenDependentTypesAreResolved([rawTupleType], elementTypes, function(elementTypes2) {
+              elements.forEach((elt, i) => {
+                var getterReturnType = elementTypes2[i];
+                var getter = elt.getter;
+                var getterContext = elt.getterContext;
+                var setterArgumentType = elementTypes2[i + elementsLength];
+                var setter = elt.setter;
+                var setterContext = elt.setterContext;
+                elt.read = (ptr) => getterReturnType["fromWireType"](getter(getterContext, ptr));
+                elt.write = (ptr, o) => {
+                  var destructors = [];
+                  setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
+                  runDestructors(destructors);
+                };
+              });
+              return [{ name: reg.name, "fromWireType": function(ptr) {
+                var rv = new Array(elementsLength);
+                for (var i = 0; i < elementsLength; ++i) {
+                  rv[i] = elements[i].read(ptr);
+                }
+                rawDestructor(ptr);
+                return rv;
+              }, "toWireType": function(destructors, o) {
+                if (elementsLength !== o.length) {
+                  throw new TypeError(`Incorrect number of tuple elements for ${reg.name}: expected=${elementsLength}, actual=${o.length}`);
+                }
+                var ptr = rawConstructor();
+                for (var i = 0; i < elementsLength; ++i) {
+                  elements[i].write(ptr, o[i]);
+                }
+                if (destructors !== null) {
+                  destructors.push(rawDestructor, ptr);
+                }
+                return ptr;
+              }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }];
+            });
+          }
+          var structRegistrations = {};
+          var __embind_finalize_value_object = function(structType) {
+            structType >>>= 0;
+            var reg = structRegistrations[structType];
+            delete structRegistrations[structType];
+            var rawConstructor = reg.rawConstructor;
+            var rawDestructor = reg.rawDestructor;
+            var fieldRecords = reg.fields;
+            var fieldTypes = fieldRecords.map((field) => field.getterReturnType).concat(fieldRecords.map((field) => field.setterArgumentType));
+            whenDependentTypesAreResolved([structType], fieldTypes, (fieldTypes2) => {
+              var fields = {};
+              fieldRecords.forEach((field, i) => {
+                var fieldName = field.fieldName;
+                var getterReturnType = fieldTypes2[i];
+                var getter = field.getter;
+                var getterContext = field.getterContext;
+                var setterArgumentType = fieldTypes2[i + fieldRecords.length];
+                var setter = field.setter;
+                var setterContext = field.setterContext;
+                fields[fieldName] = { read: (ptr) => getterReturnType["fromWireType"](getter(getterContext, ptr)), write: (ptr, o) => {
+                  var destructors = [];
+                  setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
+                  runDestructors(destructors);
+                } };
+              });
+              return [{ name: reg.name, "fromWireType": function(ptr) {
+                var rv = {};
+                for (var i in fields) {
+                  rv[i] = fields[i].read(ptr);
+                }
+                rawDestructor(ptr);
+                return rv;
+              }, "toWireType": function(destructors, o) {
+                for (var fieldName in fields) {
+                  if (!(fieldName in o)) {
+                    throw new TypeError(`Missing field: "${fieldName}"`);
+                  }
+                }
+                var ptr = rawConstructor();
+                for (fieldName in fields) {
+                  fields[fieldName].write(ptr, o[fieldName]);
+                }
+                if (destructors !== null) {
+                  destructors.push(rawDestructor, ptr);
+                }
+                return ptr;
+              }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: rawDestructor }];
+            });
+          };
+          function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {
+            primitiveType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+          }
+          function getShiftFromSize(size) {
+            switch (size) {
+              case 1:
+                return 0;
+              case 2:
+                return 1;
+              case 4:
+                return 2;
+              case 8:
+                return 3;
+              default:
+                throw new TypeError(`Unknown type size: ${size}`);
+            }
+          }
+          function embind_init_charCodes() {
+            var codes = new Array(256);
+            for (var i = 0; i < 256; ++i) {
+              codes[i] = String.fromCharCode(i);
+            }
+            embind_charCodes = codes;
+          }
+          var embind_charCodes = void 0;
+          function readLatin1String(ptr) {
+            var ret = "";
+            var c = ptr;
+            while (HEAPU8[c >>> 0]) {
+              ret += embind_charCodes[HEAPU8[c++ >>> 0]];
+            }
+            return ret;
+          }
+          var BindingError = void 0;
+          function throwBindingError(message) {
+            throw new BindingError(message);
+          }
+          function sharedRegisterType(rawType, registeredInstance, options = {}) {
+            var name = registeredInstance.name;
+            if (!rawType) {
+              throwBindingError(`type "${name}" must have a positive integer typeid pointer`);
+            }
+            if (registeredTypes.hasOwnProperty(rawType)) {
+              if (options.ignoreDuplicateRegistrations) {
+                return;
+              } else {
+                throwBindingError(`Cannot register type '${name}' twice`);
+              }
+            }
+            registeredTypes[rawType] = registeredInstance;
+            delete typeDependencies[rawType];
+            if (awaitingDependencies.hasOwnProperty(rawType)) {
+              var callbacks = awaitingDependencies[rawType];
+              delete awaitingDependencies[rawType];
+              callbacks.forEach((cb) => cb());
+            }
+          }
+          function registerType(rawType, registeredInstance, options = {}) {
+            if (!("argPackAdvance" in registeredInstance)) {
+              throw new TypeError("registerType registeredInstance requires argPackAdvance");
+            }
+            return sharedRegisterType(rawType, registeredInstance, options);
+          }
+          function __embind_register_bool(rawType, name, size, trueValue, falseValue) {
+            rawType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+            var shift = getShiftFromSize(size);
+            name = readLatin1String(name);
+            registerType(rawType, { name, "fromWireType": function(wt) {
+              return !!wt;
+            }, "toWireType": function(destructors, o) {
+              return o ? trueValue : falseValue;
+            }, "argPackAdvance": 8, "readValueFromPointer": function(pointer) {
+              var heap;
+              if (size === 1) {
+                heap = HEAP8;
+              } else if (size === 2) {
+                heap = HEAP16;
+              } else if (size === 4) {
+                heap = HEAP32;
+              } else {
+                throw new TypeError("Unknown boolean type size: " + name);
+              }
+              return this["fromWireType"](heap[pointer >>> shift]);
+            }, destructorFunction: null });
+          }
+          function ClassHandle_isAliasOf(other) {
+            if (!(this instanceof ClassHandle)) {
+              return false;
+            }
+            if (!(other instanceof ClassHandle)) {
+              return false;
+            }
+            var leftClass = this.$$.ptrType.registeredClass;
+            var left = this.$$.ptr;
+            var rightClass = other.$$.ptrType.registeredClass;
+            var right = other.$$.ptr;
+            while (leftClass.baseClass) {
+              left = leftClass.upcast(left);
+              leftClass = leftClass.baseClass;
+            }
+            while (rightClass.baseClass) {
+              right = rightClass.upcast(right);
+              rightClass = rightClass.baseClass;
+            }
+            return leftClass === rightClass && left === right;
+          }
+          function shallowCopyInternalPointer(o) {
+            return { count: o.count, deleteScheduled: o.deleteScheduled, preservePointerOnDelete: o.preservePointerOnDelete, ptr: o.ptr, ptrType: o.ptrType, smartPtr: o.smartPtr, smartPtrType: o.smartPtrType };
+          }
+          function throwInstanceAlreadyDeleted(obj) {
+            function getInstanceTypeName(handle) {
+              return handle.$$.ptrType.registeredClass.name;
+            }
+            throwBindingError(getInstanceTypeName(obj) + " instance already deleted");
+          }
+          var finalizationRegistry = false;
+          function detachFinalizer(handle) {
+          }
+          function runDestructor($$) {
+            if ($$.smartPtr) {
+              $$.smartPtrType.rawDestructor($$.smartPtr);
+            } else {
+              $$.ptrType.registeredClass.rawDestructor($$.ptr);
+            }
+          }
+          function releaseClassHandle($$) {
+            $$.count.value -= 1;
+            var toDelete = $$.count.value === 0;
+            if (toDelete) {
+              runDestructor($$);
+            }
+          }
+          function downcastPointer(ptr, ptrClass, desiredClass) {
+            if (ptrClass === desiredClass) {
+              return ptr;
+            }
+            if (desiredClass.baseClass === void 0) {
+              return null;
+            }
+            var rv = downcastPointer(ptr, ptrClass, desiredClass.baseClass);
+            if (rv === null) {
+              return null;
+            }
+            return desiredClass.downcast(rv);
+          }
+          var registeredPointers = {};
+          function getInheritedInstanceCount() {
+            return Object.keys(registeredInstances).length;
+          }
+          function getLiveInheritedInstances() {
+            var rv = [];
+            for (var k in registeredInstances) {
+              if (registeredInstances.hasOwnProperty(k)) {
+                rv.push(registeredInstances[k]);
+              }
+            }
+            return rv;
+          }
+          var deletionQueue = [];
+          function flushPendingDeletes() {
+            while (deletionQueue.length) {
+              var obj = deletionQueue.pop();
+              obj.$$.deleteScheduled = false;
+              obj["delete"]();
+            }
+          }
+          var delayFunction = void 0;
+          function setDelayFunction(fn) {
+            delayFunction = fn;
+            if (deletionQueue.length && delayFunction) {
+              delayFunction(flushPendingDeletes);
+            }
+          }
+          function init_embind() {
+            Module["getInheritedInstanceCount"] = getInheritedInstanceCount;
+            Module["getLiveInheritedInstances"] = getLiveInheritedInstances;
+            Module["flushPendingDeletes"] = flushPendingDeletes;
+            Module["setDelayFunction"] = setDelayFunction;
+          }
+          var registeredInstances = {};
+          function getBasestPointer(class_, ptr) {
+            if (ptr === void 0) {
+              throwBindingError("ptr should not be undefined");
+            }
+            while (class_.baseClass) {
+              ptr = class_.upcast(ptr);
+              class_ = class_.baseClass;
+            }
+            return ptr;
+          }
+          function getInheritedInstance(class_, ptr) {
+            ptr = getBasestPointer(class_, ptr);
+            return registeredInstances[ptr];
+          }
+          function makeClassHandle(prototype, record) {
+            if (!record.ptrType || !record.ptr) {
+              throwInternalError("makeClassHandle requires ptr and ptrType");
+            }
+            var hasSmartPtrType = !!record.smartPtrType;
+            var hasSmartPtr = !!record.smartPtr;
+            if (hasSmartPtrType !== hasSmartPtr) {
+              throwInternalError("Both smartPtrType and smartPtr must be specified");
+            }
+            record.count = { value: 1 };
+            return attachFinalizer(Object.create(prototype, { $$: { value: record } }));
+          }
+          function RegisteredPointer_fromWireType(ptr) {
+            var rawPointer = this.getPointee(ptr);
+            if (!rawPointer) {
+              this.destructor(ptr);
+              return null;
+            }
+            var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
+            if (registeredInstance !== void 0) {
+              if (registeredInstance.$$.count.value === 0) {
+                registeredInstance.$$.ptr = rawPointer;
+                registeredInstance.$$.smartPtr = ptr;
+                return registeredInstance["clone"]();
+              } else {
+                var rv = registeredInstance["clone"]();
+                this.destructor(ptr);
+                return rv;
+              }
+            }
+            function makeDefaultHandle() {
+              if (this.isSmartPointer) {
+                return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this.pointeeType, ptr: rawPointer, smartPtrType: this, smartPtr: ptr });
+              } else {
+                return makeClassHandle(this.registeredClass.instancePrototype, { ptrType: this, ptr });
+              }
+            }
+            var actualType = this.registeredClass.getActualType(rawPointer);
+            var registeredPointerRecord = registeredPointers[actualType];
+            if (!registeredPointerRecord) {
+              return makeDefaultHandle.call(this);
+            }
+            var toType;
+            if (this.isConst) {
+              toType = registeredPointerRecord.constPointerType;
+            } else {
+              toType = registeredPointerRecord.pointerType;
+            }
+            var dp = downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
+            if (dp === null) {
+              return makeDefaultHandle.call(this);
+            }
+            if (this.isSmartPointer) {
+              return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp, smartPtrType: this, smartPtr: ptr });
+            } else {
+              return makeClassHandle(toType.registeredClass.instancePrototype, { ptrType: toType, ptr: dp });
+            }
+          }
+          var attachFinalizer = function(handle) {
+            if (typeof FinalizationRegistry === "undefined") {
+              attachFinalizer = (handle2) => handle2;
+              return handle;
+            }
+            finalizationRegistry = new FinalizationRegistry((info) => {
+              releaseClassHandle(info.$$);
+            });
+            attachFinalizer = (handle2) => {
+              var $$ = handle2.$$;
+              var hasSmartPtr = !!$$.smartPtr;
+              if (hasSmartPtr) {
+                var info = { $$ };
+                finalizationRegistry.register(handle2, info, handle2);
+              }
+              return handle2;
+            };
+            detachFinalizer = (handle2) => finalizationRegistry.unregister(handle2);
+            return attachFinalizer(handle);
+          };
+          function ClassHandle_clone() {
+            if (!this.$$.ptr) {
+              throwInstanceAlreadyDeleted(this);
+            }
+            if (this.$$.preservePointerOnDelete) {
+              this.$$.count.value += 1;
+              return this;
+            } else {
+              var clone = attachFinalizer(Object.create(Object.getPrototypeOf(this), { $$: { value: shallowCopyInternalPointer(this.$$) } }));
+              clone.$$.count.value += 1;
+              clone.$$.deleteScheduled = false;
+              return clone;
+            }
+          }
+          function ClassHandle_delete() {
+            if (!this.$$.ptr) {
+              throwInstanceAlreadyDeleted(this);
+            }
+            if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
+              throwBindingError("Object already scheduled for deletion");
+            }
+            detachFinalizer(this);
+            releaseClassHandle(this.$$);
+            if (!this.$$.preservePointerOnDelete) {
+              this.$$.smartPtr = void 0;
+              this.$$.ptr = void 0;
+            }
+          }
+          function ClassHandle_isDeleted() {
+            return !this.$$.ptr;
+          }
+          function ClassHandle_deleteLater() {
+            if (!this.$$.ptr) {
+              throwInstanceAlreadyDeleted(this);
+            }
+            if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
+              throwBindingError("Object already scheduled for deletion");
+            }
+            deletionQueue.push(this);
+            if (deletionQueue.length === 1 && delayFunction) {
+              delayFunction(flushPendingDeletes);
+            }
+            this.$$.deleteScheduled = true;
+            return this;
+          }
+          function init_ClassHandle() {
+            ClassHandle.prototype["isAliasOf"] = ClassHandle_isAliasOf;
+            ClassHandle.prototype["clone"] = ClassHandle_clone;
+            ClassHandle.prototype["delete"] = ClassHandle_delete;
+            ClassHandle.prototype["isDeleted"] = ClassHandle_isDeleted;
+            ClassHandle.prototype["deleteLater"] = ClassHandle_deleteLater;
+          }
+          function ClassHandle() {
+          }
+          var char_0 = 48;
+          var char_9 = 57;
+          function makeLegalFunctionName(name) {
+            if (name === void 0) {
+              return "_unknown";
+            }
+            name = name.replace(/[^a-zA-Z0-9_]/g, "$");
+            var f = name.charCodeAt(0);
+            if (f >= char_0 && f <= char_9) {
+              return `_${name}`;
+            }
+            return name;
+          }
+          function createNamedFunction(name, body) {
+            name = makeLegalFunctionName(name);
+            return { [name]: function() {
+              return body.apply(this, arguments);
+            } }[name];
+          }
+          function ensureOverloadTable(proto, methodName, humanName) {
+            if (proto[methodName].overloadTable === void 0) {
+              var prevFunc = proto[methodName];
+              proto[methodName] = function() {
+                if (!proto[methodName].overloadTable.hasOwnProperty(arguments.length)) {
+                  throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`);
+                }
+                return proto[methodName].overloadTable[arguments.length].apply(this, arguments);
+              };
+              proto[methodName].overloadTable = [];
+              proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;
+            }
+          }
+          function exposePublicSymbol(name, value, numArguments) {
+            if (Module.hasOwnProperty(name)) {
+              if (numArguments === void 0 || Module[name].overloadTable !== void 0 && Module[name].overloadTable[numArguments] !== void 0) {
+                throwBindingError(`Cannot register public name '${name}' twice`);
+              }
+              ensureOverloadTable(Module, name, name);
+              if (Module.hasOwnProperty(numArguments)) {
+                throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`);
+              }
+              Module[name].overloadTable[numArguments] = value;
+            } else {
+              Module[name] = value;
+              if (numArguments !== void 0) {
+                Module[name].numArguments = numArguments;
+              }
+            }
+          }
+          function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {
+            this.name = name;
+            this.constructor = constructor;
+            this.instancePrototype = instancePrototype;
+            this.rawDestructor = rawDestructor;
+            this.baseClass = baseClass;
+            this.getActualType = getActualType;
+            this.upcast = upcast;
+            this.downcast = downcast;
+            this.pureVirtualFunctions = [];
+          }
+          function upcastPointer(ptr, ptrClass, desiredClass) {
+            while (ptrClass !== desiredClass) {
+              if (!ptrClass.upcast) {
+                throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`);
+              }
+              ptr = ptrClass.upcast(ptr);
+              ptrClass = ptrClass.baseClass;
+            }
+            return ptr;
+          }
+          function constNoSmartPtrRawPointerToWireType(destructors, handle) {
+            if (handle === null) {
+              if (this.isReference) {
+                throwBindingError(`null is not a valid ${this.name}`);
+              }
+              return 0;
+            }
+            if (!handle.$$) {
+              throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);
+            }
+            if (!handle.$$.ptr) {
+              throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);
+            }
+            var handleClass = handle.$$.ptrType.registeredClass;
+            var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+            return ptr;
+          }
+          function genericPointerToWireType(destructors, handle) {
+            var ptr;
+            if (handle === null) {
+              if (this.isReference) {
+                throwBindingError(`null is not a valid ${this.name}`);
+              }
+              if (this.isSmartPointer) {
+                ptr = this.rawConstructor();
+                if (destructors !== null) {
+                  destructors.push(this.rawDestructor, ptr);
+                }
+                return ptr;
+              } else {
+                return 0;
+              }
+            }
+            if (!handle.$$) {
+              throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);
+            }
+            if (!handle.$$.ptr) {
+              throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);
+            }
+            if (!this.isConst && handle.$$.ptrType.isConst) {
+              throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`);
+            }
+            var handleClass = handle.$$.ptrType.registeredClass;
+            ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+            if (this.isSmartPointer) {
+              if (handle.$$.smartPtr === void 0) {
+                throwBindingError("Passing raw pointer to smart pointer is illegal");
+              }
+              switch (this.sharingPolicy) {
+                case 0:
+                  if (handle.$$.smartPtrType === this) {
+                    ptr = handle.$$.smartPtr;
+                  } else {
+                    throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name} to parameter type ${this.name}`);
+                  }
+                  break;
+                case 1:
+                  ptr = handle.$$.smartPtr;
+                  break;
+                case 2:
+                  if (handle.$$.smartPtrType === this) {
+                    ptr = handle.$$.smartPtr;
+                  } else {
+                    var clonedHandle = handle["clone"]();
+                    ptr = this.rawShare(ptr, Emval.toHandle(function() {
+                      clonedHandle["delete"]();
+                    }));
+                    if (destructors !== null) {
+                      destructors.push(this.rawDestructor, ptr);
+                    }
+                  }
+                  break;
+                default:
+                  throwBindingError("Unsupporting sharing policy");
+              }
+            }
+            return ptr;
+          }
+          function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {
+            if (handle === null) {
+              if (this.isReference) {
+                throwBindingError(`null is not a valid ${this.name}`);
+              }
+              return 0;
+            }
+            if (!handle.$$) {
+              throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`);
+            }
+            if (!handle.$$.ptr) {
+              throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`);
+            }
+            if (handle.$$.ptrType.isConst) {
+              throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`);
+            }
+            var handleClass = handle.$$.ptrType.registeredClass;
+            var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
+            return ptr;
+          }
+          function RegisteredPointer_getPointee(ptr) {
+            if (this.rawGetPointee) {
+              ptr = this.rawGetPointee(ptr);
+            }
+            return ptr;
+          }
+          function RegisteredPointer_destructor(ptr) {
+            if (this.rawDestructor) {
+              this.rawDestructor(ptr);
+            }
+          }
+          function RegisteredPointer_deleteObject(handle) {
+            if (handle !== null) {
+              handle["delete"]();
+            }
+          }
+          function init_RegisteredPointer() {
+            RegisteredPointer.prototype.getPointee = RegisteredPointer_getPointee;
+            RegisteredPointer.prototype.destructor = RegisteredPointer_destructor;
+            RegisteredPointer.prototype["argPackAdvance"] = 8;
+            RegisteredPointer.prototype["readValueFromPointer"] = simpleReadValueFromPointer;
+            RegisteredPointer.prototype["deleteObject"] = RegisteredPointer_deleteObject;
+            RegisteredPointer.prototype["fromWireType"] = RegisteredPointer_fromWireType;
+          }
+          function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {
+            this.name = name;
+            this.registeredClass = registeredClass;
+            this.isReference = isReference;
+            this.isConst = isConst;
+            this.isSmartPointer = isSmartPointer;
+            this.pointeeType = pointeeType;
+            this.sharingPolicy = sharingPolicy;
+            this.rawGetPointee = rawGetPointee;
+            this.rawConstructor = rawConstructor;
+            this.rawShare = rawShare;
+            this.rawDestructor = rawDestructor;
+            if (!isSmartPointer && registeredClass.baseClass === void 0) {
+              if (isConst) {
+                this["toWireType"] = constNoSmartPtrRawPointerToWireType;
+                this.destructorFunction = null;
+              } else {
+                this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType;
+                this.destructorFunction = null;
+              }
+            } else {
+              this["toWireType"] = genericPointerToWireType;
+            }
+          }
+          function replacePublicSymbol(name, value, numArguments) {
+            if (!Module.hasOwnProperty(name)) {
+              throwInternalError("Replacing nonexistant public symbol");
+            }
+            if (Module[name].overloadTable !== void 0 && numArguments !== void 0) {
+              Module[name].overloadTable[numArguments] = value;
+            } else {
+              Module[name] = value;
+              Module[name].argCount = numArguments;
+            }
+          }
+          var dynCallLegacy = (sig, ptr, args) => {
+            var f = Module["dynCall_" + sig];
+            return args && args.length ? f.apply(null, [ptr].concat(args)) : f.call(null, ptr);
+          };
+          var wasmTableMirror = [];
+          var getWasmTableEntry = (funcPtr) => {
+            var func = wasmTableMirror[funcPtr];
+            if (!func) {
+              if (funcPtr >= wasmTableMirror.length)
+                wasmTableMirror.length = funcPtr + 1;
+              wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
+            }
+            return func;
+          };
+          var dynCall = (sig, ptr, args) => {
+            if (sig.includes("j")) {
+              return dynCallLegacy(sig, ptr, args);
+            }
+            var rtn = getWasmTableEntry(ptr).apply(null, args);
+            return rtn;
+          };
+          var getDynCaller = (sig, ptr) => {
+            var argCache = [];
+            return function() {
+              argCache.length = 0;
+              Object.assign(argCache, arguments);
+              return dynCall(sig, ptr, argCache);
+            };
+          };
+          function embind__requireFunction(signature, rawFunction) {
+            signature = readLatin1String(signature);
+            function makeDynCaller() {
+              if (signature.includes("j")) {
+                return getDynCaller(signature, rawFunction);
+              }
+              return getWasmTableEntry(rawFunction);
+            }
+            var fp = makeDynCaller();
+            if (typeof fp != "function") {
+              throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`);
+            }
+            return fp;
+          }
+          function extendError(baseErrorType, errorName) {
+            var errorClass = createNamedFunction(errorName, function(message) {
+              this.name = errorName;
+              this.message = message;
+              var stack = new Error(message).stack;
+              if (stack !== void 0) {
+                this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, "");
+              }
+            });
+            errorClass.prototype = Object.create(baseErrorType.prototype);
+            errorClass.prototype.constructor = errorClass;
+            errorClass.prototype.toString = function() {
+              if (this.message === void 0) {
+                return this.name;
+              } else {
+                return `${this.name}: ${this.message}`;
+              }
+            };
+            return errorClass;
+          }
+          var UnboundTypeError = void 0;
+          function getTypeName(type) {
+            var ptr = ___getTypeName(type);
+            var rv = readLatin1String(ptr);
+            _free(ptr);
+            return rv;
+          }
+          function throwUnboundTypeError(message, types) {
+            var unboundTypes = [];
+            var seen = {};
+            function visit(type) {
+              if (seen[type]) {
+                return;
+              }
+              if (registeredTypes[type]) {
+                return;
+              }
+              if (typeDependencies[type]) {
+                typeDependencies[type].forEach(visit);
+                return;
+              }
+              unboundTypes.push(type);
+              seen[type] = true;
+            }
+            types.forEach(visit);
+            throw new UnboundTypeError(`${message}: ` + unboundTypes.map(getTypeName).join([", "]));
+          }
+          function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {
+            rawType >>>= 0;
+            rawPointerType >>>= 0;
+            rawConstPointerType >>>= 0;
+            baseClassRawType >>>= 0;
+            getActualTypeSignature >>>= 0;
+            getActualType >>>= 0;
+            upcastSignature >>>= 0;
+            upcast >>>= 0;
+            downcastSignature >>>= 0;
+            downcast >>>= 0;
+            name >>>= 0;
+            destructorSignature >>>= 0;
+            rawDestructor >>>= 0;
+            name = readLatin1String(name);
+            getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
+            if (upcast) {
+              upcast = embind__requireFunction(upcastSignature, upcast);
+            }
+            if (downcast) {
+              downcast = embind__requireFunction(downcastSignature, downcast);
+            }
+            rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
+            var legalFunctionName = makeLegalFunctionName(name);
+            exposePublicSymbol(legalFunctionName, function() {
+              throwUnboundTypeError(`Cannot construct ${name} due to unbound types`, [baseClassRawType]);
+            });
+            whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function(base) {
+              base = base[0];
+              var baseClass;
+              var basePrototype;
+              if (baseClassRawType) {
+                baseClass = base.registeredClass;
+                basePrototype = baseClass.instancePrototype;
+              } else {
+                basePrototype = ClassHandle.prototype;
+              }
+              var constructor = createNamedFunction(legalFunctionName, function() {
+                if (Object.getPrototypeOf(this) !== instancePrototype) {
+                  throw new BindingError("Use 'new' to construct " + name);
+                }
+                if (registeredClass.constructor_body === void 0) {
+                  throw new BindingError(name + " has no accessible constructor");
+                }
+                var body = registeredClass.constructor_body[arguments.length];
+                if (body === void 0) {
+                  throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`);
+                }
+                return body.apply(this, arguments);
+              });
+              var instancePrototype = Object.create(basePrototype, { constructor: { value: constructor } });
+              constructor.prototype = instancePrototype;
+              var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
+              if (registeredClass.baseClass) {
+                if (registeredClass.baseClass.__derivedClasses === void 0) {
+                  registeredClass.baseClass.__derivedClasses = [];
+                }
+                registeredClass.baseClass.__derivedClasses.push(registeredClass);
+              }
+              var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);
+              var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false);
+              var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false);
+              registeredPointers[rawType] = { pointerType: pointerConverter, constPointerType: constPointerConverter };
+              replacePublicSymbol(legalFunctionName, constructor);
+              return [referenceConverter, pointerConverter, constPointerConverter];
+            });
+          }
+          function heap32VectorToArray(count, firstElement) {
+            var array = [];
+            for (var i = 0; i < count; i++) {
+              array.push(HEAPU32[firstElement + i * 4 >>> 2]);
+            }
+            return array;
+          }
+          function newFunc(constructor, argumentList) {
+            if (!(constructor instanceof Function)) {
+              throw new TypeError(`new_ called with constructor type ${typeof constructor} which is not a function`);
+            }
+            var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function() {
+            });
+            dummy.prototype = constructor.prototype;
+            var obj = new dummy();
+            var r = constructor.apply(obj, argumentList);
+            return r instanceof Object ? r : obj;
+          }
+          function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) {
+            var argCount = argTypes.length;
+            if (argCount < 2) {
+              throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");
+            }
+            var isClassMethodFunc = argTypes[1] !== null && classType !== null;
+            var needsDestructorStack = false;
+            for (var i = 1; i < argTypes.length; ++i) {
+              if (argTypes[i] !== null && argTypes[i].destructorFunction === void 0) {
+                needsDestructorStack = true;
+                break;
+              }
+            }
+            var returns = argTypes[0].name !== "void";
+            var argsList = "";
+            var argsListWired = "";
+            for (var i = 0; i < argCount - 2; ++i) {
+              argsList += (i !== 0 ? ", " : "") + "arg" + i;
+              argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired";
+            }
+            var invokerFnBody = `
+        return function ${makeLegalFunctionName(humanName)}(${argsList}) {
+        if (arguments.length !== ${argCount - 2}) {
+          throwBindingError('function ${humanName} called with ${arguments.length} arguments, expected ${argCount - 2} args!');
+        }`;
+            if (needsDestructorStack) {
+              invokerFnBody += "var destructors = [];\n";
+            }
+            var dtorStack = needsDestructorStack ? "destructors" : "null";
+            var args1 = ["throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"];
+            var args2 = [throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];
+            if (isClassMethodFunc) {
+              invokerFnBody += "var thisWired = classParam.toWireType(" + dtorStack + ", this);\n";
+            }
+            for (var i = 0; i < argCount - 2; ++i) {
+              invokerFnBody += "var arg" + i + "Wired = argType" + i + ".toWireType(" + dtorStack + ", arg" + i + "); // " + argTypes[i + 2].name + "\n";
+              args1.push("argType" + i);
+              args2.push(argTypes[i + 2]);
+            }
+            if (isClassMethodFunc) {
+              argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired;
+            }
+            invokerFnBody += (returns || isAsync ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n";
+            if (needsDestructorStack) {
+              invokerFnBody += "runDestructors(destructors);\n";
+            } else {
+              for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {
+                var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired";
+                if (argTypes[i].destructorFunction !== null) {
+                  invokerFnBody += paramName + "_dtor(" + paramName + "); // " + argTypes[i].name + "\n";
+                  args1.push(paramName + "_dtor");
+                  args2.push(argTypes[i].destructorFunction);
+                }
+              }
+            }
+            if (returns) {
+              invokerFnBody += "var ret = retType.fromWireType(rv);\nreturn ret;\n";
+            } else {
+            }
+            invokerFnBody += "}\n";
+            args1.push(invokerFnBody);
+            return newFunc(Function, args1).apply(null, args2);
+          }
+          function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {
+            rawClassType >>>= 0;
+            rawArgTypesAddr >>>= 0;
+            invokerSignature >>>= 0;
+            invoker >>>= 0;
+            rawConstructor >>>= 0;
+            var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+            invoker = embind__requireFunction(invokerSignature, invoker);
+            whenDependentTypesAreResolved([], [rawClassType], function(classType) {
+              classType = classType[0];
+              var humanName = `constructor ${classType.name}`;
+              if (classType.registeredClass.constructor_body === void 0) {
+                classType.registeredClass.constructor_body = [];
+              }
+              if (classType.registeredClass.constructor_body[argCount - 1] !== void 0) {
+                throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount - 1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
+              }
+              classType.registeredClass.constructor_body[argCount - 1] = () => {
+                throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`, rawArgTypes);
+              };
+              whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
+                argTypes.splice(1, 0, null);
+                classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor);
+                return [];
+              });
+              return [];
+            });
+          }
+          function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) {
+            rawClassType >>>= 0;
+            methodName >>>= 0;
+            rawArgTypesAddr >>>= 0;
+            invokerSignature >>>= 0;
+            rawInvoker >>>= 0;
+            context >>>= 0;
+            var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+            methodName = readLatin1String(methodName);
+            rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
+            whenDependentTypesAreResolved([], [rawClassType], function(classType) {
+              classType = classType[0];
+              var humanName = `${classType.name}.${methodName}`;
+              if (methodName.startsWith("@@")) {
+                methodName = Symbol[methodName.substring(2)];
+              }
+              if (isPureVirtual) {
+                classType.registeredClass.pureVirtualFunctions.push(methodName);
+              }
+              function unboundTypesHandler() {
+                throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes);
+              }
+              var proto = classType.registeredClass.instancePrototype;
+              var method = proto[methodName];
+              if (method === void 0 || method.overloadTable === void 0 && method.className !== classType.name && method.argCount === argCount - 2) {
+                unboundTypesHandler.argCount = argCount - 2;
+                unboundTypesHandler.className = classType.name;
+                proto[methodName] = unboundTypesHandler;
+              } else {
+                ensureOverloadTable(proto, methodName, humanName);
+                proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;
+              }
+              whenDependentTypesAreResolved([], rawArgTypes, function(argTypes) {
+                var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync);
+                if (proto[methodName].overloadTable === void 0) {
+                  memberFunction.argCount = argCount - 2;
+                  proto[methodName] = memberFunction;
+                } else {
+                  proto[methodName].overloadTable[argCount - 2] = memberFunction;
+                }
+                return [];
+              });
+              return [];
+            });
+          }
+          function handleAllocatorInit() {
+            Object.assign(HandleAllocator.prototype, { get(id) {
+              return this.allocated[id];
+            }, has(id) {
+              return this.allocated[id] !== void 0;
+            }, allocate(handle) {
+              var id = this.freelist.pop() || this.allocated.length;
+              this.allocated[id] = handle;
+              return id;
+            }, free(id) {
+              this.allocated[id] = void 0;
+              this.freelist.push(id);
+            } });
+          }
+          function HandleAllocator() {
+            this.allocated = [void 0];
+            this.freelist = [];
+          }
+          var emval_handles = new HandleAllocator();
+          function __emval_decref(handle) {
+            handle >>>= 0;
+            if (handle >= emval_handles.reserved && --emval_handles.get(handle).refcount === 0) {
+              emval_handles.free(handle);
+            }
+          }
+          function count_emval_handles() {
+            var count = 0;
+            for (var i = emval_handles.reserved; i < emval_handles.allocated.length; ++i) {
+              if (emval_handles.allocated[i] !== void 0) {
+                ++count;
+              }
+            }
+            return count;
+          }
+          function init_emval() {
+            emval_handles.allocated.push({ value: void 0 }, { value: null }, { value: true }, { value: false });
+            emval_handles.reserved = emval_handles.allocated.length;
+            Module["count_emval_handles"] = count_emval_handles;
+          }
+          var Emval = { toValue: (handle) => {
+            if (!handle) {
+              throwBindingError("Cannot use deleted val. handle = " + handle);
+            }
+            return emval_handles.get(handle).value;
+          }, toHandle: (value) => {
+            switch (value) {
+              case void 0:
+                return 1;
+              case null:
+                return 2;
+              case true:
+                return 3;
+              case false:
+                return 4;
+              default: {
+                return emval_handles.allocate({ refcount: 1, value });
+              }
+            }
+          } };
+          function __embind_register_emval(rawType, name) {
+            rawType >>>= 0;
+            name >>>= 0;
+            name = readLatin1String(name);
+            registerType(rawType, { name, "fromWireType": function(handle) {
+              var rv = Emval.toValue(handle);
+              __emval_decref(handle);
+              return rv;
+            }, "toWireType": function(destructors, value) {
+              return Emval.toHandle(value);
+            }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: null });
+          }
+          function enumReadValueFromPointer(name, shift, signed) {
+            switch (shift) {
+              case 0:
+                return function(pointer) {
+                  var heap = signed ? HEAP8 : HEAPU8;
+                  return this["fromWireType"](heap[pointer >>> 0]);
+                };
+              case 1:
+                return function(pointer) {
+                  var heap = signed ? HEAP16 : HEAPU16;
+                  return this["fromWireType"](heap[pointer >>> 1]);
+                };
+              case 2:
+                return function(pointer) {
+                  var heap = signed ? HEAP32 : HEAPU32;
+                  return this["fromWireType"](heap[pointer >>> 2]);
+                };
+              default:
+                throw new TypeError("Unknown integer type: " + name);
+            }
+          }
+          function __embind_register_enum(rawType, name, size, isSigned) {
+            rawType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+            var shift = getShiftFromSize(size);
+            name = readLatin1String(name);
+            function ctor() {
+            }
+            ctor.values = {};
+            registerType(rawType, { name, constructor: ctor, "fromWireType": function(c) {
+              return this.constructor.values[c];
+            }, "toWireType": function(destructors, c) {
+              return c.value;
+            }, "argPackAdvance": 8, "readValueFromPointer": enumReadValueFromPointer(name, shift, isSigned), destructorFunction: null });
+            exposePublicSymbol(name, ctor);
+          }
+          function requireRegisteredType(rawType, humanName) {
+            var impl = registeredTypes[rawType];
+            if (impl === void 0) {
+              throwBindingError(humanName + " has unknown type " + getTypeName(rawType));
+            }
+            return impl;
+          }
+          function __embind_register_enum_value(rawEnumType, name, enumValue) {
+            rawEnumType >>>= 0;
+            name >>>= 0;
+            enumValue >>>= 0;
+            var enumType = requireRegisteredType(rawEnumType, "enum");
+            name = readLatin1String(name);
+            var Enum = enumType.constructor;
+            var Value = Object.create(enumType.constructor.prototype, { value: { value: enumValue }, constructor: { value: createNamedFunction(`${enumType.name}_${name}`, function() {
+            }) } });
+            Enum.values[enumValue] = Value;
+            Enum[name] = Value;
+          }
+          function embindRepr(v) {
+            if (v === null) {
+              return "null";
+            }
+            var t = typeof v;
+            if (t === "object" || t === "array" || t === "function") {
+              return v.toString();
+            } else {
+              return "" + v;
+            }
+          }
+          function floatReadValueFromPointer(name, shift) {
+            switch (shift) {
+              case 2:
+                return function(pointer) {
+                  return this["fromWireType"](HEAPF32[pointer >>> 2]);
+                };
+              case 3:
+                return function(pointer) {
+                  return this["fromWireType"](HEAPF64[pointer >>> 3]);
+                };
+              default:
+                throw new TypeError("Unknown float type: " + name);
+            }
+          }
+          function __embind_register_float(rawType, name, size) {
+            rawType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+            var shift = getShiftFromSize(size);
+            name = readLatin1String(name);
+            registerType(rawType, { name, "fromWireType": function(value) {
+              return value;
+            }, "toWireType": function(destructors, value) {
+              return value;
+            }, "argPackAdvance": 8, "readValueFromPointer": floatReadValueFromPointer(name, shift), destructorFunction: null });
+          }
+          function __embind_register_function(name, argCount, rawArgTypesAddr, signature, rawInvoker, fn, isAsync) {
+            name >>>= 0;
+            rawArgTypesAddr >>>= 0;
+            signature >>>= 0;
+            rawInvoker >>>= 0;
+            fn >>>= 0;
+            var argTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
+            name = readLatin1String(name);
+            rawInvoker = embind__requireFunction(signature, rawInvoker);
+            exposePublicSymbol(name, function() {
+              throwUnboundTypeError(`Cannot call ${name} due to unbound types`, argTypes);
+            }, argCount - 1);
+            whenDependentTypesAreResolved([], argTypes, function(argTypes2) {
+              var invokerArgsArray = [argTypes2[0], null].concat(argTypes2.slice(1));
+              replacePublicSymbol(name, craftInvokerFunction(name, invokerArgsArray, null, rawInvoker, fn, isAsync), argCount - 1);
+              return [];
+            });
+          }
+          function integerReadValueFromPointer(name, shift, signed) {
+            switch (shift) {
+              case 0:
+                return signed ? function readS8FromPointer(pointer) {
+                  return HEAP8[pointer >>> 0];
+                } : function readU8FromPointer(pointer) {
+                  return HEAPU8[pointer >>> 0];
+                };
+              case 1:
+                return signed ? function readS16FromPointer(pointer) {
+                  return HEAP16[pointer >>> 1];
+                } : function readU16FromPointer(pointer) {
+                  return HEAPU16[pointer >>> 1];
+                };
+              case 2:
+                return signed ? function readS32FromPointer(pointer) {
+                  return HEAP32[pointer >>> 2];
+                } : function readU32FromPointer(pointer) {
+                  return HEAPU32[pointer >>> 2];
+                };
+              default:
+                throw new TypeError("Unknown integer type: " + name);
+            }
+          }
+          function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {
+            primitiveType >>>= 0;
+            name >>>= 0;
+            size >>>= 0;
+            name = readLatin1String(name);
+            if (maxRange === -1) {
+              maxRange = 4294967295;
+            }
+            var shift = getShiftFromSize(size);
+            var fromWireType = (value) => value;
+            if (minRange === 0) {
+              var bitshift = 32 - 8 * size;
+              fromWireType = (value) => value << bitshift >>> bitshift;
+            }
+            var isUnsignedType = name.includes("unsigned");
+            var checkAssertions = (value, toTypeName) => {
+            };
+            var toWireType;
+            if (isUnsignedType) {
+              toWireType = function(destructors, value) {
+                checkAssertions(value, this.name);
+                return value >>> 0;
+              };
+            } else {
+              toWireType = function(destructors, value) {
+                checkAssertions(value, this.name);
+                return value;
+              };
+            }
+            registerType(primitiveType, { name, "fromWireType": fromWireType, "toWireType": toWireType, "argPackAdvance": 8, "readValueFromPointer": integerReadValueFromPointer(name, shift, minRange !== 0), destructorFunction: null });
+          }
+          function __embind_register_memory_view(rawType, dataTypeIndex, name) {
+            rawType >>>= 0;
+            name >>>= 0;
+            var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];
+            var TA = typeMapping[dataTypeIndex];
+            function decodeMemoryView(handle) {
+              handle = handle >> 2;
+              var heap = HEAPU32;
+              var size = heap[handle >>> 0];
+              var data = heap[handle + 1 >>> 0];
+              return new TA(heap.buffer, data, size);
+            }
+            name = readLatin1String(name);
+            registerType(rawType, { name, "fromWireType": decodeMemoryView, "argPackAdvance": 8, "readValueFromPointer": decodeMemoryView }, { ignoreDuplicateRegistrations: true });
+          }
+          var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
+            outIdx >>>= 0;
+            if (!(maxBytesToWrite > 0))
+              return 0;
+            var startIdx = outIdx;
+            var endIdx = outIdx + maxBytesToWrite - 1;
+            for (var i = 0; i < str.length; ++i) {
+              var u = str.charCodeAt(i);
+              if (u >= 55296 && u <= 57343) {
+                var u1 = str.charCodeAt(++i);
+                u = 65536 + ((u & 1023) << 10) | u1 & 1023;
+              }
+              if (u <= 127) {
+                if (outIdx >= endIdx)
+                  break;
+                heap[outIdx++ >>> 0] = u;
+              } else if (u <= 2047) {
+                if (outIdx + 1 >= endIdx)
+                  break;
+                heap[outIdx++ >>> 0] = 192 | u >> 6;
+                heap[outIdx++ >>> 0] = 128 | u & 63;
+              } else if (u <= 65535) {
+                if (outIdx + 2 >= endIdx)
+                  break;
+                heap[outIdx++ >>> 0] = 224 | u >> 12;
+                heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;
+                heap[outIdx++ >>> 0] = 128 | u & 63;
+              } else {
+                if (outIdx + 3 >= endIdx)
+                  break;
+                heap[outIdx++ >>> 0] = 240 | u >> 18;
+                heap[outIdx++ >>> 0] = 128 | u >> 12 & 63;
+                heap[outIdx++ >>> 0] = 128 | u >> 6 & 63;
+                heap[outIdx++ >>> 0] = 128 | u & 63;
+              }
+            }
+            heap[outIdx >>> 0] = 0;
+            return outIdx - startIdx;
+          };
+          var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
+          var lengthBytesUTF8 = (str) => {
+            var len = 0;
+            for (var i = 0; i < str.length; ++i) {
+              var c = str.charCodeAt(i);
+              if (c <= 127) {
+                len++;
+              } else if (c <= 2047) {
+                len += 2;
+              } else if (c >= 55296 && c <= 57343) {
+                len += 4;
+                ++i;
+              } else {
+                len += 3;
+              }
+            }
+            return len;
+          };
+          var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0;
+          var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => {
+            idx >>>= 0;
+            var endIdx = idx + maxBytesToRead;
+            var endPtr = idx;
+            while (heapOrArray[endPtr] && !(endPtr >= endIdx))
+              ++endPtr;
+            if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
+              return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
+            }
+            var str = "";
+            while (idx < endPtr) {
+              var u0 = heapOrArray[idx++];
+              if (!(u0 & 128)) {
+                str += String.fromCharCode(u0);
+                continue;
+              }
+              var u1 = heapOrArray[idx++] & 63;
+              if ((u0 & 224) == 192) {
+                str += String.fromCharCode((u0 & 31) << 6 | u1);
+                continue;
+              }
+              var u2 = heapOrArray[idx++] & 63;
+              if ((u0 & 240) == 224) {
+                u0 = (u0 & 15) << 12 | u1 << 6 | u2;
+              } else {
+                u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
+              }
+              if (u0 < 65536) {
+                str += String.fromCharCode(u0);
+              } else {
+                var ch = u0 - 65536;
+                str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
+              }
+            }
+            return str;
+          };
+          var UTF8ToString = (ptr, maxBytesToRead) => {
+            ptr >>>= 0;
+            return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
+          };
+          function __embind_register_std_string(rawType, name) {
+            rawType >>>= 0;
+            name >>>= 0;
+            name = readLatin1String(name);
+            var stdStringIsUTF8 = name === "std::string";
+            registerType(rawType, { name, "fromWireType": function(value) {
+              var length = HEAPU32[value >>> 2];
+              var payload = value + 4;
+              var str;
+              if (stdStringIsUTF8) {
+                var decodeStartPtr = payload;
+                for (var i = 0; i <= length; ++i) {
+                  var currentBytePtr = payload + i;
+                  if (i == length || HEAPU8[currentBytePtr >>> 0] == 0) {
+                    var maxRead = currentBytePtr - decodeStartPtr;
+                    var stringSegment = UTF8ToString(decodeStartPtr, maxRead);
+                    if (str === void 0) {
+                      str = stringSegment;
+                    } else {
+                      str += String.fromCharCode(0);
+                      str += stringSegment;
+                    }
+                    decodeStartPtr = currentBytePtr + 1;
+                  }
+                }
+              } else {
+                var a = new Array(length);
+                for (var i = 0; i < length; ++i) {
+                  a[i] = String.fromCharCode(HEAPU8[payload + i >>> 0]);
+                }
+                str = a.join("");
+              }
+              _free(value);
+              return str;
+            }, "toWireType": function(destructors, value) {
+              if (value instanceof ArrayBuffer) {
+                value = new Uint8Array(value);
+              }
+              var length;
+              var valueIsOfTypeString = typeof value == "string";
+              if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {
+                throwBindingError("Cannot pass non-string to std::string");
+              }
+              if (stdStringIsUTF8 && valueIsOfTypeString) {
+                length = lengthBytesUTF8(value);
+              } else {
+                length = value.length;
+              }
+              var base = _malloc(4 + length + 1);
+              var ptr = base + 4;
+              HEAPU32[base >>> 2] = length;
+              if (stdStringIsUTF8 && valueIsOfTypeString) {
+                stringToUTF8(value, ptr, length + 1);
+              } else {
+                if (valueIsOfTypeString) {
+                  for (var i = 0; i < length; ++i) {
+                    var charCode = value.charCodeAt(i);
+                    if (charCode > 255) {
+                      _free(ptr);
+                      throwBindingError("String has UTF-16 code units that do not fit in 8 bits");
+                    }
+                    HEAPU8[ptr + i >>> 0] = charCode;
+                  }
+                } else {
+                  for (var i = 0; i < length; ++i) {
+                    HEAPU8[ptr + i >>> 0] = value[i];
+                  }
+                }
+              }
+              if (destructors !== null) {
+                destructors.push(_free, base);
+              }
+              return base;
+            }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) {
+              _free(ptr);
+            } });
+          }
+          var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : void 0;
+          var UTF16ToString = (ptr, maxBytesToRead) => {
+            var endPtr = ptr;
+            var idx = endPtr >> 1;
+            var maxIdx = idx + maxBytesToRead / 2;
+            while (!(idx >= maxIdx) && HEAPU16[idx >>> 0])
+              ++idx;
+            endPtr = idx << 1;
+            if (endPtr - ptr > 32 && UTF16Decoder)
+              return UTF16Decoder.decode(HEAPU8.subarray(ptr >>> 0, endPtr >>> 0));
+            var str = "";
+            for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {
+              var codeUnit = HEAP16[ptr + i * 2 >>> 1];
+              if (codeUnit == 0)
+                break;
+              str += String.fromCharCode(codeUnit);
+            }
+            return str;
+          };
+          var stringToUTF16 = (str, outPtr, maxBytesToWrite) => {
+            if (maxBytesToWrite === void 0) {
+              maxBytesToWrite = 2147483647;
+            }
+            if (maxBytesToWrite < 2)
+              return 0;
+            maxBytesToWrite -= 2;
+            var startPtr = outPtr;
+            var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
+            for (var i = 0; i < numCharsToWrite; ++i) {
+              var codeUnit = str.charCodeAt(i);
+              HEAP16[outPtr >>> 1] = codeUnit;
+              outPtr += 2;
+            }
+            HEAP16[outPtr >>> 1] = 0;
+            return outPtr - startPtr;
+          };
+          var lengthBytesUTF16 = (str) => str.length * 2;
+          var UTF32ToString = (ptr, maxBytesToRead) => {
+            var i = 0;
+            var str = "";
+            while (!(i >= maxBytesToRead / 4)) {
+              var utf32 = HEAP32[ptr + i * 4 >>> 2];
+              if (utf32 == 0)
+                break;
+              ++i;
+              if (utf32 >= 65536) {
+                var ch = utf32 - 65536;
+                str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
+              } else {
+                str += String.fromCharCode(utf32);
+              }
+            }
+            return str;
+          };
+          var stringToUTF32 = (str, outPtr, maxBytesToWrite) => {
+            outPtr >>>= 0;
+            if (maxBytesToWrite === void 0) {
+              maxBytesToWrite = 2147483647;
+            }
+            if (maxBytesToWrite < 4)
+              return 0;
+            var startPtr = outPtr;
+            var endPtr = startPtr + maxBytesToWrite - 4;
+            for (var i = 0; i < str.length; ++i) {
+              var codeUnit = str.charCodeAt(i);
+              if (codeUnit >= 55296 && codeUnit <= 57343) {
+                var trailSurrogate = str.charCodeAt(++i);
+                codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
+              }
+              HEAP32[outPtr >>> 2] = codeUnit;
+              outPtr += 4;
+              if (outPtr + 4 > endPtr)
+                break;
+            }
+            HEAP32[outPtr >>> 2] = 0;
+            return outPtr - startPtr;
+          };
+          var lengthBytesUTF32 = (str) => {
+            var len = 0;
+            for (var i = 0; i < str.length; ++i) {
+              var codeUnit = str.charCodeAt(i);
+              if (codeUnit >= 55296 && codeUnit <= 57343)
+                ++i;
+              len += 4;
+            }
+            return len;
+          };
+          var __embind_register_std_wstring = function(rawType, charSize, name) {
+            rawType >>>= 0;
+            charSize >>>= 0;
+            name >>>= 0;
+            name = readLatin1String(name);
+            var decodeString, encodeString, getHeap, lengthBytesUTF, shift;
+            if (charSize === 2) {
+              decodeString = UTF16ToString;
+              encodeString = stringToUTF16;
+              lengthBytesUTF = lengthBytesUTF16;
+              getHeap = () => HEAPU16;
+              shift = 1;
+            } else if (charSize === 4) {
+              decodeString = UTF32ToString;
+              encodeString = stringToUTF32;
+              lengthBytesUTF = lengthBytesUTF32;
+              getHeap = () => HEAPU32;
+              shift = 2;
+            }
+            registerType(rawType, { name, "fromWireType": function(value) {
+              var length = HEAPU32[value >>> 2];
+              var HEAP = getHeap();
+              var str;
+              var decodeStartPtr = value + 4;
+              for (var i = 0; i <= length; ++i) {
+                var currentBytePtr = value + 4 + i * charSize;
+                if (i == length || HEAP[currentBytePtr >>> shift] == 0) {
+                  var maxReadBytes = currentBytePtr - decodeStartPtr;
+                  var stringSegment = decodeString(decodeStartPtr, maxReadBytes);
+                  if (str === void 0) {
+                    str = stringSegment;
+                  } else {
+                    str += String.fromCharCode(0);
+                    str += stringSegment;
+                  }
+                  decodeStartPtr = currentBytePtr + charSize;
+                }
+              }
+              _free(value);
+              return str;
+            }, "toWireType": function(destructors, value) {
+              if (!(typeof value == "string")) {
+                throwBindingError(`Cannot pass non-string to C++ string type ${name}`);
+              }
+              var length = lengthBytesUTF(value);
+              var ptr = _malloc(4 + length + charSize);
+              HEAPU32[ptr >>> 2] = length >> shift;
+              encodeString(value, ptr + 4, length + charSize);
+              if (destructors !== null) {
+                destructors.push(_free, ptr);
+              }
+              return ptr;
+            }, "argPackAdvance": 8, "readValueFromPointer": simpleReadValueFromPointer, destructorFunction: function(ptr) {
+              _free(ptr);
+            } });
+          };
+          function __embind_register_value_array(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
+            rawType >>>= 0;
+            name >>>= 0;
+            constructorSignature >>>= 0;
+            rawConstructor >>>= 0;
+            destructorSignature >>>= 0;
+            rawDestructor >>>= 0;
+            tupleRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), elements: [] };
+          }
+          function __embind_register_value_array_element(rawTupleType, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {
+            rawTupleType >>>= 0;
+            getterReturnType >>>= 0;
+            getterSignature >>>= 0;
+            getter >>>= 0;
+            getterContext >>>= 0;
+            setterArgumentType >>>= 0;
+            setterSignature >>>= 0;
+            setter >>>= 0;
+            setterContext >>>= 0;
+            tupleRegistrations[rawTupleType].elements.push({ getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
+          }
+          function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
+            rawType >>>= 0;
+            name >>>= 0;
+            constructorSignature >>>= 0;
+            rawConstructor >>>= 0;
+            destructorSignature >>>= 0;
+            rawDestructor >>>= 0;
+            structRegistrations[rawType] = { name: readLatin1String(name), rawConstructor: embind__requireFunction(constructorSignature, rawConstructor), rawDestructor: embind__requireFunction(destructorSignature, rawDestructor), fields: [] };
+          }
+          function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {
+            structType >>>= 0;
+            fieldName >>>= 0;
+            getterReturnType >>>= 0;
+            getterSignature >>>= 0;
+            getter >>>= 0;
+            getterContext >>>= 0;
+            setterArgumentType >>>= 0;
+            setterSignature >>>= 0;
+            setter >>>= 0;
+            setterContext >>>= 0;
+            structRegistrations[structType].fields.push({ fieldName: readLatin1String(fieldName), getterReturnType, getter: embind__requireFunction(getterSignature, getter), getterContext, setterArgumentType, setter: embind__requireFunction(setterSignature, setter), setterContext });
+          }
+          function __embind_register_void(rawType, name) {
+            rawType >>>= 0;
+            name >>>= 0;
+            name = readLatin1String(name);
+            registerType(rawType, { isVoid: true, name, "argPackAdvance": 0, "fromWireType": function() {
+              return void 0;
+            }, "toWireType": function(destructors, o) {
+              return void 0;
+            } });
+          }
+          function __emval_as(handle, returnType, destructorsRef) {
+            handle >>>= 0;
+            returnType >>>= 0;
+            destructorsRef >>>= 0;
+            handle = Emval.toValue(handle);
+            returnType = requireRegisteredType(returnType, "emval::as");
+            var destructors = [];
+            var rd = Emval.toHandle(destructors);
+            HEAPU32[destructorsRef >>> 2] = rd;
+            return returnType["toWireType"](destructors, handle);
+          }
+          function emval_lookupTypes(argCount, argTypes) {
+            var a = new Array(argCount);
+            for (var i = 0; i < argCount; ++i) {
+              a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >>> 2], "parameter " + i);
+            }
+            return a;
+          }
+          function __emval_call(handle, argCount, argTypes, argv) {
+            handle >>>= 0;
+            argTypes >>>= 0;
+            argv >>>= 0;
+            handle = Emval.toValue(handle);
+            var types = emval_lookupTypes(argCount, argTypes);
+            var args = new Array(argCount);
+            for (var i = 0; i < argCount; ++i) {
+              var type = types[i];
+              args[i] = type["readValueFromPointer"](argv);
+              argv += type["argPackAdvance"];
+            }
+            var rv = handle.apply(void 0, args);
+            return Emval.toHandle(rv);
+          }
+          var emval_symbols = {};
+          function getStringOrSymbol(address) {
+            var symbol = emval_symbols[address];
+            if (symbol === void 0) {
+              return readLatin1String(address);
+            }
+            return symbol;
+          }
+          function emval_get_global() {
+            if (typeof globalThis == "object") {
+              return globalThis;
+            }
+            return (/* @__PURE__ */ function() {
+              return Function;
+            }())("return this")();
+          }
+          function __emval_get_global(name) {
+            name >>>= 0;
+            if (name === 0) {
+              return Emval.toHandle(emval_get_global());
+            } else {
+              name = getStringOrSymbol(name);
+              return Emval.toHandle(emval_get_global()[name]);
+            }
+          }
+          function __emval_get_property(handle, key) {
+            handle >>>= 0;
+            key >>>= 0;
+            handle = Emval.toValue(handle);
+            key = Emval.toValue(key);
+            return Emval.toHandle(handle[key]);
+          }
+          function __emval_incref(handle) {
+            handle >>>= 0;
+            if (handle > 4) {
+              emval_handles.get(handle).refcount += 1;
+            }
+          }
+          function __emval_instanceof(object, constructor) {
+            object >>>= 0;
+            constructor >>>= 0;
+            object = Emval.toValue(object);
+            constructor = Emval.toValue(constructor);
+            return object instanceof constructor;
+          }
+          function __emval_is_number(handle) {
+            handle >>>= 0;
+            handle = Emval.toValue(handle);
+            return typeof handle == "number";
+          }
+          function __emval_is_string(handle) {
+            handle >>>= 0;
+            handle = Emval.toValue(handle);
+            return typeof handle == "string";
+          }
+          function __emval_new_array() {
+            return Emval.toHandle([]);
+          }
+          function __emval_new_cstring(v) {
+            v >>>= 0;
+            return Emval.toHandle(getStringOrSymbol(v));
+          }
+          function __emval_new_object() {
+            return Emval.toHandle({});
+          }
+          function __emval_run_destructors(handle) {
+            handle >>>= 0;
+            var destructors = Emval.toValue(handle);
+            runDestructors(destructors);
+            __emval_decref(handle);
+          }
+          function __emval_set_property(handle, key, value) {
+            handle >>>= 0;
+            key >>>= 0;
+            value >>>= 0;
+            handle = Emval.toValue(handle);
+            key = Emval.toValue(key);
+            value = Emval.toValue(value);
+            handle[key] = value;
+          }
+          function __emval_take_value(type, arg) {
+            type >>>= 0;
+            arg >>>= 0;
+            type = requireRegisteredType(type, "_emval_take_value");
+            var v = type["readValueFromPointer"](arg);
+            return Emval.toHandle(v);
+          }
+          var _abort = () => {
+            abort("");
+          };
+          function _emscripten_memcpy_big(dest, src, num) {
+            dest >>>= 0;
+            src >>>= 0;
+            num >>>= 0;
+            return HEAPU8.copyWithin(dest >>> 0, src >>> 0, src + num >>> 0);
+          }
+          var getHeapMax = () => 4294901760;
+          var growMemory = (size) => {
+            var b = wasmMemory.buffer;
+            var pages = size - b.byteLength + 65535 >>> 16;
+            try {
+              wasmMemory.grow(pages);
+              updateMemoryViews();
+              return 1;
+            } catch (e) {
+            }
+          };
+          function _emscripten_resize_heap(requestedSize) {
+            requestedSize >>>= 0;
+            var oldSize = HEAPU8.length;
+            var maxHeapSize = getHeapMax();
+            if (requestedSize > maxHeapSize) {
+              return false;
+            }
+            var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;
+            for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
+              var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
+              overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
+              var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
+              var replacement = growMemory(newSize);
+              if (replacement) {
+                return true;
+              }
+            }
+            return false;
+          }
+          var ENV = {};
+          var getExecutableName = () => thisProgram || "./this.program";
+          var getEnvStrings = () => {
+            if (!getEnvStrings.strings) {
+              var lang = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8";
+              var env = { "USER": "web_user", "LOGNAME": "web_user", "PATH": "/", "PWD": "/", "HOME": "/home/web_user", "LANG": lang, "_": getExecutableName() };
+              for (var x in ENV) {
+                if (ENV[x] === void 0)
+                  delete env[x];
+                else
+                  env[x] = ENV[x];
+              }
+              var strings = [];
+              for (var x in env) {
+                strings.push(`${x}=${env[x]}`);
+              }
+              getEnvStrings.strings = strings;
+            }
+            return getEnvStrings.strings;
+          };
+          var stringToAscii = (str, buffer) => {
+            for (var i = 0; i < str.length; ++i) {
+              HEAP8[buffer++ >>> 0] = str.charCodeAt(i);
+            }
+            HEAP8[buffer >>> 0] = 0;
+          };
+          var PATH = { isAbs: (path) => path.charAt(0) === "/", splitPath: (filename) => {
+            var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
+            return splitPathRe.exec(filename).slice(1);
+          }, normalizeArray: (parts, allowAboveRoot) => {
+            var up = 0;
+            for (var i = parts.length - 1; i >= 0; i--) {
+              var last = parts[i];
+              if (last === ".") {
+                parts.splice(i, 1);
+              } else if (last === "..") {
+                parts.splice(i, 1);
+                up++;
+              } else if (up) {
+                parts.splice(i, 1);
+                up--;
+              }
+            }
+            if (allowAboveRoot) {
+              for (; up; up--) {
+                parts.unshift("..");
+              }
+            }
+            return parts;
+          }, normalize: (path) => {
+            var isAbsolute = PATH.isAbs(path), trailingSlash = path.substr(-1) === "/";
+            path = PATH.normalizeArray(path.split("/").filter((p) => !!p), !isAbsolute).join("/");
+            if (!path && !isAbsolute) {
+              path = ".";
+            }
+            if (path && trailingSlash) {
+              path += "/";
+            }
+            return (isAbsolute ? "/" : "") + path;
+          }, dirname: (path) => {
+            var result = PATH.splitPath(path), root = result[0], dir = result[1];
+            if (!root && !dir) {
+              return ".";
+            }
+            if (dir) {
+              dir = dir.substr(0, dir.length - 1);
+            }
+            return root + dir;
+          }, basename: (path) => {
+            if (path === "/")
+              return "/";
+            path = PATH.normalize(path);
+            path = path.replace(/\/$/, "");
+            var lastSlash = path.lastIndexOf("/");
+            if (lastSlash === -1)
+              return path;
+            return path.substr(lastSlash + 1);
+          }, join: function() {
+            var paths = Array.prototype.slice.call(arguments);
+            return PATH.normalize(paths.join("/"));
+          }, join2: (l, r) => PATH.normalize(l + "/" + r) };
+          var initRandomFill = () => {
+            if (typeof crypto == "object" && typeof crypto["getRandomValues"] == "function") {
+              return (view) => crypto.getRandomValues(view);
+            } else
+              abort("initRandomDevice");
+          };
+          var randomFill = (view) => (randomFill = initRandomFill())(view);
+          var PATH_FS = { resolve: function() {
+            var resolvedPath = "", resolvedAbsolute = false;
+            for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
+              var path = i >= 0 ? arguments[i] : FS.cwd();
+              if (typeof path != "string") {
+                throw new TypeError("Arguments to path.resolve must be strings");
+              } else if (!path) {
+                return "";
+              }
+              resolvedPath = path + "/" + resolvedPath;
+              resolvedAbsolute = PATH.isAbs(path);
+            }
+            resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((p) => !!p), !resolvedAbsolute).join("/");
+            return (resolvedAbsolute ? "/" : "") + resolvedPath || ".";
+          }, relative: (from, to) => {
+            from = PATH_FS.resolve(from).substr(1);
+            to = PATH_FS.resolve(to).substr(1);
+            function trim(arr) {
+              var start = 0;
+              for (; start < arr.length; start++) {
+                if (arr[start] !== "")
+                  break;
+              }
+              var end = arr.length - 1;
+              for (; end >= 0; end--) {
+                if (arr[end] !== "")
+                  break;
+              }
+              if (start > end)
+                return [];
+              return arr.slice(start, end - start + 1);
+            }
+            var fromParts = trim(from.split("/"));
+            var toParts = trim(to.split("/"));
+            var length = Math.min(fromParts.length, toParts.length);
+            var samePartsLength = length;
+            for (var i = 0; i < length; i++) {
+              if (fromParts[i] !== toParts[i]) {
+                samePartsLength = i;
+                break;
+              }
+            }
+            var outputParts = [];
+            for (var i = samePartsLength; i < fromParts.length; i++) {
+              outputParts.push("..");
+            }
+            outputParts = outputParts.concat(toParts.slice(samePartsLength));
+            return outputParts.join("/");
+          } };
+          var FS_stdin_getChar_buffer = [];
+          function intArrayFromString(stringy, dontAddNull, length) {
+            var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
+            var u8array = new Array(len);
+            var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
+            if (dontAddNull)
+              u8array.length = numBytesWritten;
+            return u8array;
+          }
+          var FS_stdin_getChar = () => {
+            if (!FS_stdin_getChar_buffer.length) {
+              var result = null;
+              if (typeof window != "undefined" && typeof window.prompt == "function") {
+                result = window.prompt("Input: ");
+                if (result !== null) {
+                  result += "\n";
+                }
+              } else if (typeof readline == "function") {
+                result = readline();
+                if (result !== null) {
+                  result += "\n";
+                }
+              }
+              if (!result) {
+                return null;
+              }
+              FS_stdin_getChar_buffer = intArrayFromString(result, true);
+            }
+            return FS_stdin_getChar_buffer.shift();
+          };
+          var TTY = { ttys: [], init: function() {
+          }, shutdown: function() {
+          }, register: function(dev, ops) {
+            TTY.ttys[dev] = { input: [], output: [], ops };
+            FS.registerDevice(dev, TTY.stream_ops);
+          }, stream_ops: { open: function(stream) {
+            var tty = TTY.ttys[stream.node.rdev];
+            if (!tty) {
+              throw new FS.ErrnoError(43);
+            }
+            stream.tty = tty;
+            stream.seekable = false;
+          }, close: function(stream) {
+            stream.tty.ops.fsync(stream.tty);
+          }, fsync: function(stream) {
+            stream.tty.ops.fsync(stream.tty);
+          }, read: function(stream, buffer, offset, length, pos) {
+            if (!stream.tty || !stream.tty.ops.get_char) {
+              throw new FS.ErrnoError(60);
+            }
+            var bytesRead = 0;
+            for (var i = 0; i < length; i++) {
+              var result;
+              try {
+                result = stream.tty.ops.get_char(stream.tty);
+              } catch (e) {
+                throw new FS.ErrnoError(29);
+              }
+              if (result === void 0 && bytesRead === 0) {
+                throw new FS.ErrnoError(6);
+              }
+              if (result === null || result === void 0)
+                break;
+              bytesRead++;
+              buffer[offset + i] = result;
+            }
+            if (bytesRead) {
+              stream.node.timestamp = Date.now();
+            }
+            return bytesRead;
+          }, write: function(stream, buffer, offset, length, pos) {
+            if (!stream.tty || !stream.tty.ops.put_char) {
+              throw new FS.ErrnoError(60);
+            }
+            try {
+              for (var i = 0; i < length; i++) {
+                stream.tty.ops.put_char(stream.tty, buffer[offset + i]);
+              }
+            } catch (e) {
+              throw new FS.ErrnoError(29);
+            }
+            if (length) {
+              stream.node.timestamp = Date.now();
+            }
+            return i;
+          } }, default_tty_ops: { get_char: function(tty) {
+            return FS_stdin_getChar();
+          }, put_char: function(tty, val) {
+            if (val === null || val === 10) {
+              out(UTF8ArrayToString(tty.output, 0));
+              tty.output = [];
+            } else {
+              if (val != 0)
+                tty.output.push(val);
+            }
+          }, fsync: function(tty) {
+            if (tty.output && tty.output.length > 0) {
+              out(UTF8ArrayToString(tty.output, 0));
+              tty.output = [];
+            }
+          }, ioctl_tcgets: function(tty) {
+            return { c_iflag: 25856, c_oflag: 5, c_cflag: 191, c_lflag: 35387, c_cc: [3, 28, 127, 21, 4, 0, 1, 0, 17, 19, 26, 0, 18, 15, 23, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] };
+          }, ioctl_tcsets: function(tty, optional_actions, data) {
+            return 0;
+          }, ioctl_tiocgwinsz: function(tty) {
+            return [24, 80];
+          } }, default_tty1_ops: { put_char: function(tty, val) {
+            if (val === null || val === 10) {
+              err(UTF8ArrayToString(tty.output, 0));
+              tty.output = [];
+            } else {
+              if (val != 0)
+                tty.output.push(val);
+            }
+          }, fsync: function(tty) {
+            if (tty.output && tty.output.length > 0) {
+              err(UTF8ArrayToString(tty.output, 0));
+              tty.output = [];
+            }
+          } } };
+          var mmapAlloc = (size) => {
+            abort();
+          };
+          var MEMFS = { ops_table: null, mount(mount) {
+            return MEMFS.createNode(null, "/", 16384 | 511, 0);
+          }, createNode(parent, name, mode, dev) {
+            if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
+              throw new FS.ErrnoError(63);
+            }
+            if (!MEMFS.ops_table) {
+              MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } };
+            }
+            var node = FS.createNode(parent, name, mode, dev);
+            if (FS.isDir(node.mode)) {
+              node.node_ops = MEMFS.ops_table.dir.node;
+              node.stream_ops = MEMFS.ops_table.dir.stream;
+              node.contents = {};
+            } else if (FS.isFile(node.mode)) {
+              node.node_ops = MEMFS.ops_table.file.node;
+              node.stream_ops = MEMFS.ops_table.file.stream;
+              node.usedBytes = 0;
+              node.contents = null;
+            } else if (FS.isLink(node.mode)) {
+              node.node_ops = MEMFS.ops_table.link.node;
+              node.stream_ops = MEMFS.ops_table.link.stream;
+            } else if (FS.isChrdev(node.mode)) {
+              node.node_ops = MEMFS.ops_table.chrdev.node;
+              node.stream_ops = MEMFS.ops_table.chrdev.stream;
+            }
+            node.timestamp = Date.now();
+            if (parent) {
+              parent.contents[name] = node;
+              parent.timestamp = node.timestamp;
+            }
+            return node;
+          }, getFileDataAsTypedArray(node) {
+            if (!node.contents)
+              return new Uint8Array(0);
+            if (node.contents.subarray)
+              return node.contents.subarray(0, node.usedBytes);
+            return new Uint8Array(node.contents);
+          }, expandFileStorage(node, newCapacity) {
+            var prevCapacity = node.contents ? node.contents.length : 0;
+            if (prevCapacity >= newCapacity)
+              return;
+            var CAPACITY_DOUBLING_MAX = 1024 * 1024;
+            newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);
+            if (prevCapacity != 0)
+              newCapacity = Math.max(newCapacity, 256);
+            var oldContents = node.contents;
+            node.contents = new Uint8Array(newCapacity);
+            if (node.usedBytes > 0)
+              node.contents.set(oldContents.subarray(0, node.usedBytes), 0);
+          }, resizeFileStorage(node, newSize) {
+            if (node.usedBytes == newSize)
+              return;
+            if (newSize == 0) {
+              node.contents = null;
+              node.usedBytes = 0;
+            } else {
+              var oldContents = node.contents;
+              node.contents = new Uint8Array(newSize);
+              if (oldContents) {
+                node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));
+              }
+              node.usedBytes = newSize;
+            }
+          }, node_ops: { getattr(node) {
+            var attr = {};
+            attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
+            attr.ino = node.id;
+            attr.mode = node.mode;
+            attr.nlink = 1;
+            attr.uid = 0;
+            attr.gid = 0;
+            attr.rdev = node.rdev;
+            if (FS.isDir(node.mode)) {
+              attr.size = 4096;
+            } else if (FS.isFile(node.mode)) {
+              attr.size = node.usedBytes;
+            } else if (FS.isLink(node.mode)) {
+              attr.size = node.link.length;
+            } else {
+              attr.size = 0;
+            }
+            attr.atime = new Date(node.timestamp);
+            attr.mtime = new Date(node.timestamp);
+            attr.ctime = new Date(node.timestamp);
+            attr.blksize = 4096;
+            attr.blocks = Math.ceil(attr.size / attr.blksize);
+            return attr;
+          }, setattr(node, attr) {
+            if (attr.mode !== void 0) {
+              node.mode = attr.mode;
+            }
+            if (attr.timestamp !== void 0) {
+              node.timestamp = attr.timestamp;
+            }
+            if (attr.size !== void 0) {
+              MEMFS.resizeFileStorage(node, attr.size);
+            }
+          }, lookup(parent, name) {
+            throw FS.genericErrors[44];
+          }, mknod(parent, name, mode, dev) {
+            return MEMFS.createNode(parent, name, mode, dev);
+          }, rename(old_node, new_dir, new_name) {
+            if (FS.isDir(old_node.mode)) {
+              var new_node;
+              try {
+                new_node = FS.lookupNode(new_dir, new_name);
+              } catch (e) {
+              }
+              if (new_node) {
+                for (var i in new_node.contents) {
+                  throw new FS.ErrnoError(55);
+                }
+              }
+            }
+            delete old_node.parent.contents[old_node.name];
+            old_node.parent.timestamp = Date.now();
+            old_node.name = new_name;
+            new_dir.contents[new_name] = old_node;
+            new_dir.timestamp = old_node.parent.timestamp;
+            old_node.parent = new_dir;
+          }, unlink(parent, name) {
+            delete parent.contents[name];
+            parent.timestamp = Date.now();
+          }, rmdir(parent, name) {
+            var node = FS.lookupNode(parent, name);
+            for (var i in node.contents) {
+              throw new FS.ErrnoError(55);
+            }
+            delete parent.contents[name];
+            parent.timestamp = Date.now();
+          }, readdir(node) {
+            var entries = [".", ".."];
+            for (var key in node.contents) {
+              if (!node.contents.hasOwnProperty(key)) {
+                continue;
+              }
+              entries.push(key);
+            }
+            return entries;
+          }, symlink(parent, newname, oldpath) {
+            var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);
+            node.link = oldpath;
+            return node;
+          }, readlink(node) {
+            if (!FS.isLink(node.mode)) {
+              throw new FS.ErrnoError(28);
+            }
+            return node.link;
+          } }, stream_ops: { read(stream, buffer, offset, length, position) {
+            var contents = stream.node.contents;
+            if (position >= stream.node.usedBytes)
+              return 0;
+            var size = Math.min(stream.node.usedBytes - position, length);
+            if (size > 8 && contents.subarray) {
+              buffer.set(contents.subarray(position, position + size), offset);
+            } else {
+              for (var i = 0; i < size; i++)
+                buffer[offset + i] = contents[position + i];
+            }
+            return size;
+          }, write(stream, buffer, offset, length, position, canOwn) {
+            if (buffer.buffer === HEAP8.buffer) {
+              canOwn = false;
+            }
+            if (!length)
+              return 0;
+            var node = stream.node;
+            node.timestamp = Date.now();
+            if (buffer.subarray && (!node.contents || node.contents.subarray)) {
+              if (canOwn) {
+                node.contents = buffer.subarray(offset, offset + length);
+                node.usedBytes = length;
+                return length;
+              } else if (node.usedBytes === 0 && position === 0) {
+                node.contents = buffer.slice(offset, offset + length);
+                node.usedBytes = length;
+                return length;
+              } else if (position + length <= node.usedBytes) {
+                node.contents.set(buffer.subarray(offset, offset + length), position);
+                return length;
+              }
+            }
+            MEMFS.expandFileStorage(node, position + length);
+            if (node.contents.subarray && buffer.subarray) {
+              node.contents.set(buffer.subarray(offset, offset + length), position);
+            } else {
+              for (var i = 0; i < length; i++) {
+                node.contents[position + i] = buffer[offset + i];
+              }
+            }
+            node.usedBytes = Math.max(node.usedBytes, position + length);
+            return length;
+          }, llseek(stream, offset, whence) {
+            var position = offset;
+            if (whence === 1) {
+              position += stream.position;
+            } else if (whence === 2) {
+              if (FS.isFile(stream.node.mode)) {
+                position += stream.node.usedBytes;
+              }
+            }
+            if (position < 0) {
+              throw new FS.ErrnoError(28);
+            }
+            return position;
+          }, allocate(stream, offset, length) {
+            MEMFS.expandFileStorage(stream.node, offset + length);
+            stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);
+          }, mmap(stream, length, position, prot, flags) {
+            if (!FS.isFile(stream.node.mode)) {
+              throw new FS.ErrnoError(43);
+            }
+            var ptr;
+            var allocated;
+            var contents = stream.node.contents;
+            if (!(flags & 2) && contents.buffer === HEAP8.buffer) {
+              allocated = false;
+              ptr = contents.byteOffset;
+            } else {
+              if (position > 0 || position + length < contents.length) {
+                if (contents.subarray) {
+                  contents = contents.subarray(position, position + length);
+                } else {
+                  contents = Array.prototype.slice.call(contents, position, position + length);
+                }
+              }
+              allocated = true;
+              ptr = mmapAlloc(length);
+              if (!ptr) {
+                throw new FS.ErrnoError(48);
+              }
+              HEAP8.set(contents, ptr >>> 0);
+            }
+            return { ptr, allocated };
+          }, msync(stream, buffer, offset, length, mmapFlags) {
+            MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);
+            return 0;
+          } } };
+          var asyncLoad = (url, onload, onerror, noRunDep) => {
+            var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : "";
+            readAsync(url, (arrayBuffer) => {
+              assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`);
+              onload(new Uint8Array(arrayBuffer));
+              if (dep)
+                removeRunDependency(dep);
+            }, (event) => {
+              if (onerror) {
+                onerror();
+              } else {
+                throw `Loading data file "${url}" failed.`;
+              }
+            });
+            if (dep)
+              addRunDependency(dep);
+          };
+          var preloadPlugins = Module["preloadPlugins"] || [];
+          function FS_handledByPreloadPlugin(byteArray, fullname, finish, onerror) {
+            if (typeof Browser != "undefined")
+              Browser.init();
+            var handled = false;
+            preloadPlugins.forEach(function(plugin) {
+              if (handled)
+                return;
+              if (plugin["canHandle"](fullname)) {
+                plugin["handle"](byteArray, fullname, finish, onerror);
+                handled = true;
+              }
+            });
+            return handled;
+          }
+          function FS_createPreloadedFile(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {
+            var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;
+            var dep = getUniqueRunDependency(`cp ${fullname}`);
+            function processData(byteArray) {
+              function finish(byteArray2) {
+                if (preFinish)
+                  preFinish();
+                if (!dontCreateFile) {
+                  FS.createDataFile(parent, name, byteArray2, canRead, canWrite, canOwn);
+                }
+                if (onload)
+                  onload();
+                removeRunDependency(dep);
+              }
+              if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => {
+                if (onerror)
+                  onerror();
+                removeRunDependency(dep);
+              })) {
+                return;
+              }
+              finish(byteArray);
+            }
+            addRunDependency(dep);
+            if (typeof url == "string") {
+              asyncLoad(url, (byteArray) => processData(byteArray), onerror);
+            } else {
+              processData(url);
+            }
+          }
+          function FS_modeStringToFlags(str) {
+            var flagModes = { "r": 0, "r+": 2, "w": 512 | 64 | 1, "w+": 512 | 64 | 2, "a": 1024 | 64 | 1, "a+": 1024 | 64 | 2 };
+            var flags = flagModes[str];
+            if (typeof flags == "undefined") {
+              throw new Error(`Unknown file open mode: ${str}`);
+            }
+            return flags;
+          }
+          function FS_getMode(canRead, canWrite) {
+            var mode = 0;
+            if (canRead)
+              mode |= 292 | 73;
+            if (canWrite)
+              mode |= 146;
+            return mode;
+          }
+          var FS = { root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: (path, opts = {}) => {
+            path = PATH_FS.resolve(path);
+            if (!path)
+              return { path: "", node: null };
+            var defaults = { follow_mount: true, recurse_count: 0 };
+            opts = Object.assign(defaults, opts);
+            if (opts.recurse_count > 8) {
+              throw new FS.ErrnoError(32);
+            }
+            var parts = path.split("/").filter((p) => !!p);
+            var current = FS.root;
+            var current_path = "/";
+            for (var i = 0; i < parts.length; i++) {
+              var islast = i === parts.length - 1;
+              if (islast && opts.parent) {
+                break;
+              }
+              current = FS.lookupNode(current, parts[i]);
+              current_path = PATH.join2(current_path, parts[i]);
+              if (FS.isMountpoint(current)) {
+                if (!islast || islast && opts.follow_mount) {
+                  current = current.mounted.root;
+                }
+              }
+              if (!islast || opts.follow) {
+                var count = 0;
+                while (FS.isLink(current.mode)) {
+                  var link = FS.readlink(current_path);
+                  current_path = PATH_FS.resolve(PATH.dirname(current_path), link);
+                  var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 });
+                  current = lookup.node;
+                  if (count++ > 40) {
+                    throw new FS.ErrnoError(32);
+                  }
+                }
+              }
+            }
+            return { path: current_path, node: current };
+          }, getPath: (node) => {
+            var path;
+            while (true) {
+              if (FS.isRoot(node)) {
+                var mount = node.mount.mountpoint;
+                if (!path)
+                  return mount;
+                return mount[mount.length - 1] !== "/" ? `${mount}/${path}` : mount + path;
+              }
+              path = path ? `${node.name}/${path}` : node.name;
+              node = node.parent;
+            }
+          }, hashName: (parentid, name) => {
+            var hash = 0;
+            for (var i = 0; i < name.length; i++) {
+              hash = (hash << 5) - hash + name.charCodeAt(i) | 0;
+            }
+            return (parentid + hash >>> 0) % FS.nameTable.length;
+          }, hashAddNode: (node) => {
+            var hash = FS.hashName(node.parent.id, node.name);
+            node.name_next = FS.nameTable[hash];
+            FS.nameTable[hash] = node;
+          }, hashRemoveNode: (node) => {
+            var hash = FS.hashName(node.parent.id, node.name);
+            if (FS.nameTable[hash] === node) {
+              FS.nameTable[hash] = node.name_next;
+            } else {
+              var current = FS.nameTable[hash];
+              while (current) {
+                if (current.name_next === node) {
+                  current.name_next = node.name_next;
+                  break;
+                }
+                current = current.name_next;
+              }
+            }
+          }, lookupNode: (parent, name) => {
+            var errCode = FS.mayLookup(parent);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode, parent);
+            }
+            var hash = FS.hashName(parent.id, name);
+            for (var node = FS.nameTable[hash]; node; node = node.name_next) {
+              var nodeName = node.name;
+              if (node.parent.id === parent.id && nodeName === name) {
+                return node;
+              }
+            }
+            return FS.lookup(parent, name);
+          }, createNode: (parent, name, mode, rdev) => {
+            var node = new FS.FSNode(parent, name, mode, rdev);
+            FS.hashAddNode(node);
+            return node;
+          }, destroyNode: (node) => {
+            FS.hashRemoveNode(node);
+          }, isRoot: (node) => node === node.parent, isMountpoint: (node) => !!node.mounted, isFile: (mode) => (mode & 61440) === 32768, isDir: (mode) => (mode & 61440) === 16384, isLink: (mode) => (mode & 61440) === 40960, isChrdev: (mode) => (mode & 61440) === 8192, isBlkdev: (mode) => (mode & 61440) === 24576, isFIFO: (mode) => (mode & 61440) === 4096, isSocket: (mode) => (mode & 49152) === 49152, flagsToPermissionString: (flag) => {
+            var perms = ["r", "w", "rw"][flag & 3];
+            if (flag & 512) {
+              perms += "w";
+            }
+            return perms;
+          }, nodePermissions: (node, perms) => {
+            if (FS.ignorePermissions) {
+              return 0;
+            }
+            if (perms.includes("r") && !(node.mode & 292)) {
+              return 2;
+            } else if (perms.includes("w") && !(node.mode & 146)) {
+              return 2;
+            } else if (perms.includes("x") && !(node.mode & 73)) {
+              return 2;
+            }
+            return 0;
+          }, mayLookup: (dir) => {
+            var errCode = FS.nodePermissions(dir, "x");
+            if (errCode)
+              return errCode;
+            if (!dir.node_ops.lookup)
+              return 2;
+            return 0;
+          }, mayCreate: (dir, name) => {
+            try {
+              var node = FS.lookupNode(dir, name);
+              return 20;
+            } catch (e) {
+            }
+            return FS.nodePermissions(dir, "wx");
+          }, mayDelete: (dir, name, isdir) => {
+            var node;
+            try {
+              node = FS.lookupNode(dir, name);
+            } catch (e) {
+              return e.errno;
+            }
+            var errCode = FS.nodePermissions(dir, "wx");
+            if (errCode) {
+              return errCode;
+            }
+            if (isdir) {
+              if (!FS.isDir(node.mode)) {
+                return 54;
+              }
+              if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
+                return 10;
+              }
+            } else {
+              if (FS.isDir(node.mode)) {
+                return 31;
+              }
+            }
+            return 0;
+          }, mayOpen: (node, flags) => {
+            if (!node) {
+              return 44;
+            }
+            if (FS.isLink(node.mode)) {
+              return 32;
+            } else if (FS.isDir(node.mode)) {
+              if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) {
+                return 31;
+              }
+            }
+            return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
+          }, MAX_OPEN_FDS: 4096, nextfd: () => {
+            for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) {
+              if (!FS.streams[fd]) {
+                return fd;
+              }
+            }
+            throw new FS.ErrnoError(33);
+          }, getStreamChecked: (fd) => {
+            var stream = FS.getStream(fd);
+            if (!stream) {
+              throw new FS.ErrnoError(8);
+            }
+            return stream;
+          }, getStream: (fd) => FS.streams[fd], createStream: (stream, fd = -1) => {
+            if (!FS.FSStream) {
+              FS.FSStream = function() {
+                this.shared = {};
+              };
+              FS.FSStream.prototype = {};
+              Object.defineProperties(FS.FSStream.prototype, { object: { get() {
+                return this.node;
+              }, set(val) {
+                this.node = val;
+              } }, isRead: { get() {
+                return (this.flags & 2097155) !== 1;
+              } }, isWrite: { get() {
+                return (this.flags & 2097155) !== 0;
+              } }, isAppend: { get() {
+                return this.flags & 1024;
+              } }, flags: { get() {
+                return this.shared.flags;
+              }, set(val) {
+                this.shared.flags = val;
+              } }, position: { get() {
+                return this.shared.position;
+              }, set(val) {
+                this.shared.position = val;
+              } } });
+            }
+            stream = Object.assign(new FS.FSStream(), stream);
+            if (fd == -1) {
+              fd = FS.nextfd();
+            }
+            stream.fd = fd;
+            FS.streams[fd] = stream;
+            return stream;
+          }, closeStream: (fd) => {
+            FS.streams[fd] = null;
+          }, chrdev_stream_ops: { open: (stream) => {
+            var device = FS.getDevice(stream.node.rdev);
+            stream.stream_ops = device.stream_ops;
+            if (stream.stream_ops.open) {
+              stream.stream_ops.open(stream);
+            }
+          }, llseek: () => {
+            throw new FS.ErrnoError(70);
+          } }, major: (dev) => dev >> 8, minor: (dev) => dev & 255, makedev: (ma, mi) => ma << 8 | mi, registerDevice: (dev, ops) => {
+            FS.devices[dev] = { stream_ops: ops };
+          }, getDevice: (dev) => FS.devices[dev], getMounts: (mount) => {
+            var mounts = [];
+            var check = [mount];
+            while (check.length) {
+              var m = check.pop();
+              mounts.push(m);
+              check.push.apply(check, m.mounts);
+            }
+            return mounts;
+          }, syncfs: (populate, callback) => {
+            if (typeof populate == "function") {
+              callback = populate;
+              populate = false;
+            }
+            FS.syncFSRequests++;
+            if (FS.syncFSRequests > 1) {
+              err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);
+            }
+            var mounts = FS.getMounts(FS.root.mount);
+            var completed = 0;
+            function doCallback(errCode) {
+              FS.syncFSRequests--;
+              return callback(errCode);
+            }
+            function done(errCode) {
+              if (errCode) {
+                if (!done.errored) {
+                  done.errored = true;
+                  return doCallback(errCode);
+                }
+                return;
+              }
+              if (++completed >= mounts.length) {
+                doCallback(null);
+              }
+            }
+            mounts.forEach((mount) => {
+              if (!mount.type.syncfs) {
+                return done(null);
+              }
+              mount.type.syncfs(mount, populate, done);
+            });
+          }, mount: (type, opts, mountpoint) => {
+            var root = mountpoint === "/";
+            var pseudo = !mountpoint;
+            var node;
+            if (root && FS.root) {
+              throw new FS.ErrnoError(10);
+            } else if (!root && !pseudo) {
+              var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
+              mountpoint = lookup.path;
+              node = lookup.node;
+              if (FS.isMountpoint(node)) {
+                throw new FS.ErrnoError(10);
+              }
+              if (!FS.isDir(node.mode)) {
+                throw new FS.ErrnoError(54);
+              }
+            }
+            var mount = { type, opts, mountpoint, mounts: [] };
+            var mountRoot = type.mount(mount);
+            mountRoot.mount = mount;
+            mount.root = mountRoot;
+            if (root) {
+              FS.root = mountRoot;
+            } else if (node) {
+              node.mounted = mount;
+              if (node.mount) {
+                node.mount.mounts.push(mount);
+              }
+            }
+            return mountRoot;
+          }, unmount: (mountpoint) => {
+            var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
+            if (!FS.isMountpoint(lookup.node)) {
+              throw new FS.ErrnoError(28);
+            }
+            var node = lookup.node;
+            var mount = node.mounted;
+            var mounts = FS.getMounts(mount);
+            Object.keys(FS.nameTable).forEach((hash) => {
+              var current = FS.nameTable[hash];
+              while (current) {
+                var next = current.name_next;
+                if (mounts.includes(current.mount)) {
+                  FS.destroyNode(current);
+                }
+                current = next;
+              }
+            });
+            node.mounted = null;
+            var idx = node.mount.mounts.indexOf(mount);
+            node.mount.mounts.splice(idx, 1);
+          }, lookup: (parent, name) => parent.node_ops.lookup(parent, name), mknod: (path, mode, dev) => {
+            var lookup = FS.lookupPath(path, { parent: true });
+            var parent = lookup.node;
+            var name = PATH.basename(path);
+            if (!name || name === "." || name === "..") {
+              throw new FS.ErrnoError(28);
+            }
+            var errCode = FS.mayCreate(parent, name);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!parent.node_ops.mknod) {
+              throw new FS.ErrnoError(63);
+            }
+            return parent.node_ops.mknod(parent, name, mode, dev);
+          }, create: (path, mode) => {
+            mode = mode !== void 0 ? mode : 438;
+            mode &= 4095;
+            mode |= 32768;
+            return FS.mknod(path, mode, 0);
+          }, mkdir: (path, mode) => {
+            mode = mode !== void 0 ? mode : 511;
+            mode &= 511 | 512;
+            mode |= 16384;
+            return FS.mknod(path, mode, 0);
+          }, mkdirTree: (path, mode) => {
+            var dirs = path.split("/");
+            var d = "";
+            for (var i = 0; i < dirs.length; ++i) {
+              if (!dirs[i])
+                continue;
+              d += "/" + dirs[i];
+              try {
+                FS.mkdir(d, mode);
+              } catch (e) {
+                if (e.errno != 20)
+                  throw e;
+              }
+            }
+          }, mkdev: (path, mode, dev) => {
+            if (typeof dev == "undefined") {
+              dev = mode;
+              mode = 438;
+            }
+            mode |= 8192;
+            return FS.mknod(path, mode, dev);
+          }, symlink: (oldpath, newpath) => {
+            if (!PATH_FS.resolve(oldpath)) {
+              throw new FS.ErrnoError(44);
+            }
+            var lookup = FS.lookupPath(newpath, { parent: true });
+            var parent = lookup.node;
+            if (!parent) {
+              throw new FS.ErrnoError(44);
+            }
+            var newname = PATH.basename(newpath);
+            var errCode = FS.mayCreate(parent, newname);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!parent.node_ops.symlink) {
+              throw new FS.ErrnoError(63);
+            }
+            return parent.node_ops.symlink(parent, newname, oldpath);
+          }, rename: (old_path, new_path) => {
+            var old_dirname = PATH.dirname(old_path);
+            var new_dirname = PATH.dirname(new_path);
+            var old_name = PATH.basename(old_path);
+            var new_name = PATH.basename(new_path);
+            var lookup, old_dir, new_dir;
+            lookup = FS.lookupPath(old_path, { parent: true });
+            old_dir = lookup.node;
+            lookup = FS.lookupPath(new_path, { parent: true });
+            new_dir = lookup.node;
+            if (!old_dir || !new_dir)
+              throw new FS.ErrnoError(44);
+            if (old_dir.mount !== new_dir.mount) {
+              throw new FS.ErrnoError(75);
+            }
+            var old_node = FS.lookupNode(old_dir, old_name);
+            var relative = PATH_FS.relative(old_path, new_dirname);
+            if (relative.charAt(0) !== ".") {
+              throw new FS.ErrnoError(28);
+            }
+            relative = PATH_FS.relative(new_path, old_dirname);
+            if (relative.charAt(0) !== ".") {
+              throw new FS.ErrnoError(55);
+            }
+            var new_node;
+            try {
+              new_node = FS.lookupNode(new_dir, new_name);
+            } catch (e) {
+            }
+            if (old_node === new_node) {
+              return;
+            }
+            var isdir = FS.isDir(old_node.mode);
+            var errCode = FS.mayDelete(old_dir, old_name, isdir);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!old_dir.node_ops.rename) {
+              throw new FS.ErrnoError(63);
+            }
+            if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {
+              throw new FS.ErrnoError(10);
+            }
+            if (new_dir !== old_dir) {
+              errCode = FS.nodePermissions(old_dir, "w");
+              if (errCode) {
+                throw new FS.ErrnoError(errCode);
+              }
+            }
+            FS.hashRemoveNode(old_node);
+            try {
+              old_dir.node_ops.rename(old_node, new_dir, new_name);
+            } catch (e) {
+              throw e;
+            } finally {
+              FS.hashAddNode(old_node);
+            }
+          }, rmdir: (path) => {
+            var lookup = FS.lookupPath(path, { parent: true });
+            var parent = lookup.node;
+            var name = PATH.basename(path);
+            var node = FS.lookupNode(parent, name);
+            var errCode = FS.mayDelete(parent, name, true);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!parent.node_ops.rmdir) {
+              throw new FS.ErrnoError(63);
+            }
+            if (FS.isMountpoint(node)) {
+              throw new FS.ErrnoError(10);
+            }
+            parent.node_ops.rmdir(parent, name);
+            FS.destroyNode(node);
+          }, readdir: (path) => {
+            var lookup = FS.lookupPath(path, { follow: true });
+            var node = lookup.node;
+            if (!node.node_ops.readdir) {
+              throw new FS.ErrnoError(54);
+            }
+            return node.node_ops.readdir(node);
+          }, unlink: (path) => {
+            var lookup = FS.lookupPath(path, { parent: true });
+            var parent = lookup.node;
+            if (!parent) {
+              throw new FS.ErrnoError(44);
+            }
+            var name = PATH.basename(path);
+            var node = FS.lookupNode(parent, name);
+            var errCode = FS.mayDelete(parent, name, false);
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            if (!parent.node_ops.unlink) {
+              throw new FS.ErrnoError(63);
+            }
+            if (FS.isMountpoint(node)) {
+              throw new FS.ErrnoError(10);
+            }
+            parent.node_ops.unlink(parent, name);
+            FS.destroyNode(node);
+          }, readlink: (path) => {
+            var lookup = FS.lookupPath(path);
+            var link = lookup.node;
+            if (!link) {
+              throw new FS.ErrnoError(44);
+            }
+            if (!link.node_ops.readlink) {
+              throw new FS.ErrnoError(28);
+            }
+            return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));
+          }, stat: (path, dontFollow) => {
+            var lookup = FS.lookupPath(path, { follow: !dontFollow });
+            var node = lookup.node;
+            if (!node) {
+              throw new FS.ErrnoError(44);
+            }
+            if (!node.node_ops.getattr) {
+              throw new FS.ErrnoError(63);
+            }
+            return node.node_ops.getattr(node);
+          }, lstat: (path) => FS.stat(path, true), chmod: (path, mode, dontFollow) => {
+            var node;
+            if (typeof path == "string") {
+              var lookup = FS.lookupPath(path, { follow: !dontFollow });
+              node = lookup.node;
+            } else {
+              node = path;
+            }
+            if (!node.node_ops.setattr) {
+              throw new FS.ErrnoError(63);
+            }
+            node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });
+          }, lchmod: (path, mode) => {
+            FS.chmod(path, mode, true);
+          }, fchmod: (fd, mode) => {
+            var stream = FS.getStreamChecked(fd);
+            FS.chmod(stream.node, mode);
+          }, chown: (path, uid, gid, dontFollow) => {
+            var node;
+            if (typeof path == "string") {
+              var lookup = FS.lookupPath(path, { follow: !dontFollow });
+              node = lookup.node;
+            } else {
+              node = path;
+            }
+            if (!node.node_ops.setattr) {
+              throw new FS.ErrnoError(63);
+            }
+            node.node_ops.setattr(node, { timestamp: Date.now() });
+          }, lchown: (path, uid, gid) => {
+            FS.chown(path, uid, gid, true);
+          }, fchown: (fd, uid, gid) => {
+            var stream = FS.getStreamChecked(fd);
+            FS.chown(stream.node, uid, gid);
+          }, truncate: (path, len) => {
+            if (len < 0) {
+              throw new FS.ErrnoError(28);
+            }
+            var node;
+            if (typeof path == "string") {
+              var lookup = FS.lookupPath(path, { follow: true });
+              node = lookup.node;
+            } else {
+              node = path;
+            }
+            if (!node.node_ops.setattr) {
+              throw new FS.ErrnoError(63);
+            }
+            if (FS.isDir(node.mode)) {
+              throw new FS.ErrnoError(31);
+            }
+            if (!FS.isFile(node.mode)) {
+              throw new FS.ErrnoError(28);
+            }
+            var errCode = FS.nodePermissions(node, "w");
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            node.node_ops.setattr(node, { size: len, timestamp: Date.now() });
+          }, ftruncate: (fd, len) => {
+            var stream = FS.getStreamChecked(fd);
+            if ((stream.flags & 2097155) === 0) {
+              throw new FS.ErrnoError(28);
+            }
+            FS.truncate(stream.node, len);
+          }, utime: (path, atime, mtime) => {
+            var lookup = FS.lookupPath(path, { follow: true });
+            var node = lookup.node;
+            node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });
+          }, open: (path, flags, mode) => {
+            if (path === "") {
+              throw new FS.ErrnoError(44);
+            }
+            flags = typeof flags == "string" ? FS_modeStringToFlags(flags) : flags;
+            mode = typeof mode == "undefined" ? 438 : mode;
+            if (flags & 64) {
+              mode = mode & 4095 | 32768;
+            } else {
+              mode = 0;
+            }
+            var node;
+            if (typeof path == "object") {
+              node = path;
+            } else {
+              path = PATH.normalize(path);
+              try {
+                var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });
+                node = lookup.node;
+              } catch (e) {
+              }
+            }
+            var created = false;
+            if (flags & 64) {
+              if (node) {
+                if (flags & 128) {
+                  throw new FS.ErrnoError(20);
+                }
+              } else {
+                node = FS.mknod(path, mode, 0);
+                created = true;
+              }
+            }
+            if (!node) {
+              throw new FS.ErrnoError(44);
+            }
+            if (FS.isChrdev(node.mode)) {
+              flags &= ~512;
+            }
+            if (flags & 65536 && !FS.isDir(node.mode)) {
+              throw new FS.ErrnoError(54);
+            }
+            if (!created) {
+              var errCode = FS.mayOpen(node, flags);
+              if (errCode) {
+                throw new FS.ErrnoError(errCode);
+              }
+            }
+            if (flags & 512 && !created) {
+              FS.truncate(node, 0);
+            }
+            flags &= ~(128 | 512 | 131072);
+            var stream = FS.createStream({ node, path: FS.getPath(node), flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false });
+            if (stream.stream_ops.open) {
+              stream.stream_ops.open(stream);
+            }
+            if (Module["logReadFiles"] && !(flags & 1)) {
+              if (!FS.readFiles)
+                FS.readFiles = {};
+              if (!(path in FS.readFiles)) {
+                FS.readFiles[path] = 1;
+              }
+            }
+            return stream;
+          }, close: (stream) => {
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if (stream.getdents)
+              stream.getdents = null;
+            try {
+              if (stream.stream_ops.close) {
+                stream.stream_ops.close(stream);
+              }
+            } catch (e) {
+              throw e;
+            } finally {
+              FS.closeStream(stream.fd);
+            }
+            stream.fd = null;
+          }, isClosed: (stream) => stream.fd === null, llseek: (stream, offset, whence) => {
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if (!stream.seekable || !stream.stream_ops.llseek) {
+              throw new FS.ErrnoError(70);
+            }
+            if (whence != 0 && whence != 1 && whence != 2) {
+              throw new FS.ErrnoError(28);
+            }
+            stream.position = stream.stream_ops.llseek(stream, offset, whence);
+            stream.ungotten = [];
+            return stream.position;
+          }, read: (stream, buffer, offset, length, position) => {
+            if (length < 0 || position < 0) {
+              throw new FS.ErrnoError(28);
+            }
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if ((stream.flags & 2097155) === 1) {
+              throw new FS.ErrnoError(8);
+            }
+            if (FS.isDir(stream.node.mode)) {
+              throw new FS.ErrnoError(31);
+            }
+            if (!stream.stream_ops.read) {
+              throw new FS.ErrnoError(28);
+            }
+            var seeking = typeof position != "undefined";
+            if (!seeking) {
+              position = stream.position;
+            } else if (!stream.seekable) {
+              throw new FS.ErrnoError(70);
+            }
+            var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
+            if (!seeking)
+              stream.position += bytesRead;
+            return bytesRead;
+          }, write: (stream, buffer, offset, length, position, canOwn) => {
+            if (length < 0 || position < 0) {
+              throw new FS.ErrnoError(28);
+            }
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if ((stream.flags & 2097155) === 0) {
+              throw new FS.ErrnoError(8);
+            }
+            if (FS.isDir(stream.node.mode)) {
+              throw new FS.ErrnoError(31);
+            }
+            if (!stream.stream_ops.write) {
+              throw new FS.ErrnoError(28);
+            }
+            if (stream.seekable && stream.flags & 1024) {
+              FS.llseek(stream, 0, 2);
+            }
+            var seeking = typeof position != "undefined";
+            if (!seeking) {
+              position = stream.position;
+            } else if (!stream.seekable) {
+              throw new FS.ErrnoError(70);
+            }
+            var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
+            if (!seeking)
+              stream.position += bytesWritten;
+            return bytesWritten;
+          }, allocate: (stream, offset, length) => {
+            if (FS.isClosed(stream)) {
+              throw new FS.ErrnoError(8);
+            }
+            if (offset < 0 || length <= 0) {
+              throw new FS.ErrnoError(28);
+            }
+            if ((stream.flags & 2097155) === 0) {
+              throw new FS.ErrnoError(8);
+            }
+            if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {
+              throw new FS.ErrnoError(43);
+            }
+            if (!stream.stream_ops.allocate) {
+              throw new FS.ErrnoError(138);
+            }
+            stream.stream_ops.allocate(stream, offset, length);
+          }, mmap: (stream, length, position, prot, flags) => {
+            if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {
+              throw new FS.ErrnoError(2);
+            }
+            if ((stream.flags & 2097155) === 1) {
+              throw new FS.ErrnoError(2);
+            }
+            if (!stream.stream_ops.mmap) {
+              throw new FS.ErrnoError(43);
+            }
+            return stream.stream_ops.mmap(stream, length, position, prot, flags);
+          }, msync: (stream, buffer, offset, length, mmapFlags) => {
+            if (!stream.stream_ops.msync) {
+              return 0;
+            }
+            return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);
+          }, munmap: (stream) => 0, ioctl: (stream, cmd, arg) => {
+            if (!stream.stream_ops.ioctl) {
+              throw new FS.ErrnoError(59);
+            }
+            return stream.stream_ops.ioctl(stream, cmd, arg);
+          }, readFile: (path, opts = {}) => {
+            opts.flags = opts.flags || 0;
+            opts.encoding = opts.encoding || "binary";
+            if (opts.encoding !== "utf8" && opts.encoding !== "binary") {
+              throw new Error(`Invalid encoding type "${opts.encoding}"`);
+            }
+            var ret;
+            var stream = FS.open(path, opts.flags);
+            var stat = FS.stat(path);
+            var length = stat.size;
+            var buf = new Uint8Array(length);
+            FS.read(stream, buf, 0, length, 0);
+            if (opts.encoding === "utf8") {
+              ret = UTF8ArrayToString(buf, 0);
+            } else if (opts.encoding === "binary") {
+              ret = buf;
+            }
+            FS.close(stream);
+            return ret;
+          }, writeFile: (path, data, opts = {}) => {
+            opts.flags = opts.flags || 577;
+            var stream = FS.open(path, opts.flags, opts.mode);
+            if (typeof data == "string") {
+              var buf = new Uint8Array(lengthBytesUTF8(data) + 1);
+              var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);
+              FS.write(stream, buf, 0, actualNumBytes, void 0, opts.canOwn);
+            } else if (ArrayBuffer.isView(data)) {
+              FS.write(stream, data, 0, data.byteLength, void 0, opts.canOwn);
+            } else {
+              throw new Error("Unsupported data type");
+            }
+            FS.close(stream);
+          }, cwd: () => FS.currentPath, chdir: (path) => {
+            var lookup = FS.lookupPath(path, { follow: true });
+            if (lookup.node === null) {
+              throw new FS.ErrnoError(44);
+            }
+            if (!FS.isDir(lookup.node.mode)) {
+              throw new FS.ErrnoError(54);
+            }
+            var errCode = FS.nodePermissions(lookup.node, "x");
+            if (errCode) {
+              throw new FS.ErrnoError(errCode);
+            }
+            FS.currentPath = lookup.path;
+          }, createDefaultDirectories: () => {
+            FS.mkdir("/tmp");
+            FS.mkdir("/home");
+            FS.mkdir("/home/web_user");
+          }, createDefaultDevices: () => {
+            FS.mkdir("/dev");
+            FS.registerDevice(FS.makedev(1, 3), { read: () => 0, write: (stream, buffer, offset, length, pos) => length });
+            FS.mkdev("/dev/null", FS.makedev(1, 3));
+            TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
+            TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
+            FS.mkdev("/dev/tty", FS.makedev(5, 0));
+            FS.mkdev("/dev/tty1", FS.makedev(6, 0));
+            var randomBuffer = new Uint8Array(1024), randomLeft = 0;
+            var randomByte = () => {
+              if (randomLeft === 0) {
+                randomLeft = randomFill(randomBuffer).byteLength;
+              }
+              return randomBuffer[--randomLeft];
+            };
+            FS.createDevice("/dev", "random", randomByte);
+            FS.createDevice("/dev", "urandom", randomByte);
+            FS.mkdir("/dev/shm");
+            FS.mkdir("/dev/shm/tmp");
+          }, createSpecialDirectories: () => {
+            FS.mkdir("/proc");
+            var proc_self = FS.mkdir("/proc/self");
+            FS.mkdir("/proc/self/fd");
+            FS.mount({ mount: () => {
+              var node = FS.createNode(proc_self, "fd", 16384 | 511, 73);
+              node.node_ops = { lookup: (parent, name) => {
+                var fd = +name;
+                var stream = FS.getStreamChecked(fd);
+                var ret = { parent: null, mount: { mountpoint: "fake" }, node_ops: { readlink: () => stream.path } };
+                ret.parent = ret;
+                return ret;
+              } };
+              return node;
+            } }, {}, "/proc/self/fd");
+          }, createStandardStreams: () => {
+            if (Module["stdin"]) {
+              FS.createDevice("/dev", "stdin", Module["stdin"]);
+            } else {
+              FS.symlink("/dev/tty", "/dev/stdin");
+            }
+            if (Module["stdout"]) {
+              FS.createDevice("/dev", "stdout", null, Module["stdout"]);
+            } else {
+              FS.symlink("/dev/tty", "/dev/stdout");
+            }
+            if (Module["stderr"]) {
+              FS.createDevice("/dev", "stderr", null, Module["stderr"]);
+            } else {
+              FS.symlink("/dev/tty1", "/dev/stderr");
+            }
+            var stdin = FS.open("/dev/stdin", 0);
+            var stdout = FS.open("/dev/stdout", 1);
+            var stderr = FS.open("/dev/stderr", 1);
+          }, ensureErrnoError: () => {
+            if (FS.ErrnoError)
+              return;
+            FS.ErrnoError = function ErrnoError(errno, node) {
+              this.name = "ErrnoError";
+              this.node = node;
+              this.setErrno = function(errno2) {
+                this.errno = errno2;
+              };
+              this.setErrno(errno);
+              this.message = "FS error";
+            };
+            FS.ErrnoError.prototype = new Error();
+            FS.ErrnoError.prototype.constructor = FS.ErrnoError;
+            [44].forEach((code) => {
+              FS.genericErrors[code] = new FS.ErrnoError(code);
+              FS.genericErrors[code].stack = "";
+            });
+          }, staticInit: () => {
+            FS.ensureErrnoError();
+            FS.nameTable = new Array(4096);
+            FS.mount(MEMFS, {}, "/");
+            FS.createDefaultDirectories();
+            FS.createDefaultDevices();
+            FS.createSpecialDirectories();
+            FS.filesystems = { "MEMFS": MEMFS };
+          }, init: (input, output, error) => {
+            FS.init.initialized = true;
+            FS.ensureErrnoError();
+            Module["stdin"] = input || Module["stdin"];
+            Module["stdout"] = output || Module["stdout"];
+            Module["stderr"] = error || Module["stderr"];
+            FS.createStandardStreams();
+          }, quit: () => {
+            FS.init.initialized = false;
+            for (var i = 0; i < FS.streams.length; i++) {
+              var stream = FS.streams[i];
+              if (!stream) {
+                continue;
+              }
+              FS.close(stream);
+            }
+          }, findObject: (path, dontResolveLastLink) => {
+            var ret = FS.analyzePath(path, dontResolveLastLink);
+            if (!ret.exists) {
+              return null;
+            }
+            return ret.object;
+          }, analyzePath: (path, dontResolveLastLink) => {
+            try {
+              var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+              path = lookup.path;
+            } catch (e) {
+            }
+            var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null };
+            try {
+              var lookup = FS.lookupPath(path, { parent: true });
+              ret.parentExists = true;
+              ret.parentPath = lookup.path;
+              ret.parentObject = lookup.node;
+              ret.name = PATH.basename(path);
+              lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
+              ret.exists = true;
+              ret.path = lookup.path;
+              ret.object = lookup.node;
+              ret.name = lookup.node.name;
+              ret.isRoot = lookup.path === "/";
+            } catch (e) {
+              ret.error = e.errno;
+            }
+            return ret;
+          }, createPath: (parent, path, canRead, canWrite) => {
+            parent = typeof parent == "string" ? parent : FS.getPath(parent);
+            var parts = path.split("/").reverse();
+            while (parts.length) {
+              var part = parts.pop();
+              if (!part)
+                continue;
+              var current = PATH.join2(parent, part);
+              try {
+                FS.mkdir(current);
+              } catch (e) {
+              }
+              parent = current;
+            }
+            return current;
+          }, createFile: (parent, name, properties, canRead, canWrite) => {
+            var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name);
+            var mode = FS_getMode(canRead, canWrite);
+            return FS.create(path, mode);
+          }, createDataFile: (parent, name, data, canRead, canWrite, canOwn) => {
+            var path = name;
+            if (parent) {
+              parent = typeof parent == "string" ? parent : FS.getPath(parent);
+              path = name ? PATH.join2(parent, name) : parent;
+            }
+            var mode = FS_getMode(canRead, canWrite);
+            var node = FS.create(path, mode);
+            if (data) {
+              if (typeof data == "string") {
+                var arr = new Array(data.length);
+                for (var i = 0, len = data.length; i < len; ++i)
+                  arr[i] = data.charCodeAt(i);
+                data = arr;
+              }
+              FS.chmod(node, mode | 146);
+              var stream = FS.open(node, 577);
+              FS.write(stream, data, 0, data.length, 0, canOwn);
+              FS.close(stream);
+              FS.chmod(node, mode);
+            }
+            return node;
+          }, createDevice: (parent, name, input, output) => {
+            var path = PATH.join2(typeof parent == "string" ? parent : FS.getPath(parent), name);
+            var mode = FS_getMode(!!input, !!output);
+            if (!FS.createDevice.major)
+              FS.createDevice.major = 64;
+            var dev = FS.makedev(FS.createDevice.major++, 0);
+            FS.registerDevice(dev, { open: (stream) => {
+              stream.seekable = false;
+            }, close: (stream) => {
+              if (output && output.buffer && output.buffer.length) {
+                output(10);
+              }
+            }, read: (stream, buffer, offset, length, pos) => {
+              var bytesRead = 0;
+              for (var i = 0; i < length; i++) {
+                var result;
+                try {
+                  result = input();
+                } catch (e) {
+                  throw new FS.ErrnoError(29);
+                }
+                if (result === void 0 && bytesRead === 0) {
+                  throw new FS.ErrnoError(6);
+                }
+                if (result === null || result === void 0)
+                  break;
+                bytesRead++;
+                buffer[offset + i] = result;
+              }
+              if (bytesRead) {
+                stream.node.timestamp = Date.now();
+              }
+              return bytesRead;
+            }, write: (stream, buffer, offset, length, pos) => {
+              for (var i = 0; i < length; i++) {
+                try {
+                  output(buffer[offset + i]);
+                } catch (e) {
+                  throw new FS.ErrnoError(29);
+                }
+              }
+              if (length) {
+                stream.node.timestamp = Date.now();
+              }
+              return i;
+            } });
+            return FS.mkdev(path, mode, dev);
+          }, forceLoadFile: (obj) => {
+            if (obj.isDevice || obj.isFolder || obj.link || obj.contents)
+              return true;
+            if (typeof XMLHttpRequest != "undefined") {
+              throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
+            } else if (read_) {
+              try {
+                obj.contents = intArrayFromString(read_(obj.url), true);
+                obj.usedBytes = obj.contents.length;
+              } catch (e) {
+                throw new FS.ErrnoError(29);
+              }
+            } else {
+              throw new Error("Cannot load without read() or XMLHttpRequest.");
+            }
+          }, createLazyFile: (parent, name, url, canRead, canWrite) => {
+            function LazyUint8Array() {
+              this.lengthKnown = false;
+              this.chunks = [];
+            }
+            LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
+              if (idx > this.length - 1 || idx < 0) {
+                return void 0;
+              }
+              var chunkOffset = idx % this.chunkSize;
+              var chunkNum = idx / this.chunkSize | 0;
+              return this.getter(chunkNum)[chunkOffset];
+            };
+            LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
+              this.getter = getter;
+            };
+            LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
+              var xhr = new XMLHttpRequest();
+              xhr.open("HEAD", url, false);
+              xhr.send(null);
+              if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304))
+                throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+              var datalength = Number(xhr.getResponseHeader("Content-length"));
+              var header;
+              var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
+              var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip";
+              var chunkSize = 1024 * 1024;
+              if (!hasByteServing)
+                chunkSize = datalength;
+              var doXHR = (from, to) => {
+                if (from > to)
+                  throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
+                if (to > datalength - 1)
+                  throw new Error("only " + datalength + " bytes available! programmer error!");
+                var xhr2 = new XMLHttpRequest();
+                xhr2.open("GET", url, false);
+                if (datalength !== chunkSize)
+                  xhr2.setRequestHeader("Range", "bytes=" + from + "-" + to);
+                xhr2.responseType = "arraybuffer";
+                if (xhr2.overrideMimeType) {
+                  xhr2.overrideMimeType("text/plain; charset=x-user-defined");
+                }
+                xhr2.send(null);
+                if (!(xhr2.status >= 200 && xhr2.status < 300 || xhr2.status === 304))
+                  throw new Error("Couldn't load " + url + ". Status: " + xhr2.status);
+                if (xhr2.response !== void 0) {
+                  return new Uint8Array(xhr2.response || []);
+                }
+                return intArrayFromString(xhr2.responseText || "", true);
+              };
+              var lazyArray2 = this;
+              lazyArray2.setDataGetter((chunkNum) => {
+                var start = chunkNum * chunkSize;
+                var end = (chunkNum + 1) * chunkSize - 1;
+                end = Math.min(end, datalength - 1);
+                if (typeof lazyArray2.chunks[chunkNum] == "undefined") {
+                  lazyArray2.chunks[chunkNum] = doXHR(start, end);
+                }
+                if (typeof lazyArray2.chunks[chunkNum] == "undefined")
+                  throw new Error("doXHR failed!");
+                return lazyArray2.chunks[chunkNum];
+              });
+              if (usesGzip || !datalength) {
+                chunkSize = datalength = 1;
+                datalength = this.getter(0).length;
+                chunkSize = datalength;
+                out("LazyFiles on gzip forces download of the whole file when length is accessed");
+              }
+              this._length = datalength;
+              this._chunkSize = chunkSize;
+              this.lengthKnown = true;
+            };
+            if (typeof XMLHttpRequest != "undefined") {
+              if (!ENVIRONMENT_IS_WORKER)
+                throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
+              var lazyArray = new LazyUint8Array();
+              Object.defineProperties(lazyArray, { length: { get: function() {
+                if (!this.lengthKnown) {
+                  this.cacheLength();
+                }
+                return this._length;
+              } }, chunkSize: { get: function() {
+                if (!this.lengthKnown) {
+                  this.cacheLength();
+                }
+                return this._chunkSize;
+              } } });
+              var properties = { isDevice: false, contents: lazyArray };
+            } else {
+              var properties = { isDevice: false, url };
+            }
+            var node = FS.createFile(parent, name, properties, canRead, canWrite);
+            if (properties.contents) {
+              node.contents = properties.contents;
+            } else if (properties.url) {
+              node.contents = null;
+              node.url = properties.url;
+            }
+            Object.defineProperties(node, { usedBytes: { get: function() {
+              return this.contents.length;
+            } } });
+            var stream_ops = {};
+            var keys = Object.keys(node.stream_ops);
+            keys.forEach((key) => {
+              var fn = node.stream_ops[key];
+              stream_ops[key] = function forceLoadLazyFile() {
+                FS.forceLoadFile(node);
+                return fn.apply(null, arguments);
+              };
+            });
+            function writeChunks(stream, buffer, offset, length, position) {
+              var contents = stream.node.contents;
+              if (position >= contents.length)
+                return 0;
+              var size = Math.min(contents.length - position, length);
+              if (contents.slice) {
+                for (var i = 0; i < size; i++) {
+                  buffer[offset + i] = contents[position + i];
+                }
+              } else {
+                for (var i = 0; i < size; i++) {
+                  buffer[offset + i] = contents.get(position + i);
+                }
+              }
+              return size;
+            }
+            stream_ops.read = (stream, buffer, offset, length, position) => {
+              FS.forceLoadFile(node);
+              return writeChunks(stream, buffer, offset, length, position);
+            };
+            stream_ops.mmap = (stream, length, position, prot, flags) => {
+              FS.forceLoadFile(node);
+              var ptr = mmapAlloc(length);
+              if (!ptr) {
+                throw new FS.ErrnoError(48);
+              }
+              writeChunks(stream, HEAP8, ptr, length, position);
+              return { ptr, allocated: true };
+            };
+            node.stream_ops = stream_ops;
+            return node;
+          } };
+          var SYSCALLS = { DEFAULT_POLLMASK: 5, calculateAt: function(dirfd, path, allowEmpty) {
+            if (PATH.isAbs(path)) {
+              return path;
+            }
+            var dir;
+            if (dirfd === -100) {
+              dir = FS.cwd();
+            } else {
+              var dirstream = SYSCALLS.getStreamFromFD(dirfd);
+              dir = dirstream.path;
+            }
+            if (path.length == 0) {
+              if (!allowEmpty) {
+                throw new FS.ErrnoError(44);
+              }
+              return dir;
+            }
+            return PATH.join2(dir, path);
+          }, doStat: function(func, path, buf) {
+            try {
+              var stat = func(path);
+            } catch (e) {
+              if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {
+                return -54;
+              }
+              throw e;
+            }
+            HEAP32[buf >>> 2] = stat.dev;
+            HEAP32[buf + 4 >>> 2] = stat.mode;
+            HEAPU32[buf + 8 >>> 2] = stat.nlink;
+            HEAP32[buf + 12 >>> 2] = stat.uid;
+            HEAP32[buf + 16 >>> 2] = stat.gid;
+            HEAP32[buf + 20 >>> 2] = stat.rdev;
+            tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 24 >>> 2] = tempI64[0], HEAP32[buf + 28 >>> 2] = tempI64[1];
+            HEAP32[buf + 32 >>> 2] = 4096;
+            HEAP32[buf + 36 >>> 2] = stat.blocks;
+            var atime = stat.atime.getTime();
+            var mtime = stat.mtime.getTime();
+            var ctime = stat.ctime.getTime();
+            tempI64 = [Math.floor(atime / 1e3) >>> 0, (tempDouble = Math.floor(atime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >>> 2] = tempI64[0], HEAP32[buf + 44 >>> 2] = tempI64[1];
+            HEAPU32[buf + 48 >>> 2] = atime % 1e3 * 1e3;
+            tempI64 = [Math.floor(mtime / 1e3) >>> 0, (tempDouble = Math.floor(mtime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 56 >>> 2] = tempI64[0], HEAP32[buf + 60 >>> 2] = tempI64[1];
+            HEAPU32[buf + 64 >>> 2] = mtime % 1e3 * 1e3;
+            tempI64 = [Math.floor(ctime / 1e3) >>> 0, (tempDouble = Math.floor(ctime / 1e3), +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 72 >>> 2] = tempI64[0], HEAP32[buf + 76 >>> 2] = tempI64[1];
+            HEAPU32[buf + 80 >>> 2] = ctime % 1e3 * 1e3;
+            tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 88 >>> 2] = tempI64[0], HEAP32[buf + 92 >>> 2] = tempI64[1];
+            return 0;
+          }, doMsync: function(addr, stream, len, flags, offset) {
+            if (!FS.isFile(stream.node.mode)) {
+              throw new FS.ErrnoError(43);
+            }
+            if (flags & 2) {
+              return 0;
+            }
+            var buffer = HEAPU8.slice(addr, addr + len);
+            FS.msync(stream, buffer, offset, len, flags);
+          }, varargs: void 0, get() {
+            SYSCALLS.varargs += 4;
+            var ret = HEAP32[SYSCALLS.varargs - 4 >>> 2];
+            return ret;
+          }, getStr(ptr) {
+            var ret = UTF8ToString(ptr);
+            return ret;
+          }, getStreamFromFD: function(fd) {
+            var stream = FS.getStreamChecked(fd);
+            return stream;
+          } };
+          function _environ_get(__environ, environ_buf) {
+            __environ >>>= 0;
+            environ_buf >>>= 0;
+            var bufSize = 0;
+            getEnvStrings().forEach(function(string, i) {
+              var ptr = environ_buf + bufSize;
+              HEAPU32[__environ + i * 4 >>> 2] = ptr;
+              stringToAscii(string, ptr);
+              bufSize += string.length + 1;
+            });
+            return 0;
+          }
+          function _environ_sizes_get(penviron_count, penviron_buf_size) {
+            penviron_count >>>= 0;
+            penviron_buf_size >>>= 0;
+            var strings = getEnvStrings();
+            HEAPU32[penviron_count >>> 2] = strings.length;
+            var bufSize = 0;
+            strings.forEach(function(string) {
+              bufSize += string.length + 1;
+            });
+            HEAPU32[penviron_buf_size >>> 2] = bufSize;
+            return 0;
+          }
+          function _fd_close(fd) {
+            try {
+              var stream = SYSCALLS.getStreamFromFD(fd);
+              FS.close(stream);
+              return 0;
+            } catch (e) {
+              if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
+                throw e;
+              return e.errno;
+            }
+          }
+          var doReadv = (stream, iov, iovcnt, offset) => {
+            var ret = 0;
+            for (var i = 0; i < iovcnt; i++) {
+              var ptr = HEAPU32[iov >>> 2];
+              var len = HEAPU32[iov + 4 >>> 2];
+              iov += 8;
+              var curr = FS.read(stream, HEAP8, ptr, len, offset);
+              if (curr < 0)
+                return -1;
+              ret += curr;
+              if (curr < len)
+                break;
+              if (typeof offset !== "undefined") {
+                offset += curr;
+              }
+            }
+            return ret;
+          };
+          function _fd_read(fd, iov, iovcnt, pnum) {
+            iov >>>= 0;
+            iovcnt >>>= 0;
+            pnum >>>= 0;
+            try {
+              var stream = SYSCALLS.getStreamFromFD(fd);
+              var num = doReadv(stream, iov, iovcnt);
+              HEAPU32[pnum >>> 2] = num;
+              return 0;
+            } catch (e) {
+              if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
+                throw e;
+              return e.errno;
+            }
+          }
+          function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
+            var offset = convertI32PairToI53Checked(offset_low, offset_high);
+            newOffset >>>= 0;
+            try {
+              if (isNaN(offset))
+                return 61;
+              var stream = SYSCALLS.getStreamFromFD(fd);
+              FS.llseek(stream, offset, whence);
+              tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? +Math.floor(tempDouble / 4294967296) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >>> 2] = tempI64[0], HEAP32[newOffset + 4 >>> 2] = tempI64[1];
+              if (stream.getdents && offset === 0 && whence === 0)
+                stream.getdents = null;
+              return 0;
+            } catch (e) {
+              if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
+                throw e;
+              return e.errno;
+            }
+          }
+          var doWritev = (stream, iov, iovcnt, offset) => {
+            var ret = 0;
+            for (var i = 0; i < iovcnt; i++) {
+              var ptr = HEAPU32[iov >>> 2];
+              var len = HEAPU32[iov + 4 >>> 2];
+              iov += 8;
+              var curr = FS.write(stream, HEAP8, ptr, len, offset);
+              if (curr < 0)
+                return -1;
+              ret += curr;
+              if (typeof offset !== "undefined") {
+                offset += curr;
+              }
+            }
+            return ret;
+          };
+          function _fd_write(fd, iov, iovcnt, pnum) {
+            iov >>>= 0;
+            iovcnt >>>= 0;
+            pnum >>>= 0;
+            try {
+              var stream = SYSCALLS.getStreamFromFD(fd);
+              var num = doWritev(stream, iov, iovcnt);
+              HEAPU32[pnum >>> 2] = num;
+              return 0;
+            } catch (e) {
+              if (typeof FS == "undefined" || !(e.name === "ErrnoError"))
+                throw e;
+              return e.errno;
+            }
+          }
+          var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
+          var arraySum = (array, index) => {
+            var sum = 0;
+            for (var i = 0; i <= index; sum += array[i++]) {
+            }
+            return sum;
+          };
+          var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+          var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
+          var addDays = (date, days) => {
+            var newDate = new Date(date.getTime());
+            while (days > 0) {
+              var leap = isLeapYear(newDate.getFullYear());
+              var currentMonth = newDate.getMonth();
+              var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth];
+              if (days > daysInCurrentMonth - newDate.getDate()) {
+                days -= daysInCurrentMonth - newDate.getDate() + 1;
+                newDate.setDate(1);
+                if (currentMonth < 11) {
+                  newDate.setMonth(currentMonth + 1);
+                } else {
+                  newDate.setMonth(0);
+                  newDate.setFullYear(newDate.getFullYear() + 1);
+                }
+              } else {
+                newDate.setDate(newDate.getDate() + days);
+                return newDate;
+              }
+            }
+            return newDate;
+          };
+          var writeArrayToMemory = (array, buffer) => {
+            HEAP8.set(array, buffer >>> 0);
+          };
+          function _strftime(s, maxsize, format, tm) {
+            s >>>= 0;
+            maxsize >>>= 0;
+            format >>>= 0;
+            tm >>>= 0;
+            var tm_zone = HEAP32[tm + 40 >>> 2];
+            var date = { tm_sec: HEAP32[tm >>> 2], tm_min: HEAP32[tm + 4 >>> 2], tm_hour: HEAP32[tm + 8 >>> 2], tm_mday: HEAP32[tm + 12 >>> 2], tm_mon: HEAP32[tm + 16 >>> 2], tm_year: HEAP32[tm + 20 >>> 2], tm_wday: HEAP32[tm + 24 >>> 2], tm_yday: HEAP32[tm + 28 >>> 2], tm_isdst: HEAP32[tm + 32 >>> 2], tm_gmtoff: HEAP32[tm + 36 >>> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : "" };
+            var pattern = UTF8ToString(format);
+            var EXPANSION_RULES_1 = { "%c": "%a %b %d %H:%M:%S %Y", "%D": "%m/%d/%y", "%F": "%Y-%m-%d", "%h": "%b", "%r": "%I:%M:%S %p", "%R": "%H:%M", "%T": "%H:%M:%S", "%x": "%m/%d/%y", "%X": "%H:%M:%S", "%Ec": "%c", "%EC": "%C", "%Ex": "%m/%d/%y", "%EX": "%H:%M:%S", "%Ey": "%y", "%EY": "%Y", "%Od": "%d", "%Oe": "%e", "%OH": "%H", "%OI": "%I", "%Om": "%m", "%OM": "%M", "%OS": "%S", "%Ou": "%u", "%OU": "%U", "%OV": "%V", "%Ow": "%w", "%OW": "%W", "%Oy": "%y" };
+            for (var rule in EXPANSION_RULES_1) {
+              pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]);
+            }
+            var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
+            var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
+            function leadingSomething(value, digits, character) {
+              var str = typeof value == "number" ? value.toString() : value || "";
+              while (str.length < digits) {
+                str = character[0] + str;
+              }
+              return str;
+            }
+            function leadingNulls(value, digits) {
+              return leadingSomething(value, digits, "0");
+            }
+            function compareByDay(date1, date2) {
+              function sgn(value) {
+                return value < 0 ? -1 : value > 0 ? 1 : 0;
+              }
+              var compare;
+              if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {
+                if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {
+                  compare = sgn(date1.getDate() - date2.getDate());
+                }
+              }
+              return compare;
+            }
+            function getFirstWeekStartDate(janFourth) {
+              switch (janFourth.getDay()) {
+                case 0:
+                  return new Date(janFourth.getFullYear() - 1, 11, 29);
+                case 1:
+                  return janFourth;
+                case 2:
+                  return new Date(janFourth.getFullYear(), 0, 3);
+                case 3:
+                  return new Date(janFourth.getFullYear(), 0, 2);
+                case 4:
+                  return new Date(janFourth.getFullYear(), 0, 1);
+                case 5:
+                  return new Date(janFourth.getFullYear() - 1, 11, 31);
+                case 6:
+                  return new Date(janFourth.getFullYear() - 1, 11, 30);
+              }
+            }
+            function getWeekBasedYear(date2) {
+              var thisDate = addDays(new Date(date2.tm_year + 1900, 0, 1), date2.tm_yday);
+              var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
+              var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);
+              var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
+              var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
+              if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
+                if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
+                  return thisDate.getFullYear() + 1;
+                }
+                return thisDate.getFullYear();
+              }
+              return thisDate.getFullYear() - 1;
+            }
+            var EXPANSION_RULES_2 = { "%a": (date2) => WEEKDAYS[date2.tm_wday].substring(0, 3), "%A": (date2) => WEEKDAYS[date2.tm_wday], "%b": (date2) => MONTHS[date2.tm_mon].substring(0, 3), "%B": (date2) => MONTHS[date2.tm_mon], "%C": (date2) => {
+              var year = date2.tm_year + 1900;
+              return leadingNulls(year / 100 | 0, 2);
+            }, "%d": (date2) => leadingNulls(date2.tm_mday, 2), "%e": (date2) => leadingSomething(date2.tm_mday, 2, " "), "%g": (date2) => getWeekBasedYear(date2).toString().substring(2), "%G": (date2) => getWeekBasedYear(date2), "%H": (date2) => leadingNulls(date2.tm_hour, 2), "%I": (date2) => {
+              var twelveHour = date2.tm_hour;
+              if (twelveHour == 0)
+                twelveHour = 12;
+              else if (twelveHour > 12)
+                twelveHour -= 12;
+              return leadingNulls(twelveHour, 2);
+            }, "%j": (date2) => leadingNulls(date2.tm_mday + arraySum(isLeapYear(date2.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date2.tm_mon - 1), 3), "%m": (date2) => leadingNulls(date2.tm_mon + 1, 2), "%M": (date2) => leadingNulls(date2.tm_min, 2), "%n": () => "\n", "%p": (date2) => {
+              if (date2.tm_hour >= 0 && date2.tm_hour < 12) {
+                return "AM";
+              }
+              return "PM";
+            }, "%S": (date2) => leadingNulls(date2.tm_sec, 2), "%t": () => "	", "%u": (date2) => date2.tm_wday || 7, "%U": (date2) => {
+              var days = date2.tm_yday + 7 - date2.tm_wday;
+              return leadingNulls(Math.floor(days / 7), 2);
+            }, "%V": (date2) => {
+              var val = Math.floor((date2.tm_yday + 7 - (date2.tm_wday + 6) % 7) / 7);
+              if ((date2.tm_wday + 371 - date2.tm_yday - 2) % 7 <= 2) {
+                val++;
+              }
+              if (!val) {
+                val = 52;
+                var dec31 = (date2.tm_wday + 7 - date2.tm_yday - 1) % 7;
+                if (dec31 == 4 || dec31 == 5 && isLeapYear(date2.tm_year % 400 - 1)) {
+                  val++;
+                }
+              } else if (val == 53) {
+                var jan1 = (date2.tm_wday + 371 - date2.tm_yday) % 7;
+                if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date2.tm_year)))
+                  val = 1;
+              }
+              return leadingNulls(val, 2);
+            }, "%w": (date2) => date2.tm_wday, "%W": (date2) => {
+              var days = date2.tm_yday + 7 - (date2.tm_wday + 6) % 7;
+              return leadingNulls(Math.floor(days / 7), 2);
+            }, "%y": (date2) => (date2.tm_year + 1900).toString().substring(2), "%Y": (date2) => date2.tm_year + 1900, "%z": (date2) => {
+              var off = date2.tm_gmtoff;
+              var ahead = off >= 0;
+              off = Math.abs(off) / 60;
+              off = off / 60 * 100 + off % 60;
+              return (ahead ? "+" : "-") + String("0000" + off).slice(-4);
+            }, "%Z": (date2) => date2.tm_zone, "%%": () => "%" };
+            pattern = pattern.replace(/%%/g, "\0\0");
+            for (var rule in EXPANSION_RULES_2) {
+              if (pattern.includes(rule)) {
+                pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date));
+              }
+            }
+            pattern = pattern.replace(/\0\0/g, "%");
+            var bytes = intArrayFromString(pattern, false);
+            if (bytes.length > maxsize) {
+              return 0;
+            }
+            writeArrayToMemory(bytes, s);
+            return bytes.length - 1;
+          }
+          function _strftime_l(s, maxsize, format, tm, loc) {
+            s >>>= 0;
+            maxsize >>>= 0;
+            format >>>= 0;
+            tm >>>= 0;
+            loc >>>= 0;
+            return _strftime(s, maxsize, format, tm);
+          }
+          InternalError = Module["InternalError"] = class InternalError extends Error {
+            constructor(message) {
+              super(message);
+              this.name = "InternalError";
+            }
+          };
+          embind_init_charCodes();
+          BindingError = Module["BindingError"] = class BindingError extends Error {
+            constructor(message) {
+              super(message);
+              this.name = "BindingError";
+            }
+          };
+          init_ClassHandle();
+          init_embind();
+          init_RegisteredPointer();
+          UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
+          handleAllocatorInit();
+          init_emval();
+          var FSNode = function(parent, name, mode, rdev) {
+            if (!parent) {
+              parent = this;
+            }
+            this.parent = parent;
+            this.mount = parent.mount;
+            this.mounted = null;
+            this.id = FS.nextInode++;
+            this.name = name;
+            this.mode = mode;
+            this.node_ops = {};
+            this.stream_ops = {};
+            this.rdev = rdev;
+          };
+          var readMode = 292 | 73;
+          var writeMode = 146;
+          Object.defineProperties(FSNode.prototype, { read: { get: function() {
+            return (this.mode & readMode) === readMode;
+          }, set: function(val) {
+            val ? this.mode |= readMode : this.mode &= ~readMode;
+          } }, write: { get: function() {
+            return (this.mode & writeMode) === writeMode;
+          }, set: function(val) {
+            val ? this.mode |= writeMode : this.mode &= ~writeMode;
+          } }, isFolder: { get: function() {
+            return FS.isDir(this.mode);
+          } }, isDevice: { get: function() {
+            return FS.isChrdev(this.mode);
+          } } });
+          FS.FSNode = FSNode;
+          FS.createPreloadedFile = FS_createPreloadedFile;
+          FS.staticInit();
+          var wasmImports = { g: ___cxa_throw, S: __embind_finalize_value_array, q: __embind_finalize_value_object, G: __embind_register_bigint, Q: __embind_register_bool, p: __embind_register_class, o: __embind_register_class_constructor, b: __embind_register_class_function, P: __embind_register_emval, C: __embind_register_enum, t: __embind_register_enum_value, A: __embind_register_float, c: __embind_register_function, s: __embind_register_integer, k: __embind_register_memory_view, B: __embind_register_std_string, x: __embind_register_std_wstring, T: __embind_register_value_array, l: __embind_register_value_array_element, r: __embind_register_value_object, e: __embind_register_value_object_field, R: __embind_register_void, j: __emval_as, v: __emval_call, a: __emval_decref, z: __emval_get_global, h: __emval_get_property, n: __emval_incref, E: __emval_instanceof, y: __emval_is_number, D: __emval_is_string, U: __emval_new_array, f: __emval_new_cstring, u: __emval_new_object, i: __emval_run_destructors, m: __emval_set_property, d: __emval_take_value, w: _abort, O: _emscripten_memcpy_big, M: _emscripten_resize_heap, I: _environ_get, J: _environ_sizes_get, K: _fd_close, L: _fd_read, F: _fd_seek, N: _fd_write, H: _strftime_l };
+          var asm = createWasm();
+          var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports["W"])();
+          var _malloc = (a0) => (_malloc = wasmExports["Y"])(a0);
+          var ___getTypeName = (a0) => (___getTypeName = wasmExports["Z"])(a0);
+          var __embind_initialize_bindings = Module["__embind_initialize_bindings"] = () => (__embind_initialize_bindings = Module["__embind_initialize_bindings"] = wasmExports["_"])();
+          var ___errno_location = () => (___errno_location = wasmExports["__errno_location"])();
+          var _free = (a0) => (_free = wasmExports["$"])(a0);
+          var ___cxa_increment_exception_refcount = (a0) => (___cxa_increment_exception_refcount = wasmExports["__cxa_increment_exception_refcount"])(a0);
+          var ___cxa_is_pointer_type = (a0) => (___cxa_is_pointer_type = wasmExports["aa"])(a0);
+          var dynCall_jiji = Module["dynCall_jiji"] = (a0, a1, a2, a3, a4) => (dynCall_jiji = Module["dynCall_jiji"] = wasmExports["ba"])(a0, a1, a2, a3, a4);
+          var dynCall_viijii = Module["dynCall_viijii"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_viijii = Module["dynCall_viijii"] = wasmExports["ca"])(a0, a1, a2, a3, a4, a5, a6);
+          var dynCall_iiiiij = Module["dynCall_iiiiij"] = (a0, a1, a2, a3, a4, a5, a6) => (dynCall_iiiiij = Module["dynCall_iiiiij"] = wasmExports["da"])(a0, a1, a2, a3, a4, a5, a6);
+          var dynCall_iiiiijj = Module["dynCall_iiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8) => (dynCall_iiiiijj = Module["dynCall_iiiiijj"] = wasmExports["ea"])(a0, a1, a2, a3, a4, a5, a6, a7, a8);
+          var dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) => (dynCall_iiiiiijj = Module["dynCall_iiiiiijj"] = wasmExports["fa"])(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+          function applySignatureConversions(exports2) {
+            exports2 = Object.assign({}, exports2);
+            var makeWrapper_pp = (f) => (a0) => f(a0) >>> 0;
+            var makeWrapper_p = (f) => () => f() >>> 0;
+            exports2["malloc"] = makeWrapper_pp(exports2["malloc"]);
+            exports2["__getTypeName"] = makeWrapper_pp(exports2["__getTypeName"]);
+            exports2["__errno_location"] = makeWrapper_p(exports2["__errno_location"]);
+            exports2["stackSave"] = makeWrapper_p(exports2["stackSave"]);
+            exports2["stackAlloc"] = makeWrapper_pp(exports2["stackAlloc"]);
+            return exports2;
+          }
+          var calledRun;
+          dependenciesFulfilled = function runCaller() {
+            if (!calledRun)
+              run();
+            if (!calledRun)
+              dependenciesFulfilled = runCaller;
+          };
+          function run() {
+            if (runDependencies > 0) {
+              return;
+            }
+            preRun();
+            if (runDependencies > 0) {
+              return;
+            }
+            function doRun() {
+              if (calledRun)
+                return;
+              calledRun = true;
+              Module["calledRun"] = true;
+              if (ABORT)
+                return;
+              initRuntime();
+              readyPromiseResolve(Module);
+              if (Module["onRuntimeInitialized"])
+                Module["onRuntimeInitialized"]();
+              postRun();
+            }
+            if (Module["setStatus"]) {
+              Module["setStatus"]("Running...");
+              setTimeout(function() {
+                setTimeout(function() {
+                  Module["setStatus"]("");
+                }, 1);
+                doRun();
+              }, 1);
+            } else {
+              doRun();
+            }
+          }
+          if (Module["preInit"]) {
+            if (typeof Module["preInit"] == "function")
+              Module["preInit"] = [Module["preInit"]];
+            while (Module["preInit"].length > 0) {
+              Module["preInit"].pop()();
+            }
+          }
+          run();
+          return moduleArg.ready;
+        };
+      })();
+      if (typeof exports === "object" && typeof module === "object")
+        module.exports = WebIFCWasm2;
+      else if (typeof define === "function" && define["amd"])
+        define([], () => WebIFCWasm2);
+    }
+  });
+  var IFCURIREFERENCE = 950732822;
+  var IFCTIME = 4075327185;
+  var IFCTEMPERATURERATEOFCHANGEMEASURE = 1209108979;
+  var IFCSOUNDPRESSURELEVELMEASURE = 3457685358;
+  var IFCSOUNDPOWERLEVELMEASURE = 4157543285;
+  var IFCPROPERTYSETDEFINITIONSET = 2798247006;
+  var IFCPOSITIVEINTEGER = 1790229001;
+  var IFCNONNEGATIVELENGTHMEASURE = 525895558;
+  var IFCLINEINDEX = 1774176899;
+  var IFCLANGUAGEID = 1275358634;
+  var IFCDURATION = 2541165894;
+  var IFCDAYINWEEKNUMBER = 3701338814;
+  var IFCDATETIME = 2195413836;
+  var IFCDATE = 937566702;
+  var IFCCARDINALPOINTREFERENCE = 1683019596;
+  var IFCBINARY = 2314439260;
+  var IFCAREADENSITYMEASURE = 1500781891;
+  var IFCARCINDEX = 3683503648;
+  var IFCYEARNUMBER = 4065007721;
+  var IFCWARPINGMOMENTMEASURE = 1718600412;
+  var IFCWARPINGCONSTANTMEASURE = 51269191;
+  var IFCVOLUMETRICFLOWRATEMEASURE = 2593997549;
+  var IFCVOLUMEMEASURE = 3458127941;
+  var IFCVAPORPERMEABILITYMEASURE = 3345633955;
+  var IFCTORQUEMEASURE = 1278329552;
+  var IFCTIMESTAMP = 2591213694;
+  var IFCTIMEMEASURE = 2726807636;
+  var IFCTHERMODYNAMICTEMPERATUREMEASURE = 743184107;
+  var IFCTHERMALTRANSMITTANCEMEASURE = 2016195849;
+  var IFCTHERMALRESISTANCEMEASURE = 857959152;
+  var IFCTHERMALEXPANSIONCOEFFICIENTMEASURE = 2281867870;
+  var IFCTHERMALCONDUCTIVITYMEASURE = 2645777649;
+  var IFCTHERMALADMITTANCEMEASURE = 232962298;
+  var IFCTEXTTRANSFORMATION = 296282323;
+  var IFCTEXTFONTNAME = 603696268;
+  var IFCTEXTDECORATION = 3490877962;
+  var IFCTEXTALIGNMENT = 1460886941;
+  var IFCTEXT = 2801250643;
+  var IFCTEMPERATUREGRADIENTMEASURE = 58845555;
+  var IFCSPECULARROUGHNESS = 361837227;
+  var IFCSPECULAREXPONENT = 2757832317;
+  var IFCSPECIFICHEATCAPACITYMEASURE = 3477203348;
+  var IFCSOUNDPRESSUREMEASURE = 993287707;
+  var IFCSOUNDPOWERMEASURE = 846465480;
+  var IFCSOLIDANGLEMEASURE = 3471399674;
+  var IFCSHEARMODULUSMEASURE = 408310005;
+  var IFCSECTIONALAREAINTEGRALMEASURE = 2190458107;
+  var IFCSECTIONMODULUSMEASURE = 3467162246;
+  var IFCSECONDINMINUTE = 2766185779;
+  var IFCROTATIONALSTIFFNESSMEASURE = 3211557302;
+  var IFCROTATIONALMASSMEASURE = 1755127002;
+  var IFCROTATIONALFREQUENCYMEASURE = 2133746277;
+  var IFCREAL = 200335297;
+  var IFCRATIOMEASURE = 96294661;
+  var IFCRADIOACTIVITYMEASURE = 3972513137;
+  var IFCPRESSUREMEASURE = 3665567075;
+  var IFCPRESENTABLETEXT = 2169031380;
+  var IFCPOWERMEASURE = 1364037233;
+  var IFCPOSITIVERATIOMEASURE = 1245737093;
+  var IFCPOSITIVEPLANEANGLEMEASURE = 3054510233;
+  var IFCPOSITIVELENGTHMEASURE = 2815919920;
+  var IFCPLANEANGLEMEASURE = 4042175685;
+  var IFCPLANARFORCEMEASURE = 2642773653;
+  var IFCPARAMETERVALUE = 2260317790;
+  var IFCPHMEASURE = 929793134;
+  var IFCNUMERICMEASURE = 2395907400;
+  var IFCNORMALISEDRATIOMEASURE = 2095195183;
+  var IFCMONTHINYEARNUMBER = 765770214;
+  var IFCMONETARYMEASURE = 2615040989;
+  var IFCMOMENTOFINERTIAMEASURE = 3114022597;
+  var IFCMOLECULARWEIGHTMEASURE = 1648970520;
+  var IFCMOISTUREDIFFUSIVITYMEASURE = 3177669450;
+  var IFCMODULUSOFSUBGRADEREACTIONMEASURE = 1753493141;
+  var IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE = 1052454078;
+  var IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE = 2173214787;
+  var IFCMODULUSOFELASTICITYMEASURE = 3341486342;
+  var IFCMINUTEINHOUR = 102610177;
+  var IFCMASSPERLENGTHMEASURE = 3531705166;
+  var IFCMASSMEASURE = 3124614049;
+  var IFCMASSFLOWRATEMEASURE = 4017473158;
+  var IFCMASSDENSITYMEASURE = 1477762836;
+  var IFCMAGNETICFLUXMEASURE = 2486716878;
+  var IFCMAGNETICFLUXDENSITYMEASURE = 286949696;
+  var IFCLUMINOUSINTENSITYMEASURE = 151039812;
+  var IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE = 2755797622;
+  var IFCLUMINOUSFLUXMEASURE = 2095003142;
+  var IFCLOGICAL = 503418787;
+  var IFCLINEARVELOCITYMEASURE = 3086160713;
+  var IFCLINEARSTIFFNESSMEASURE = 1307019551;
+  var IFCLINEARMOMENTMEASURE = 2128979029;
+  var IFCLINEARFORCEMEASURE = 191860431;
+  var IFCLENGTHMEASURE = 1243674935;
+  var IFCLABEL = 3258342251;
+  var IFCKINEMATICVISCOSITYMEASURE = 2054016361;
+  var IFCISOTHERMALMOISTURECAPACITYMEASURE = 3192672207;
+  var IFCIONCONCENTRATIONMEASURE = 3686016028;
+  var IFCINTEGERCOUNTRATEMEASURE = 3809634241;
+  var IFCINTEGER = 1939436016;
+  var IFCINDUCTANCEMEASURE = 2679005408;
+  var IFCILLUMINANCEMEASURE = 3358199106;
+  var IFCIDENTIFIER = 983778844;
+  var IFCHOURINDAY = 2589826445;
+  var IFCHEATINGVALUEMEASURE = 1158859006;
+  var IFCHEATFLUXDENSITYMEASURE = 3113092358;
+  var IFCGLOBALLYUNIQUEID = 3064340077;
+  var IFCFREQUENCYMEASURE = 3044325142;
+  var IFCFORCEMEASURE = 1361398929;
+  var IFCFONTWEIGHT = 2590844177;
+  var IFCFONTVARIANT = 2715512545;
+  var IFCFONTSTYLE = 1102727119;
+  var IFCENERGYMEASURE = 2078135608;
+  var IFCELECTRICVOLTAGEMEASURE = 2506197118;
+  var IFCELECTRICRESISTANCEMEASURE = 2951915441;
+  var IFCELECTRICCURRENTMEASURE = 3790457270;
+  var IFCELECTRICCONDUCTANCEMEASURE = 2093906313;
+  var IFCELECTRICCHARGEMEASURE = 3818826038;
+  var IFCELECTRICCAPACITANCEMEASURE = 1827137117;
+  var IFCDYNAMICVISCOSITYMEASURE = 69416015;
+  var IFCDOSEEQUIVALENTMEASURE = 524656162;
+  var IFCDIMENSIONCOUNT = 4134073009;
+  var IFCDESCRIPTIVEMEASURE = 1514641115;
+  var IFCDAYLIGHTSAVINGHOUR = 300323983;
+  var IFCDAYINMONTHNUMBER = 86635668;
+  var IFCCURVATUREMEASURE = 94842927;
+  var IFCCOUNTMEASURE = 1778710042;
+  var IFCCONTEXTDEPENDENTMEASURE = 3238673880;
+  var IFCCOMPOUNDPLANEANGLEMEASURE = 3812528620;
+  var IFCCOMPLEXNUMBER = 2991860651;
+  var IFCBOXALIGNMENT = 1867003952;
+  var IFCBOOLEAN = 2735952531;
+  var IFCAREAMEASURE = 2650437152;
+  var IFCANGULARVELOCITYMEASURE = 632304761;
+  var IFCAMOUNTOFSUBSTANCEMEASURE = 360377573;
+  var IFCACCELERATIONMEASURE = 4182062534;
+  var IFCABSORBEDDOSEMEASURE = 3699917729;
+  var IFCGEOSLICE = 1971632696;
+  var IFCGEOMODEL = 2680139844;
+  var IFCELECTRICFLOWTREATMENTDEVICE = 24726584;
+  var IFCDISTRIBUTIONBOARD = 3693000487;
+  var IFCCONVEYORSEGMENT = 3460952963;
+  var IFCCAISSONFOUNDATION = 3999819293;
+  var IFCBOREHOLE = 3314249567;
+  var IFCBEARING = 4196446775;
+  var IFCALIGNMENT = 325726236;
+  var IFCTRACKELEMENT = 3425753595;
+  var IFCSIGNAL = 991950508;
+  var IFCREINFORCEDSOIL = 3798194928;
+  var IFCRAIL = 3290496277;
+  var IFCPAVEMENT = 1383356374;
+  var IFCNAVIGATIONELEMENT = 2182337498;
+  var IFCMOORINGDEVICE = 234836483;
+  var IFCMOBILETELECOMMUNICATIONSAPPLIANCE = 2078563270;
+  var IFCLIQUIDTERMINAL = 1638804497;
+  var IFCLINEARPOSITIONINGELEMENT = 1154579445;
+  var IFCKERB = 2696325953;
+  var IFCGEOTECHNICALASSEMBLY = 2713699986;
+  var IFCELECTRICFLOWTREATMENTDEVICETYPE = 2142170206;
+  var IFCEARTHWORKSFILL = 3376911765;
+  var IFCEARTHWORKSELEMENT = 1077100507;
+  var IFCEARTHWORKSCUT = 3071239417;
+  var IFCDISTRIBUTIONBOARDTYPE = 479945903;
+  var IFCDEEPFOUNDATION = 3426335179;
+  var IFCCOURSE = 1502416096;
+  var IFCCONVEYORSEGMENTTYPE = 2940368186;
+  var IFCCAISSONFOUNDATIONTYPE = 3203706013;
+  var IFCBUILTSYSTEM = 3862327254;
+  var IFCBUILTELEMENT = 1876633798;
+  var IFCBRIDGEPART = 963979645;
+  var IFCBRIDGE = 644574406;
+  var IFCBEARINGTYPE = 3649138523;
+  var IFCALIGNMENTVERTICAL = 1662888072;
+  var IFCALIGNMENTSEGMENT = 317615605;
+  var IFCALIGNMENTHORIZONTAL = 1545765605;
+  var IFCALIGNMENTCANT = 4266260250;
+  var IFCVIBRATIONDAMPERTYPE = 3956297820;
+  var IFCVIBRATIONDAMPER = 1530820697;
+  var IFCVEHICLE = 840318589;
+  var IFCTRANSPORTATIONDEVICE = 1953115116;
+  var IFCTRACKELEMENTTYPE = 618700268;
+  var IFCTENDONCONDUITTYPE = 2281632017;
+  var IFCTENDONCONDUIT = 3663046924;
+  var IFCSINESPIRAL = 42703149;
+  var IFCSIGNALTYPE = 1894708472;
+  var IFCSIGNTYPE = 3599934289;
+  var IFCSIGN = 33720170;
+  var IFCSEVENTHORDERPOLYNOMIALSPIRAL = 1027922057;
+  var IFCSEGMENTEDREFERENCECURVE = 544395925;
+  var IFCSECONDORDERPOLYNOMIALSPIRAL = 3649235739;
+  var IFCROADPART = 550521510;
+  var IFCROAD = 146592293;
+  var IFCRELADHERESTOELEMENT = 3818125796;
+  var IFCREFERENT = 4021432810;
+  var IFCRAILWAYPART = 1891881377;
+  var IFCRAILWAY = 3992365140;
+  var IFCRAILTYPE = 1763565496;
+  var IFCPOSITIONINGELEMENT = 1946335990;
+  var IFCPAVEMENTTYPE = 514975943;
+  var IFCNAVIGATIONELEMENTTYPE = 506776471;
+  var IFCMOORINGDEVICETYPE = 710110818;
+  var IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE = 1950438474;
+  var IFCMARINEPART = 976884017;
+  var IFCMARINEFACILITY = 525669439;
+  var IFCLIQUIDTERMINALTYPE = 1770583370;
+  var IFCLINEARELEMENT = 2176059722;
+  var IFCKERBTYPE = 679976338;
+  var IFCIMPACTPROTECTIONDEVICETYPE = 3948183225;
+  var IFCIMPACTPROTECTIONDEVICE = 2568555532;
+  var IFCGRADIENTCURVE = 2898700619;
+  var IFCGEOTECHNICALSTRATUM = 1594536857;
+  var IFCGEOTECHNICALELEMENT = 4230923436;
+  var IFCFACILITYPARTCOMMON = 4228831410;
+  var IFCFACILITYPART = 1310830890;
+  var IFCFACILITY = 24185140;
+  var IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID = 4234616927;
+  var IFCDEEPFOUNDATIONTYPE = 1306400036;
+  var IFCCOURSETYPE = 4189326743;
+  var IFCCOSINESPIRAL = 2000195564;
+  var IFCCLOTHOID = 3497074424;
+  var IFCBUILTELEMENTTYPE = 1626504194;
+  var IFCVEHICLETYPE = 3651464721;
+  var IFCTRIANGULATEDIRREGULARNETWORK = 1229763772;
+  var IFCTRANSPORTATIONDEVICETYPE = 3665877780;
+  var IFCTHIRDORDERPOLYNOMIALSPIRAL = 782932809;
+  var IFCSPIRAL = 2735484536;
+  var IFCSECTIONEDSURFACE = 1356537516;
+  var IFCSECTIONEDSOLIDHORIZONTAL = 1290935644;
+  var IFCSECTIONEDSOLID = 1862484736;
+  var IFCRELPOSITIONS = 1441486842;
+  var IFCRELASSOCIATESPROFILEDEF = 1033248425;
+  var IFCPOLYNOMIALCURVE = 3381221214;
+  var IFCOFFSETCURVEBYDISTANCES = 2485787929;
+  var IFCOFFSETCURVE = 590820931;
+  var IFCINDEXEDPOLYGONALTEXTUREMAP = 3465909080;
+  var IFCDIRECTRIXCURVESWEPTAREASOLID = 593015953;
+  var IFCCURVESEGMENT = 4212018352;
+  var IFCAXIS2PLACEMENTLINEAR = 3425423356;
+  var IFCSEGMENT = 823603102;
+  var IFCPOINTBYDISTANCEEXPRESSION = 2165702409;
+  var IFCOPENCROSSPROFILEDEF = 182550632;
+  var IFCLINEARPLACEMENT = 388784114;
+  var IFCALIGNMENTHORIZONTALSEGMENT = 536804194;
+  var IFCALIGNMENTCANTSEGMENT = 3752311538;
+  var IFCTEXTURECOORDINATEINDICESWITHVOIDS = 1010789467;
+  var IFCTEXTURECOORDINATEINDICES = 222769930;
+  var IFCQUANTITYNUMBER = 2691318326;
+  var IFCALIGNMENTVERTICALSEGMENT = 3633395639;
+  var IFCALIGNMENTPARAMETERSEGMENT = 2879124712;
+  var IFCCONTROLLER = 25142252;
+  var IFCALARM = 3087945054;
+  var IFCACTUATOR = 4288193352;
+  var IFCUNITARYCONTROLELEMENT = 630975310;
+  var IFCSENSOR = 4086658281;
+  var IFCPROTECTIVEDEVICETRIPPINGUNIT = 2295281155;
+  var IFCFLOWINSTRUMENT = 182646315;
+  var IFCFIRESUPPRESSIONTERMINAL = 1426591983;
+  var IFCFILTER = 819412036;
+  var IFCFAN = 3415622556;
+  var IFCELECTRICTIMECONTROL = 1003880860;
+  var IFCELECTRICMOTOR = 402227799;
+  var IFCELECTRICGENERATOR = 264262732;
+  var IFCELECTRICFLOWSTORAGEDEVICE = 3310460725;
+  var IFCELECTRICDISTRIBUTIONBOARD = 862014818;
+  var IFCELECTRICAPPLIANCE = 1904799276;
+  var IFCDUCTSILENCER = 1360408905;
+  var IFCDUCTSEGMENT = 3518393246;
+  var IFCDUCTFITTING = 342316401;
+  var IFCDISTRIBUTIONCIRCUIT = 562808652;
+  var IFCDAMPER = 4074379575;
+  var IFCCOOLINGTOWER = 3640358203;
+  var IFCCOOLEDBEAM = 4136498852;
+  var IFCCONDENSER = 2272882330;
+  var IFCCOMPRESSOR = 3571504051;
+  var IFCCOMMUNICATIONSAPPLIANCE = 3221913625;
+  var IFCCOIL = 639361253;
+  var IFCCHILLER = 3902619387;
+  var IFCCABLESEGMENT = 4217484030;
+  var IFCCABLEFITTING = 1051757585;
+  var IFCCABLECARRIERSEGMENT = 3758799889;
+  var IFCCABLECARRIERFITTING = 635142910;
+  var IFCBURNER = 2938176219;
+  var IFCBOILER = 32344328;
+  var IFCBEAMSTANDARDCASE = 2906023776;
+  var IFCAUDIOVISUALAPPLIANCE = 277319702;
+  var IFCAIRTOAIRHEATRECOVERY = 2056796094;
+  var IFCAIRTERMINALBOX = 177149247;
+  var IFCAIRTERMINAL = 1634111441;
+  var IFCWINDOWSTANDARDCASE = 486154966;
+  var IFCWASTETERMINAL = 4237592921;
+  var IFCWALLELEMENTEDCASE = 4156078855;
+  var IFCVALVE = 4207607924;
+  var IFCUNITARYEQUIPMENT = 4292641817;
+  var IFCUNITARYCONTROLELEMENTTYPE = 3179687236;
+  var IFCTUBEBUNDLE = 3026737570;
+  var IFCTRANSFORMER = 3825984169;
+  var IFCTANK = 812556717;
+  var IFCSWITCHINGDEVICE = 1162798199;
+  var IFCSTRUCTURALLOADCASE = 385403989;
+  var IFCSTACKTERMINAL = 1404847402;
+  var IFCSPACEHEATER = 1999602285;
+  var IFCSOLARDEVICE = 3420628829;
+  var IFCSLABSTANDARDCASE = 3027962421;
+  var IFCSLABELEMENTEDCASE = 3127900445;
+  var IFCSHADINGDEVICE = 1329646415;
+  var IFCSANITARYTERMINAL = 3053780830;
+  var IFCREINFORCINGBARTYPE = 2572171363;
+  var IFCRATIONALBSPLINECURVEWITHKNOTS = 1232101972;
+  var IFCPUMP = 90941305;
+  var IFCPROTECTIVEDEVICETRIPPINGUNITTYPE = 655969474;
+  var IFCPROTECTIVEDEVICE = 738039164;
+  var IFCPLATESTANDARDCASE = 1156407060;
+  var IFCPIPESEGMENT = 3612865200;
+  var IFCPIPEFITTING = 310824031;
+  var IFCOUTLET = 3694346114;
+  var IFCOUTERBOUNDARYCURVE = 144952367;
+  var IFCMOTORCONNECTION = 2474470126;
+  var IFCMEMBERSTANDARDCASE = 1911478936;
+  var IFCMEDICALDEVICE = 1437502449;
+  var IFCLIGHTFIXTURE = 629592764;
+  var IFCLAMP = 76236018;
+  var IFCJUNCTIONBOX = 2176052936;
+  var IFCINTERCEPTOR = 4175244083;
+  var IFCHUMIDIFIER = 2068733104;
+  var IFCHEATEXCHANGER = 3319311131;
+  var IFCFLOWMETER = 2188021234;
+  var IFCEXTERNALSPATIALELEMENT = 1209101575;
+  var IFCEVAPORATOR = 484807127;
+  var IFCEVAPORATIVECOOLER = 3747195512;
+  var IFCENGINE = 2814081492;
+  var IFCELECTRICDISTRIBUTIONBOARDTYPE = 2417008758;
+  var IFCDOORSTANDARDCASE = 3242481149;
+  var IFCDISTRIBUTIONSYSTEM = 3205830791;
+  var IFCCOMMUNICATIONSAPPLIANCETYPE = 400855858;
+  var IFCCOLUMNSTANDARDCASE = 905975707;
+  var IFCCIVILELEMENT = 1677625105;
+  var IFCCHIMNEY = 3296154744;
+  var IFCCABLEFITTINGTYPE = 2674252688;
+  var IFCBURNERTYPE = 2188180465;
+  var IFCBUILDINGSYSTEM = 1177604601;
+  var IFCBUILDINGELEMENTPARTTYPE = 39481116;
+  var IFCBOUNDARYCURVE = 1136057603;
+  var IFCBSPLINECURVEWITHKNOTS = 2461110595;
+  var IFCAUDIOVISUALAPPLIANCETYPE = 1532957894;
+  var IFCWORKCALENDAR = 4088093105;
+  var IFCWINDOWTYPE = 4009809668;
+  var IFCVOIDINGFEATURE = 926996030;
+  var IFCVIBRATIONISOLATOR = 2391383451;
+  var IFCTENDONTYPE = 2415094496;
+  var IFCTENDONANCHORTYPE = 3081323446;
+  var IFCSYSTEMFURNITUREELEMENT = 413509423;
+  var IFCSURFACEFEATURE = 3101698114;
+  var IFCSTRUCTURALSURFACEACTION = 3657597509;
+  var IFCSTRUCTURALCURVEREACTION = 2757150158;
+  var IFCSTRUCTURALCURVEACTION = 1004757350;
+  var IFCSTAIRTYPE = 338393293;
+  var IFCSOLARDEVICETYPE = 1072016465;
+  var IFCSHADINGDEVICETYPE = 4074543187;
+  var IFCSEAMCURVE = 2157484638;
+  var IFCROOFTYPE = 2781568857;
+  var IFCREINFORCINGMESHTYPE = 2310774935;
+  var IFCREINFORCINGELEMENTTYPE = 964333572;
+  var IFCRATIONALBSPLINESURFACEWITHKNOTS = 683857671;
+  var IFCRAMPTYPE = 1469900589;
+  var IFCPOLYGONALFACESET = 2839578677;
+  var IFCPILETYPE = 1158309216;
+  var IFCOPENINGSTANDARDCASE = 3079942009;
+  var IFCMEDICALDEVICETYPE = 1114901282;
+  var IFCINTERSECTIONCURVE = 3113134337;
+  var IFCINTERCEPTORTYPE = 3946677679;
+  var IFCINDEXEDPOLYCURVE = 2571569899;
+  var IFCGEOGRAPHICELEMENT = 3493046030;
+  var IFCFURNITURE = 1509553395;
+  var IFCFOOTINGTYPE = 1893162501;
+  var IFCEXTERNALSPATIALSTRUCTUREELEMENT = 2853485674;
+  var IFCEVENT = 4148101412;
+  var IFCENGINETYPE = 132023988;
+  var IFCELEMENTASSEMBLYTYPE = 2397081782;
+  var IFCDOORTYPE = 2323601079;
+  var IFCCYLINDRICALSURFACE = 1213902940;
+  var IFCCONSTRUCTIONPRODUCTRESOURCETYPE = 1525564444;
+  var IFCCONSTRUCTIONMATERIALRESOURCETYPE = 4105962743;
+  var IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE = 2185764099;
+  var IFCCOMPOSITECURVEONSURFACE = 15328376;
+  var IFCCOMPLEXPROPERTYTEMPLATE = 3875453745;
+  var IFCCIVILELEMENTTYPE = 3893394355;
+  var IFCCHIMNEYTYPE = 2197970202;
+  var IFCBSPLINESURFACEWITHKNOTS = 167062518;
+  var IFCBSPLINESURFACE = 2887950389;
+  var IFCADVANCEDBREPWITHVOIDS = 2603310189;
+  var IFCADVANCEDBREP = 1635779807;
+  var IFCTRIANGULATEDFACESET = 2916149573;
+  var IFCTOROIDALSURFACE = 1935646853;
+  var IFCTESSELLATEDFACESET = 2387106220;
+  var IFCTASKTYPE = 3206491090;
+  var IFCSURFACECURVE = 699246055;
+  var IFCSUBCONTRACTRESOURCETYPE = 4095615324;
+  var IFCSTRUCTURALSURFACEREACTION = 603775116;
+  var IFCSPHERICALSURFACE = 4015995234;
+  var IFCSPATIALZONETYPE = 2481509218;
+  var IFCSPATIALZONE = 463610769;
+  var IFCSPATIALELEMENTTYPE = 710998568;
+  var IFCSPATIALELEMENT = 1412071761;
+  var IFCSIMPLEPROPERTYTEMPLATE = 3663146110;
+  var IFCREVOLVEDAREASOLIDTAPERED = 3243963512;
+  var IFCREPARAMETRISEDCOMPOSITECURVESEGMENT = 816062949;
+  var IFCRELSPACEBOUNDARY2NDLEVEL = 1521410863;
+  var IFCRELSPACEBOUNDARY1STLEVEL = 3523091289;
+  var IFCRELINTERFERESELEMENTS = 427948657;
+  var IFCRELDEFINESBYTEMPLATE = 307848117;
+  var IFCRELDEFINESBYOBJECT = 1462361463;
+  var IFCRELDECLARES = 2565941209;
+  var IFCRELASSIGNSTOGROUPBYFACTOR = 1027710054;
+  var IFCPROPERTYTEMPLATE = 3521284610;
+  var IFCPROPERTYSETTEMPLATE = 492091185;
+  var IFCPROJECTLIBRARY = 653396225;
+  var IFCPROCEDURETYPE = 569719735;
+  var IFCPREDEFINEDPROPERTYSET = 3967405729;
+  var IFCPCURVE = 1682466193;
+  var IFCLABORRESOURCETYPE = 428585644;
+  var IFCINDEXEDPOLYGONALFACEWITHVOIDS = 2294589976;
+  var IFCINDEXEDPOLYGONALFACE = 178912537;
+  var IFCGEOGRAPHICELEMENTTYPE = 4095422895;
+  var IFCFIXEDREFERENCESWEPTAREASOLID = 2652556860;
+  var IFCEXTRUDEDAREASOLIDTAPERED = 2804161546;
+  var IFCEVENTTYPE = 4024345920;
+  var IFCCURVEBOUNDEDSURFACE = 2629017746;
+  var IFCCREWRESOURCETYPE = 1815067380;
+  var IFCCONTEXT = 3419103109;
+  var IFCCONSTRUCTIONRESOURCETYPE = 2574617495;
+  var IFCCARTESIANPOINTLIST3D = 2059837836;
+  var IFCCARTESIANPOINTLIST2D = 1675464909;
+  var IFCCARTESIANPOINTLIST = 574549367;
+  var IFCADVANCEDFACE = 3406155212;
+  var IFCTYPERESOURCE = 3698973494;
+  var IFCTYPEPROCESS = 3736923433;
+  var IFCTESSELLATEDITEM = 901063453;
+  var IFCSWEPTDISKSOLIDPOLYGONAL = 1096409881;
+  var IFCRESOURCETIME = 1042787934;
+  var IFCRESOURCECONSTRAINTRELATIONSHIP = 1608871552;
+  var IFCRESOURCEAPPROVALRELATIONSHIP = 2943643501;
+  var IFCQUANTITYSET = 2090586900;
+  var IFCPROPERTYTEMPLATEDEFINITION = 1482703590;
+  var IFCPREDEFINEDPROPERTIES = 3778827333;
+  var IFCMIRROREDPROFILEDEF = 2998442950;
+  var IFCMATERIALRELATIONSHIP = 853536259;
+  var IFCMATERIALPROFILESETUSAGETAPERING = 3404854881;
+  var IFCMATERIALPROFILESETUSAGE = 3079605661;
+  var IFCMATERIALCONSTITUENTSET = 2852063980;
+  var IFCMATERIALCONSTITUENT = 3708119e3;
+  var IFCLAGTIME = 1585845231;
+  var IFCINDEXEDTRIANGLETEXTUREMAP = 2133299955;
+  var IFCINDEXEDTEXTUREMAP = 1437953363;
+  var IFCINDEXEDCOLOURMAP = 3570813810;
+  var IFCEXTERNALREFERENCERELATIONSHIP = 1437805879;
+  var IFCEXTENDEDPROPERTIES = 297599258;
+  var IFCEVENTTIME = 211053100;
+  var IFCCONVERSIONBASEDUNITWITHOFFSET = 2713554722;
+  var IFCCOLOURRGBLIST = 3285139300;
+  var IFCWORKTIME = 1236880293;
+  var IFCTIMEPERIOD = 1199560280;
+  var IFCTEXTUREVERTEXLIST = 3611470254;
+  var IFCTASKTIMERECURRING = 2771591690;
+  var IFCTASKTIME = 1549132990;
+  var IFCTABLECOLUMN = 2043862942;
+  var IFCSURFACEREINFORCEMENTAREA = 2934153892;
+  var IFCSTRUCTURALLOADORRESULT = 609421318;
+  var IFCSTRUCTURALLOADCONFIGURATION = 3478079324;
+  var IFCSCHEDULINGTIME = 1054537805;
+  var IFCRESOURCELEVELRELATIONSHIP = 2439245199;
+  var IFCREFERENCE = 2433181523;
+  var IFCRECURRENCEPATTERN = 3915482550;
+  var IFCPROPERTYABSTRACTION = 986844984;
+  var IFCPROJECTEDCRS = 3843373140;
+  var IFCPRESENTATIONITEM = 677532197;
+  var IFCMATERIALUSAGEDEFINITION = 1507914824;
+  var IFCMATERIALPROFILEWITHOFFSETS = 552965576;
+  var IFCMATERIALPROFILESET = 164193824;
+  var IFCMATERIALPROFILE = 2235152071;
+  var IFCMATERIALLAYERWITHOFFSETS = 1847252529;
+  var IFCMATERIALDEFINITION = 760658860;
+  var IFCMAPCONVERSION = 3057273783;
+  var IFCEXTERNALINFORMATION = 4294318154;
+  var IFCCOORDINATEREFERENCESYSTEM = 1466758467;
+  var IFCCOORDINATEOPERATION = 1785450214;
+  var IFCCONNECTIONVOLUMEGEOMETRY = 775493141;
+  var IFCREINFORCINGBAR = 979691226;
+  var IFCELECTRICDISTRIBUTIONPOINT = 3700593921;
+  var IFCDISTRIBUTIONCONTROLELEMENT = 1062813311;
+  var IFCDISTRIBUTIONCHAMBERELEMENT = 1052013943;
+  var IFCCONTROLLERTYPE = 578613899;
+  var IFCCHAMFEREDGEFEATURE = 2454782716;
+  var IFCBEAM = 753842376;
+  var IFCALARMTYPE = 3001207471;
+  var IFCACTUATORTYPE = 2874132201;
+  var IFCWINDOW = 3304561284;
+  var IFCWALLSTANDARDCASE = 3512223829;
+  var IFCWALL = 2391406946;
+  var IFCVIBRATIONISOLATORTYPE = 3313531582;
+  var IFCTENDONANCHOR = 2347447852;
+  var IFCTENDON = 3824725483;
+  var IFCSTRUCTURALANALYSISMODEL = 2515109513;
+  var IFCSTAIRFLIGHT = 4252922144;
+  var IFCSTAIR = 331165859;
+  var IFCSLAB = 1529196076;
+  var IFCSENSORTYPE = 1783015770;
+  var IFCROUNDEDEDGEFEATURE = 1376911519;
+  var IFCROOF = 2016517767;
+  var IFCREINFORCINGMESH = 2320036040;
+  var IFCREINFORCINGELEMENT = 3027567501;
+  var IFCRATIONALBEZIERCURVE = 3055160366;
+  var IFCRAMPFLIGHT = 3283111854;
+  var IFCRAMP = 3024970846;
+  var IFCRAILING = 2262370178;
+  var IFCPLATE = 3171933400;
+  var IFCPILE = 1687234759;
+  var IFCMEMBER = 1073191201;
+  var IFCFOOTING = 900683007;
+  var IFCFLOWTREATMENTDEVICE = 3508470533;
+  var IFCFLOWTERMINAL = 2223149337;
+  var IFCFLOWSTORAGEDEVICE = 707683696;
+  var IFCFLOWSEGMENT = 987401354;
+  var IFCFLOWMOVINGDEVICE = 3132237377;
+  var IFCFLOWINSTRUMENTTYPE = 4037862832;
+  var IFCFLOWFITTING = 4278956645;
+  var IFCFLOWCONTROLLER = 2058353004;
+  var IFCFIRESUPPRESSIONTERMINALTYPE = 4222183408;
+  var IFCFILTERTYPE = 1810631287;
+  var IFCFANTYPE = 346874300;
+  var IFCENERGYCONVERSIONDEVICE = 1658829314;
+  var IFCELECTRICALELEMENT = 857184966;
+  var IFCELECTRICALCIRCUIT = 1634875225;
+  var IFCELECTRICTIMECONTROLTYPE = 712377611;
+  var IFCELECTRICMOTORTYPE = 1217240411;
+  var IFCELECTRICHEATERTYPE = 1365060375;
+  var IFCELECTRICGENERATORTYPE = 1534661035;
+  var IFCELECTRICFLOWSTORAGEDEVICETYPE = 3277789161;
+  var IFCELECTRICAPPLIANCETYPE = 663422040;
+  var IFCEDGEFEATURE = 855621170;
+  var IFCDUCTSILENCERTYPE = 2030761528;
+  var IFCDUCTSEGMENTTYPE = 3760055223;
+  var IFCDUCTFITTINGTYPE = 869906466;
+  var IFCDOOR = 395920057;
+  var IFCDISTRIBUTIONPORT = 3041715199;
+  var IFCDISTRIBUTIONFLOWELEMENT = 3040386961;
+  var IFCDISTRIBUTIONELEMENT = 1945004755;
+  var IFCDISTRIBUTIONCONTROLELEMENTTYPE = 2063403501;
+  var IFCDISTRIBUTIONCHAMBERELEMENTTYPE = 1599208980;
+  var IFCDISCRETEACCESSORYTYPE = 2635815018;
+  var IFCDISCRETEACCESSORY = 1335981549;
+  var IFCDIAMETERDIMENSION = 4147604152;
+  var IFCDAMPERTYPE = 3961806047;
+  var IFCCURTAINWALL = 3495092785;
+  var IFCCOVERING = 1973544240;
+  var IFCCOOLINGTOWERTYPE = 2954562838;
+  var IFCCOOLEDBEAMTYPE = 335055490;
+  var IFCCONSTRUCTIONPRODUCTRESOURCE = 488727124;
+  var IFCCONSTRUCTIONMATERIALRESOURCE = 1060000209;
+  var IFCCONSTRUCTIONEQUIPMENTRESOURCE = 3898045240;
+  var IFCCONDITIONCRITERION = 1163958913;
+  var IFCCONDITION = 2188551683;
+  var IFCCONDENSERTYPE = 2816379211;
+  var IFCCOMPRESSORTYPE = 3850581409;
+  var IFCCOLUMN = 843113511;
+  var IFCCOILTYPE = 2301859152;
+  var IFCCIRCLE = 2611217952;
+  var IFCCHILLERTYPE = 2951183804;
+  var IFCCABLESEGMENTTYPE = 1285652485;
+  var IFCCABLECARRIERSEGMENTTYPE = 3293546465;
+  var IFCCABLECARRIERFITTINGTYPE = 395041908;
+  var IFCBUILDINGELEMENTPROXYTYPE = 1909888760;
+  var IFCBUILDINGELEMENTPROXY = 1095909175;
+  var IFCBUILDINGELEMENTPART = 2979338954;
+  var IFCBUILDINGELEMENTCOMPONENT = 52481810;
+  var IFCBUILDINGELEMENT = 3299480353;
+  var IFCBOILERTYPE = 231477066;
+  var IFCBEZIERCURVE = 1916977116;
+  var IFCBEAMTYPE = 819618141;
+  var IFCBSPLINECURVE = 1967976161;
+  var IFCASSET = 3460190687;
+  var IFCANGULARDIMENSION = 2470393545;
+  var IFCAIRTOAIRHEATRECOVERYTYPE = 1871374353;
+  var IFCAIRTERMINALTYPE = 3352864051;
+  var IFCAIRTERMINALBOXTYPE = 1411407467;
+  var IFCACTIONREQUEST = 3821786052;
+  var IFC2DCOMPOSITECURVE = 1213861670;
+  var IFCZONE = 1033361043;
+  var IFCWORKSCHEDULE = 3342526732;
+  var IFCWORKPLAN = 4218914973;
+  var IFCWORKCONTROL = 1028945134;
+  var IFCWASTETERMINALTYPE = 1133259667;
+  var IFCWALLTYPE = 1898987631;
+  var IFCVIRTUALELEMENT = 2769231204;
+  var IFCVALVETYPE = 728799441;
+  var IFCUNITARYEQUIPMENTTYPE = 1911125066;
+  var IFCTUBEBUNDLETYPE = 1600972822;
+  var IFCTRIMMEDCURVE = 3593883385;
+  var IFCTRANSPORTELEMENT = 1620046519;
+  var IFCTRANSFORMERTYPE = 1692211062;
+  var IFCTIMESERIESSCHEDULE = 1637806684;
+  var IFCTANKTYPE = 5716631;
+  var IFCSYSTEM = 2254336722;
+  var IFCSWITCHINGDEVICETYPE = 2315554128;
+  var IFCSUBCONTRACTRESOURCE = 148013059;
+  var IFCSTRUCTURALSURFACECONNECTION = 1975003073;
+  var IFCSTRUCTURALRESULTGROUP = 2986769608;
+  var IFCSTRUCTURALPOINTREACTION = 1235345126;
+  var IFCSTRUCTURALPOINTCONNECTION = 734778138;
+  var IFCSTRUCTURALPOINTACTION = 2082059205;
+  var IFCSTRUCTURALPLANARACTIONVARYING = 3987759626;
+  var IFCSTRUCTURALPLANARACTION = 1621171031;
+  var IFCSTRUCTURALLOADGROUP = 1252848954;
+  var IFCSTRUCTURALLINEARACTIONVARYING = 1721250024;
+  var IFCSTRUCTURALLINEARACTION = 1807405624;
+  var IFCSTRUCTURALCURVEMEMBERVARYING = 2445595289;
+  var IFCSTRUCTURALCURVEMEMBER = 214636428;
+  var IFCSTRUCTURALCURVECONNECTION = 4243806635;
+  var IFCSTRUCTURALCONNECTION = 1179482911;
+  var IFCSTRUCTURALACTION = 682877961;
+  var IFCSTAIRFLIGHTTYPE = 1039846685;
+  var IFCSTACKTERMINALTYPE = 3112655638;
+  var IFCSPACETYPE = 3812236995;
+  var IFCSPACEPROGRAM = 652456506;
+  var IFCSPACEHEATERTYPE = 1305183839;
+  var IFCSPACE = 3856911033;
+  var IFCSLABTYPE = 2533589738;
+  var IFCSITE = 4097777520;
+  var IFCSERVICELIFE = 4105383287;
+  var IFCSCHEDULETIMECONTROL = 3517283431;
+  var IFCSANITARYTERMINALTYPE = 1768891740;
+  var IFCRELASSIGNSTASKS = 2863920197;
+  var IFCRELAGGREGATES = 160246688;
+  var IFCRAMPFLIGHTTYPE = 2324767716;
+  var IFCRAILINGTYPE = 2893384427;
+  var IFCRADIUSDIMENSION = 3248260540;
+  var IFCPUMPTYPE = 2250791053;
+  var IFCPROTECTIVEDEVICETYPE = 1842657554;
+  var IFCPROJECTIONELEMENT = 3651124850;
+  var IFCPROJECTORDERRECORD = 3642467123;
+  var IFCPROJECTORDER = 2904328755;
+  var IFCPROCEDURE = 2744685151;
+  var IFCPORT = 3740093272;
+  var IFCPOLYLINE = 3724593414;
+  var IFCPLATETYPE = 4017108033;
+  var IFCPIPESEGMENTTYPE = 4231323485;
+  var IFCPIPEFITTINGTYPE = 804291784;
+  var IFCPERMIT = 3327091369;
+  var IFCPERFORMANCEHISTORY = 2382730787;
+  var IFCOUTLETTYPE = 2837617999;
+  var IFCORDERACTION = 3425660407;
+  var IFCOPENINGELEMENT = 3588315303;
+  var IFCOCCUPANT = 4143007308;
+  var IFCMOVE = 1916936684;
+  var IFCMOTORCONNECTIONTYPE = 977012517;
+  var IFCMEMBERTYPE = 3181161470;
+  var IFCMECHANICALFASTENERTYPE = 2108223431;
+  var IFCMECHANICALFASTENER = 377706215;
+  var IFCLINEARDIMENSION = 2506943328;
+  var IFCLIGHTFIXTURETYPE = 1161773419;
+  var IFCLAMPTYPE = 1051575348;
+  var IFCLABORRESOURCE = 3827777499;
+  var IFCJUNCTIONBOXTYPE = 4288270099;
+  var IFCINVENTORY = 2391368822;
+  var IFCHUMIDIFIERTYPE = 1806887404;
+  var IFCHEATEXCHANGERTYPE = 1251058090;
+  var IFCGROUP = 2706460486;
+  var IFCGRID = 3009204131;
+  var IFCGASTERMINALTYPE = 200128114;
+  var IFCFURNITURESTANDARD = 814719939;
+  var IFCFURNISHINGELEMENT = 263784265;
+  var IFCFLOWTREATMENTDEVICETYPE = 3009222698;
+  var IFCFLOWTERMINALTYPE = 2297155007;
+  var IFCFLOWSTORAGEDEVICETYPE = 1339347760;
+  var IFCFLOWSEGMENTTYPE = 1834744321;
+  var IFCFLOWMOVINGDEVICETYPE = 1482959167;
+  var IFCFLOWMETERTYPE = 3815607619;
+  var IFCFLOWFITTINGTYPE = 3198132628;
+  var IFCFLOWCONTROLLERTYPE = 3907093117;
+  var IFCFEATUREELEMENTSUBTRACTION = 1287392070;
+  var IFCFEATUREELEMENTADDITION = 2143335405;
+  var IFCFEATUREELEMENT = 2827207264;
+  var IFCFASTENERTYPE = 2489546625;
+  var IFCFASTENER = 647756555;
+  var IFCFACETEDBREPWITHVOIDS = 3737207727;
+  var IFCFACETEDBREP = 807026263;
+  var IFCEVAPORATORTYPE = 3390157468;
+  var IFCEVAPORATIVECOOLERTYPE = 3174744832;
+  var IFCEQUIPMENTSTANDARD = 3272907226;
+  var IFCEQUIPMENTELEMENT = 1962604670;
+  var IFCENERGYCONVERSIONDEVICETYPE = 2107101300;
+  var IFCELLIPSE = 1704287377;
+  var IFCELEMENTCOMPONENTTYPE = 2590856083;
+  var IFCELEMENTCOMPONENT = 1623761950;
+  var IFCELEMENTASSEMBLY = 4123344466;
+  var IFCELEMENT = 1758889154;
+  var IFCELECTRICALBASEPROPERTIES = 360485395;
+  var IFCDISTRIBUTIONFLOWELEMENTTYPE = 3849074793;
+  var IFCDISTRIBUTIONELEMENTTYPE = 3256556792;
+  var IFCDIMENSIONCURVEDIRECTEDCALLOUT = 681481545;
+  var IFCCURTAINWALLTYPE = 1457835157;
+  var IFCCREWRESOURCE = 3295246426;
+  var IFCCOVERINGTYPE = 1916426348;
+  var IFCCOSTSCHEDULE = 1419761937;
+  var IFCCOSTITEM = 3895139033;
+  var IFCCONTROL = 3293443760;
+  var IFCCONSTRUCTIONRESOURCE = 2559216714;
+  var IFCCONIC = 2510884976;
+  var IFCCOMPOSITECURVE = 3732776249;
+  var IFCCOLUMNTYPE = 300633059;
+  var IFCCIRCLEHOLLOWPROFILEDEF = 2937912522;
+  var IFCBUILDINGSTOREY = 3124254112;
+  var IFCBUILDINGELEMENTTYPE = 1950629157;
+  var IFCBUILDING = 4031249490;
+  var IFCBOUNDEDCURVE = 1260505505;
+  var IFCBOOLEANCLIPPINGRESULT = 3649129432;
+  var IFCBLOCK = 1334484129;
+  var IFCASYMMETRICISHAPEPROFILEDEF = 3207858831;
+  var IFCANNOTATION = 1674181508;
+  var IFCACTOR = 2296667514;
+  var IFCTRANSPORTELEMENTTYPE = 2097647324;
+  var IFCTASK = 3473067441;
+  var IFCSYSTEMFURNITUREELEMENTTYPE = 1580310250;
+  var IFCSURFACEOFREVOLUTION = 4124788165;
+  var IFCSURFACEOFLINEAREXTRUSION = 2809605785;
+  var IFCSURFACECURVESWEPTAREASOLID = 2028607225;
+  var IFCSTRUCTUREDDIMENSIONCALLOUT = 4070609034;
+  var IFCSTRUCTURALSURFACEMEMBERVARYING = 2218152070;
+  var IFCSTRUCTURALSURFACEMEMBER = 3979015343;
+  var IFCSTRUCTURALREACTION = 3689010777;
+  var IFCSTRUCTURALMEMBER = 530289379;
+  var IFCSTRUCTURALITEM = 3136571912;
+  var IFCSTRUCTURALACTIVITY = 3544373492;
+  var IFCSPHERE = 451544542;
+  var IFCSPATIALSTRUCTUREELEMENTTYPE = 3893378262;
+  var IFCSPATIALSTRUCTUREELEMENT = 2706606064;
+  var IFCRIGHTCIRCULARCYLINDER = 3626867408;
+  var IFCRIGHTCIRCULARCONE = 4158566097;
+  var IFCREVOLVEDAREASOLID = 1856042241;
+  var IFCRESOURCE = 2914609552;
+  var IFCRELVOIDSELEMENT = 1401173127;
+  var IFCRELSPACEBOUNDARY = 3451746338;
+  var IFCRELSERVICESBUILDINGS = 366585022;
+  var IFCRELSEQUENCE = 4122056220;
+  var IFCRELSCHEDULESCOSTITEMS = 1058617721;
+  var IFCRELREFERENCEDINSPATIALSTRUCTURE = 1245217292;
+  var IFCRELPROJECTSELEMENT = 750771296;
+  var IFCRELOVERRIDESPROPERTIES = 202636808;
+  var IFCRELOCCUPIESSPACES = 2051452291;
+  var IFCRELNESTS = 3268803585;
+  var IFCRELINTERACTIONREQUIREMENTS = 4189434867;
+  var IFCRELFLOWCONTROLELEMENTS = 279856033;
+  var IFCRELFILLSELEMENT = 3940055652;
+  var IFCRELDEFINESBYTYPE = 781010003;
+  var IFCRELDEFINESBYPROPERTIES = 4186316022;
+  var IFCRELDEFINES = 693640335;
+  var IFCRELDECOMPOSES = 2551354335;
+  var IFCRELCOVERSSPACES = 2802773753;
+  var IFCRELCOVERSBLDGELEMENTS = 886880790;
+  var IFCRELCONTAINEDINSPATIALSTRUCTURE = 3242617779;
+  var IFCRELCONNECTSWITHREALIZINGELEMENTS = 3678494232;
+  var IFCRELCONNECTSWITHECCENTRICITY = 504942748;
+  var IFCRELCONNECTSSTRUCTURALMEMBER = 1638771189;
+  var IFCRELCONNECTSSTRUCTURALELEMENT = 3912681535;
+  var IFCRELCONNECTSSTRUCTURALACTIVITY = 2127690289;
+  var IFCRELCONNECTSPORTS = 3190031847;
+  var IFCRELCONNECTSPORTTOELEMENT = 4201705270;
+  var IFCRELCONNECTSPATHELEMENTS = 3945020480;
+  var IFCRELCONNECTSELEMENTS = 1204542856;
+  var IFCRELCONNECTS = 826625072;
+  var IFCRELASSOCIATESPROFILEPROPERTIES = 2851387026;
+  var IFCRELASSOCIATESMATERIAL = 2655215786;
+  var IFCRELASSOCIATESLIBRARY = 3840914261;
+  var IFCRELASSOCIATESDOCUMENT = 982818633;
+  var IFCRELASSOCIATESCONSTRAINT = 2728634034;
+  var IFCRELASSOCIATESCLASSIFICATION = 919958153;
+  var IFCRELASSOCIATESAPPROVAL = 4095574036;
+  var IFCRELASSOCIATESAPPLIEDVALUE = 1327628568;
+  var IFCRELASSOCIATES = 1865459582;
+  var IFCRELASSIGNSTORESOURCE = 205026976;
+  var IFCRELASSIGNSTOPROJECTORDER = 3372526763;
+  var IFCRELASSIGNSTOPRODUCT = 2857406711;
+  var IFCRELASSIGNSTOPROCESS = 4278684876;
+  var IFCRELASSIGNSTOGROUP = 1307041759;
+  var IFCRELASSIGNSTOCONTROL = 2495723537;
+  var IFCRELASSIGNSTOACTOR = 1683148259;
+  var IFCRELASSIGNS = 3939117080;
+  var IFCRECTANGULARTRIMMEDSURFACE = 3454111270;
+  var IFCRECTANGULARPYRAMID = 2798486643;
+  var IFCRECTANGLEHOLLOWPROFILEDEF = 2770003689;
+  var IFCPROXY = 3219374653;
+  var IFCPROPERTYSET = 1451395588;
+  var IFCPROJECTIONCURVE = 4194566429;
+  var IFCPROJECT = 103090709;
+  var IFCPRODUCT = 4208778838;
+  var IFCPROCESS = 2945172077;
+  var IFCPLANE = 220341763;
+  var IFCPLANARBOX = 603570806;
+  var IFCPERMEABLECOVERINGPROPERTIES = 3566463478;
+  var IFCOFFSETCURVE3D = 3505215534;
+  var IFCOFFSETCURVE2D = 3388369263;
+  var IFCOBJECT = 3888040117;
+  var IFCMANIFOLDSOLIDBREP = 1425443689;
+  var IFCLINE = 1281925730;
+  var IFCLSHAPEPROFILEDEF = 572779678;
+  var IFCISHAPEPROFILEDEF = 1484403080;
+  var IFCGEOMETRICCURVESET = 987898635;
+  var IFCFURNITURETYPE = 1268542332;
+  var IFCFURNISHINGELEMENTTYPE = 4238390223;
+  var IFCFLUIDFLOWPROPERTIES = 3455213021;
+  var IFCFILLAREASTYLETILES = 315944413;
+  var IFCFILLAREASTYLETILESYMBOLWITHSTYLE = 4203026998;
+  var IFCFILLAREASTYLEHATCHING = 374418227;
+  var IFCFACEBASEDSURFACEMODEL = 2047409740;
+  var IFCEXTRUDEDAREASOLID = 477187591;
+  var IFCENERGYPROPERTIES = 80994333;
+  var IFCELLIPSEPROFILEDEF = 2835456948;
+  var IFCELEMENTARYSURFACE = 2777663545;
+  var IFCELEMENTTYPE = 339256511;
+  var IFCELEMENTQUANTITY = 1883228015;
+  var IFCEDGELOOP = 1472233963;
+  var IFCDRAUGHTINGPREDEFINEDCURVEFONT = 4006246654;
+  var IFCDRAUGHTINGPREDEFINEDCOLOUR = 445594917;
+  var IFCDRAUGHTINGCALLOUT = 3073041342;
+  var IFCDOORSTYLE = 526551008;
+  var IFCDOORPANELPROPERTIES = 1714330368;
+  var IFCDOORLININGPROPERTIES = 2963535650;
+  var IFCDIRECTION = 32440307;
+  var IFCDIMENSIONCURVETERMINATOR = 4054601972;
+  var IFCDIMENSIONCURVE = 606661476;
+  var IFCDEFINEDSYMBOL = 693772133;
+  var IFCCURVEBOUNDEDPLANE = 2827736869;
+  var IFCCURVE = 2601014836;
+  var IFCCSGSOLID = 2147822146;
+  var IFCCSGPRIMITIVE3D = 2506170314;
+  var IFCCRANERAILFSHAPEPROFILEDEF = 194851669;
+  var IFCCRANERAILASHAPEPROFILEDEF = 4133800736;
+  var IFCCOMPOSITECURVESEGMENT = 2485617015;
+  var IFCCLOSEDSHELL = 2205249479;
+  var IFCCIRCLEPROFILEDEF = 1383045692;
+  var IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM = 1416205885;
+  var IFCCARTESIANTRANSFORMATIONOPERATOR3D = 3331915920;
+  var IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM = 3486308946;
+  var IFCCARTESIANTRANSFORMATIONOPERATOR2D = 3749851601;
+  var IFCCARTESIANTRANSFORMATIONOPERATOR = 59481748;
+  var IFCCARTESIANPOINT = 1123145078;
+  var IFCCSHAPEPROFILEDEF = 2898889636;
+  var IFCBOXEDHALFSPACE = 2713105998;
+  var IFCBOUNDINGBOX = 2581212453;
+  var IFCBOUNDEDSURFACE = 4182860854;
+  var IFCBOOLEANRESULT = 2736907675;
+  var IFCAXIS2PLACEMENT3D = 2740243338;
+  var IFCAXIS2PLACEMENT2D = 3125803723;
+  var IFCAXIS1PLACEMENT = 4261334040;
+  var IFCANNOTATIONSURFACE = 1302238472;
+  var IFCANNOTATIONFILLAREAOCCURRENCE = 2265737646;
+  var IFCANNOTATIONFILLAREA = 669184980;
+  var IFCANNOTATIONCURVEOCCURRENCE = 3288037868;
+  var IFCZSHAPEPROFILEDEF = 2543172580;
+  var IFCWINDOWSTYLE = 1299126871;
+  var IFCWINDOWPANELPROPERTIES = 512836454;
+  var IFCWINDOWLININGPROPERTIES = 336235671;
+  var IFCVERTEXLOOP = 2759199220;
+  var IFCVECTOR = 1417489154;
+  var IFCUSHAPEPROFILEDEF = 427810014;
+  var IFCTYPEPRODUCT = 2347495698;
+  var IFCTYPEOBJECT = 1628702193;
+  var IFCTWODIRECTIONREPEATFACTOR = 1345879162;
+  var IFCTRAPEZIUMPROFILEDEF = 2715220739;
+  var IFCTEXTLITERALWITHEXTENT = 3124975700;
+  var IFCTEXTLITERAL = 4282788508;
+  var IFCTERMINATORSYMBOL = 3028897424;
+  var IFCTSHAPEPROFILEDEF = 3071757647;
+  var IFCSWEPTSURFACE = 230924584;
+  var IFCSWEPTDISKSOLID = 1260650574;
+  var IFCSWEPTAREASOLID = 2247615214;
+  var IFCSURFACESTYLERENDERING = 1878645084;
+  var IFCSURFACE = 2513912981;
+  var IFCSUBEDGE = 2233826070;
+  var IFCSTRUCTURALSTEELPROFILEPROPERTIES = 3653947884;
+  var IFCSTRUCTURALPROFILEPROPERTIES = 3843319758;
+  var IFCSTRUCTURALLOADSINGLEFORCEWARPING = 1190533807;
+  var IFCSTRUCTURALLOADSINGLEFORCE = 1597423693;
+  var IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION = 1973038258;
+  var IFCSTRUCTURALLOADSINGLEDISPLACEMENT = 2473145415;
+  var IFCSTRUCTURALLOADPLANARFORCE = 2668620305;
+  var IFCSTRUCTURALLOADLINEARFORCE = 1595516126;
+  var IFCSPACETHERMALLOADPROPERTIES = 390701378;
+  var IFCSOUNDVALUE = 1202362311;
+  var IFCSOUNDPROPERTIES = 2485662743;
+  var IFCSOLIDMODEL = 723233188;
+  var IFCSLIPPAGECONNECTIONCONDITION = 2609359061;
+  var IFCSHELLBASEDSURFACEMODEL = 4124623270;
+  var IFCSERVICELIFEFACTOR = 2411513650;
+  var IFCSECTIONEDSPINE = 1509187699;
+  var IFCROUNDEDRECTANGLEPROFILEDEF = 2778083089;
+  var IFCRELATIONSHIP = 478536968;
+  var IFCREINFORCEMENTDEFINITIONPROPERTIES = 3765753017;
+  var IFCREGULARTIMESERIES = 3413951693;
+  var IFCRECTANGLEPROFILEDEF = 3615266464;
+  var IFCPROPERTYTABLEVALUE = 110355661;
+  var IFCPROPERTYSINGLEVALUE = 3650150729;
+  var IFCPROPERTYSETDEFINITION = 3357820518;
+  var IFCPROPERTYREFERENCEVALUE = 941946838;
+  var IFCPROPERTYLISTVALUE = 2752243245;
+  var IFCPROPERTYENUMERATEDVALUE = 4166981789;
+  var IFCPROPERTYDEFINITION = 1680319473;
+  var IFCPROPERTYBOUNDEDVALUE = 871118103;
+  var IFCPRODUCTDEFINITIONSHAPE = 673634403;
+  var IFCPREDEFINEDPOINTMARKERSYMBOL = 179317114;
+  var IFCPREDEFINEDDIMENSIONSYMBOL = 433424934;
+  var IFCPREDEFINEDCURVEFONT = 2559016684;
+  var IFCPREDEFINEDCOLOUR = 759155922;
+  var IFCPOLYGONALBOUNDEDHALFSPACE = 2775532180;
+  var IFCPOLYLOOP = 2924175390;
+  var IFCPOINTONSURFACE = 1423911732;
+  var IFCPOINTONCURVE = 4022376103;
+  var IFCPOINT = 2067069095;
+  var IFCPLANAREXTENT = 1663979128;
+  var IFCPLACEMENT = 2004835150;
+  var IFCPIXELTEXTURE = 597895409;
+  var IFCPHYSICALCOMPLEXQUANTITY = 3021840470;
+  var IFCPATH = 2519244187;
+  var IFCPARAMETERIZEDPROFILEDEF = 2529465313;
+  var IFCORIENTEDEDGE = 1029017970;
+  var IFCOPENSHELL = 2665983363;
+  var IFCONEDIRECTIONREPEATFACTOR = 2833995503;
+  var IFCOBJECTDEFINITION = 219451334;
+  var IFCMECHANICALCONCRETEMATERIALPROPERTIES = 1430189142;
+  var IFCMATERIALDEFINITIONREPRESENTATION = 2022407955;
+  var IFCMAPPEDITEM = 2347385850;
+  var IFCLOOP = 1008929658;
+  var IFCLOCALPLACEMENT = 2624227202;
+  var IFCLIGHTSOURCESPOT = 3422422726;
+  var IFCLIGHTSOURCEPOSITIONAL = 1520743889;
+  var IFCLIGHTSOURCEGONIOMETRIC = 4266656042;
+  var IFCLIGHTSOURCEDIRECTIONAL = 2604431987;
+  var IFCLIGHTSOURCEAMBIENT = 125510826;
+  var IFCLIGHTSOURCE = 1402838566;
+  var IFCIRREGULARTIMESERIES = 3741457305;
+  var IFCIMAGETEXTURE = 3905492369;
+  var IFCHYGROSCOPICMATERIALPROPERTIES = 2445078500;
+  var IFCHALFSPACESOLID = 812098782;
+  var IFCGRIDPLACEMENT = 178086475;
+  var IFCGEOMETRICSET = 3590301190;
+  var IFCGEOMETRICREPRESENTATIONSUBCONTEXT = 4142052618;
+  var IFCGEOMETRICREPRESENTATIONITEM = 2453401579;
+  var IFCGEOMETRICREPRESENTATIONCONTEXT = 3448662350;
+  var IFCGENERALPROFILEPROPERTIES = 1446786286;
+  var IFCGENERALMATERIALPROPERTIES = 803998398;
+  var IFCFUELPROPERTIES = 3857492461;
+  var IFCFILLAREASTYLE = 738692330;
+  var IFCFAILURECONNECTIONCONDITION = 4219587988;
+  var IFCFACESURFACE = 3008276851;
+  var IFCFACEOUTERBOUND = 803316827;
+  var IFCFACEBOUND = 1809719519;
+  var IFCFACE = 2556980723;
+  var IFCEXTENDEDMATERIALPROPERTIES = 1860660968;
+  var IFCEDGECURVE = 476780140;
+  var IFCEDGE = 3900360178;
+  var IFCDRAUGHTINGPREDEFINEDTEXTFONT = 4170525392;
+  var IFCDOCUMENTREFERENCE = 3732053477;
+  var IFCDIMENSIONPAIR = 1694125774;
+  var IFCDIMENSIONCALLOUTRELATIONSHIP = 2273265877;
+  var IFCDERIVEDPROFILEDEF = 3632507154;
+  var IFCCURVESTYLE = 3800577675;
+  var IFCCONVERSIONBASEDUNIT = 2889183280;
+  var IFCCONTEXTDEPENDENTUNIT = 3050246964;
+  var IFCCONNECTIONPOINTECCENTRICITY = 45288368;
+  var IFCCONNECTIONCURVEGEOMETRY = 1981873012;
+  var IFCCONNECTEDFACESET = 370225590;
+  var IFCCOMPOSITEPROFILEDEF = 1485152156;
+  var IFCCOMPLEXPROPERTY = 2542286263;
+  var IFCCOLOURRGB = 776857604;
+  var IFCCLASSIFICATIONREFERENCE = 647927063;
+  var IFCCENTERLINEPROFILEDEF = 3150382593;
+  var IFCBLOBTEXTURE = 616511568;
+  var IFCARBITRARYPROFILEDEFWITHVOIDS = 2705031697;
+  var IFCARBITRARYOPENPROFILEDEF = 1310608509;
+  var IFCARBITRARYCLOSEDPROFILEDEF = 3798115385;
+  var IFCANNOTATIONTEXTOCCURRENCE = 2297822566;
+  var IFCANNOTATIONSYMBOLOCCURRENCE = 3612888222;
+  var IFCANNOTATIONSURFACEOCCURRENCE = 962685235;
+  var IFCANNOTATIONOCCURRENCE = 2442683028;
+  var IFCWATERPROPERTIES = 1065908215;
+  var IFCVIRTUALGRIDINTERSECTION = 891718957;
+  var IFCVERTEXPOINT = 1907098498;
+  var IFCVERTEXBASEDTEXTUREMAP = 3304826586;
+  var IFCVERTEX = 2799835756;
+  var IFCUNITASSIGNMENT = 180925521;
+  var IFCTOPOLOGYREPRESENTATION = 1735638870;
+  var IFCTOPOLOGICALREPRESENTATIONITEM = 1377556343;
+  var IFCTIMESERIESVALUE = 581633288;
+  var IFCTIMESERIESREFERENCERELATIONSHIP = 1718945513;
+  var IFCTIMESERIES = 3101149627;
+  var IFCTHERMALMATERIALPROPERTIES = 3317419933;
+  var IFCTEXTUREVERTEX = 1210645708;
+  var IFCTEXTUREMAP = 2552916305;
+  var IFCTEXTURECOORDINATEGENERATOR = 1742049831;
+  var IFCTEXTURECOORDINATE = 280115917;
+  var IFCTEXTSTYLEWITHBOXCHARACTERISTICS = 1484833681;
+  var IFCTEXTSTYLETEXTMODEL = 1640371178;
+  var IFCTEXTSTYLEFORDEFINEDFONT = 2636378356;
+  var IFCTEXTSTYLEFONTMODEL = 1983826977;
+  var IFCTEXTSTYLE = 1447204868;
+  var IFCTELECOMADDRESS = 912023232;
+  var IFCTABLEROW = 531007025;
+  var IFCTABLE = 985171141;
+  var IFCSYMBOLSTYLE = 1290481447;
+  var IFCSURFACETEXTURE = 626085974;
+  var IFCSURFACESTYLEWITHTEXTURES = 1351298697;
+  var IFCSURFACESTYLESHADING = 846575682;
+  var IFCSURFACESTYLEREFRACTION = 1607154358;
+  var IFCSURFACESTYLELIGHTING = 3303107099;
+  var IFCSURFACESTYLE = 1300840506;
+  var IFCSTYLEDREPRESENTATION = 3049322572;
+  var IFCSTYLEDITEM = 3958052878;
+  var IFCSTYLEMODEL = 2830218821;
+  var IFCSTRUCTURALLOADTEMPERATURE = 3408363356;
+  var IFCSTRUCTURALLOADSTATIC = 2525727697;
+  var IFCSTRUCTURALLOAD = 2162789131;
+  var IFCSTRUCTURALCONNECTIONCONDITION = 2273995522;
+  var IFCSIMPLEPROPERTY = 3692461612;
+  var IFCSHAPEREPRESENTATION = 4240577450;
+  var IFCSHAPEMODEL = 3982875396;
+  var IFCSHAPEASPECT = 867548509;
+  var IFCSECTIONREINFORCEMENTPROPERTIES = 4165799628;
+  var IFCSECTIONPROPERTIES = 2042790032;
+  var IFCSIUNIT = 448429030;
+  var IFCROOT = 2341007311;
+  var IFCRIBPLATEPROFILEPROPERTIES = 3679540991;
+  var IFCREPRESENTATIONMAP = 1660063152;
+  var IFCREPRESENTATIONITEM = 3008791417;
+  var IFCREPRESENTATIONCONTEXT = 3377609919;
+  var IFCREPRESENTATION = 1076942058;
+  var IFCRELAXATION = 1222501353;
+  var IFCREINFORCEMENTBARPROPERTIES = 1580146022;
+  var IFCREFERENCESVALUEDOCUMENT = 2692823254;
+  var IFCQUANTITYWEIGHT = 825690147;
+  var IFCQUANTITYVOLUME = 2405470396;
+  var IFCQUANTITYTIME = 3252649465;
+  var IFCQUANTITYLENGTH = 931644368;
+  var IFCQUANTITYCOUNT = 2093928680;
+  var IFCQUANTITYAREA = 2044713172;
+  var IFCPROPERTYENUMERATION = 3710013099;
+  var IFCPROPERTYDEPENDENCYRELATIONSHIP = 148025276;
+  var IFCPROPERTYCONSTRAINTRELATIONSHIP = 3896028662;
+  var IFCPROPERTY = 2598011224;
+  var IFCPROFILEPROPERTIES = 2802850158;
+  var IFCPROFILEDEF = 3958567839;
+  var IFCPRODUCTSOFCOMBUSTIONPROPERTIES = 2267347899;
+  var IFCPRODUCTREPRESENTATION = 2095639259;
+  var IFCPRESENTATIONSTYLEASSIGNMENT = 2417041796;
+  var IFCPRESENTATIONSTYLE = 3119450353;
+  var IFCPRESENTATIONLAYERWITHSTYLE = 1304840413;
+  var IFCPRESENTATIONLAYERASSIGNMENT = 2022622350;
+  var IFCPREDEFINEDTEXTFONT = 1775413392;
+  var IFCPREDEFINEDTERMINATORSYMBOL = 3213052703;
+  var IFCPREDEFINEDSYMBOL = 990879717;
+  var IFCPREDEFINEDITEM = 3727388367;
+  var IFCPOSTALADDRESS = 3355820592;
+  var IFCPHYSICALSIMPLEQUANTITY = 2226359599;
+  var IFCPHYSICALQUANTITY = 2483315170;
+  var IFCPERSONANDORGANIZATION = 101040310;
+  var IFCPERSON = 2077209135;
+  var IFCOWNERHISTORY = 1207048766;
+  var IFCORGANIZATIONRELATIONSHIP = 1411181986;
+  var IFCORGANIZATION = 4251960020;
+  var IFCOPTICALMATERIALPROPERTIES = 1227763645;
+  var IFCOBJECTIVE = 2251480897;
+  var IFCOBJECTPLACEMENT = 3701648758;
+  var IFCNAMEDUNIT = 1918398963;
+  var IFCMONETARYUNIT = 2706619895;
+  var IFCMETRIC = 3368373690;
+  var IFCMECHANICALSTEELMATERIALPROPERTIES = 677618848;
+  var IFCMECHANICALMATERIALPROPERTIES = 4256014907;
+  var IFCMEASUREWITHUNIT = 2597039031;
+  var IFCMATERIALPROPERTIES = 3265635763;
+  var IFCMATERIALLIST = 2199411900;
+  var IFCMATERIALLAYERSETUSAGE = 1303795690;
+  var IFCMATERIALLAYERSET = 3303938423;
+  var IFCMATERIALLAYER = 248100487;
+  var IFCMATERIALCLASSIFICATIONRELATIONSHIP = 1847130766;
+  var IFCMATERIAL = 1838606355;
+  var IFCLOCALTIME = 30780891;
+  var IFCLIGHTINTENSITYDISTRIBUTION = 1566485204;
+  var IFCLIGHTDISTRIBUTIONDATA = 4162380809;
+  var IFCLIBRARYREFERENCE = 3452421091;
+  var IFCLIBRARYINFORMATION = 2655187982;
+  var IFCIRREGULARTIMESERIESVALUE = 3020489413;
+  var IFCGRIDAXIS = 852622518;
+  var IFCEXTERNALLYDEFINEDTEXTFONT = 3548104201;
+  var IFCEXTERNALLYDEFINEDSYMBOL = 3207319532;
+  var IFCEXTERNALLYDEFINEDSURFACESTYLE = 1040185647;
+  var IFCEXTERNALLYDEFINEDHATCHSTYLE = 2242383968;
+  var IFCEXTERNALREFERENCE = 3200245327;
+  var IFCENVIRONMENTALIMPACTVALUE = 1648886627;
+  var IFCDRAUGHTINGCALLOUTRELATIONSHIP = 3796139169;
+  var IFCDOCUMENTINFORMATIONRELATIONSHIP = 770865208;
+  var IFCDOCUMENTINFORMATION = 1154170062;
+  var IFCDOCUMENTELECTRONICFORMAT = 1376555844;
+  var IFCDIMENSIONALEXPONENTS = 2949456006;
+  var IFCDERIVEDUNITELEMENT = 1045800335;
+  var IFCDERIVEDUNIT = 1765591967;
+  var IFCDATEANDTIME = 1072939445;
+  var IFCCURVESTYLEFONTPATTERN = 3510044353;
+  var IFCCURVESTYLEFONTANDSCALING = 2367409068;
+  var IFCCURVESTYLEFONT = 1105321065;
+  var IFCCURRENCYRELATIONSHIP = 539742890;
+  var IFCCOSTVALUE = 602808272;
+  var IFCCOORDINATEDUNIVERSALTIMEOFFSET = 1065062679;
+  var IFCCONSTRAINTRELATIONSHIP = 347226245;
+  var IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP = 613356794;
+  var IFCCONSTRAINTAGGREGATIONRELATIONSHIP = 1658513725;
+  var IFCCONSTRAINT = 1959218052;
+  var IFCCONNECTIONSURFACEGEOMETRY = 2732653382;
+  var IFCCONNECTIONPORTGEOMETRY = 4257277454;
+  var IFCCONNECTIONPOINTGEOMETRY = 2614616156;
+  var IFCCONNECTIONGEOMETRY = 2859738748;
+  var IFCCOLOURSPECIFICATION = 3264961684;
+  var IFCCLASSIFICATIONNOTATIONFACET = 3639012971;
+  var IFCCLASSIFICATIONNOTATION = 938368621;
+  var IFCCLASSIFICATIONITEMRELATIONSHIP = 1098599126;
+  var IFCCLASSIFICATIONITEM = 1767535486;
+  var IFCCLASSIFICATION = 747523909;
+  var IFCCALENDARDATE = 622194075;
+  var IFCBOUNDARYNODECONDITIONWARPING = 2069777674;
+  var IFCBOUNDARYNODECONDITION = 1387855156;
+  var IFCBOUNDARYFACECONDITION = 3367102660;
+  var IFCBOUNDARYEDGECONDITION = 1560379544;
+  var IFCBOUNDARYCONDITION = 4037036970;
+  var IFCAPPROVALRELATIONSHIP = 3869604511;
+  var IFCAPPROVALPROPERTYRELATIONSHIP = 390851274;
+  var IFCAPPROVALACTORRELATIONSHIP = 2080292479;
+  var IFCAPPROVAL = 130549933;
+  var IFCAPPLIEDVALUERELATIONSHIP = 1110488051;
+  var IFCAPPLIEDVALUE = 411424972;
+  var IFCAPPLICATION = 639542469;
+  var IFCADDRESS = 618182010;
+  var IFCACTORROLE = 3630933823;
+  var FILE_DESCRIPTION = 599546466;
+  var FILE_NAME = 1390159747;
+  var FILE_SCHEMA = 1109904537;
+  var Handle = class {
+    constructor(value) {
+      this.value = value;
+      this.type = 5;
+    }
+  };
+  var logical;
+  (function(logical2) {
+    logical2[logical2["FALSE"] = 0] = "FALSE";
+    logical2[logical2["TRUE"] = 1] = "TRUE";
+    logical2[logical2["UNKNOWN"] = 2] = "UNKNOWN";
+  })(logical || (logical = {}));
+  var IfcLineObject = class {
+    constructor(expressID = -1) {
+      this.expressID = expressID;
+      this.type = 0;
+    }
+  };
+  var FromRawLineData = [];
+  var InversePropertyDef = {};
+  var InheritanceDef = {};
+  var Constructors = {};
+  var ToRawLineData = {};
+  var TypeInitialisers = {};
+  var SchemaNames = [];
+  function TypeInitialiser(schema, tapeItem) {
+    if (Array.isArray(tapeItem))
+      tapeItem.map((p) => TypeInitialiser(schema, p));
+    if (tapeItem.typecode)
+      return TypeInitialisers[schema][tapeItem.typecode](tapeItem.value);
+    else
+      return tapeItem.value;
+  }
+  function Labelise(tapeItem) {
+    tapeItem.value = tapeItem.value.toString();
+    tapeItem.valueType = tapeItem.type;
+    tapeItem.type = 2;
+    tapeItem.label = tapeItem.constructor.name.toUpperCase();
+    return tapeItem;
+  }
+  var Schemas;
+  (function(Schemas2) {
+    Schemas2["IFC2X3"] = "IFC2X3";
+    Schemas2["IFC4"] = "IFC4";
+    Schemas2["IFC4X3"] = "IFC4X3";
+  })(Schemas || (Schemas = {}));
+  SchemaNames[1] = ["IFC2X3", "IFC2X_FINAL"];
+  FromRawLineData[1] = {
+    3630933823: (v) => new IFC2X3.IfcActorRole(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value)),
+    618182010: (v) => new IFC2X3.IfcAddress(v[0], !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    639542469: (v) => new IFC2X3.IfcApplication(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new IFC2X3.IfcIdentifier(!v[3] ? null : v[3].value)),
+    411424972: (v) => new IFC2X3.IfcAppliedValue(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),
+    1110488051: (v) => {
+      var _a;
+      return new IFC2X3.IfcAppliedValueRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value));
+    },
+    130549933: (v) => new IFC2X3.IfcApproval(!v[0] ? null : new IFC2X3.IfcText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value), new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), new IFC2X3.IfcIdentifier(!v[6] ? null : v[6].value)),
+    2080292479: (v) => new IFC2X3.IfcApprovalActorRelationship(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    390851274: (v) => {
+      var _a;
+      return new IFC2X3.IfcApprovalPropertyRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));
+    },
+    3869604511: (v) => new IFC2X3.IfcApprovalRelationship(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), new IFC2X3.IfcLabel(!v[3] ? null : v[3].value)),
+    4037036970: (v) => new IFC2X3.IfcBoundaryCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    1560379544: (v) => new IFC2X3.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(!v[6] ? null : v[6].value)),
+    3367102660: (v) => new IFC2X3.IfcBoundaryFaceCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfSubgradeReactionMeasure(!v[3] ? null : v[3].value)),
+    1387855156: (v) => new IFC2X3.IfcBoundaryNodeCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[6] ? null : v[6].value)),
+    2069777674: (v) => new IFC2X3.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLinearStiffnessMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcRotationalStiffnessMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)),
+    622194075: (v) => new IFC2X3.IfcCalendarDate(new IFC2X3.IfcDayInMonthNumber(!v[0] ? null : v[0].value), new IFC2X3.IfcMonthInYearNumber(!v[1] ? null : v[1].value), new IFC2X3.IfcYearNumber(!v[2] ? null : v[2].value)),
+    747523909: (v) => new IFC2X3.IfcClassification(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcLabel(!v[3] ? null : v[3].value)),
+    1767535486: (v) => new IFC2X3.IfcClassificationItem(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    1098599126: (v) => {
+      var _a;
+      return new IFC2X3.IfcClassificationItemRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    938368621: (v) => {
+      var _a;
+      return new IFC2X3.IfcClassificationNotation(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3639012971: (v) => new IFC2X3.IfcClassificationNotationFacet(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    3264961684: (v) => new IFC2X3.IfcColourSpecification(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2859738748: (_) => new IFC2X3.IfcConnectionGeometry(),
+    2614616156: (v) => new IFC2X3.IfcConnectionPointGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    4257277454: (v) => new IFC2X3.IfcConnectionPortGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2732653382: (v) => new IFC2X3.IfcConnectionSurfaceGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    1959218052: (v) => new IFC2X3.IfcConstraint(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value)),
+    1658513725: (v) => {
+      var _a;
+      return new IFC2X3.IfcConstraintAggregationRelationship(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[4]);
+    },
+    613356794: (v) => {
+      var _a;
+      return new IFC2X3.IfcConstraintClassificationRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    347226245: (v) => {
+      var _a;
+      return new IFC2X3.IfcConstraintRelationship(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1065062679: (v) => new IFC2X3.IfcCoordinatedUniversalTimeOffset(new IFC2X3.IfcHourInDay(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcMinuteInHour(!v[1] ? null : v[1].value), v[2]),
+    602808272: (v) => new IFC2X3.IfcCostValue(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcText(!v[7] ? null : v[7].value)),
+    539742890: (v) => new IFC2X3.IfcCurrencyRelationship(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    1105321065: (v) => {
+      var _a;
+      return new IFC2X3.IfcCurveStyleFont(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2367409068: (v) => new IFC2X3.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)),
+    3510044353: (v) => new IFC2X3.IfcCurveStyleFontPattern(new IFC2X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    1072939445: (v) => new IFC2X3.IfcDateAndTime(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1765591967: (v) => {
+      var _a;
+      return new IFC2X3.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[1], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    1045800335: (v) => new IFC2X3.IfcDerivedUnitElement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),
+    2949456006: (v) => new IFC2X3.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),
+    1376555844: (v) => new IFC2X3.IfcDocumentElectronicFormat(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    1154170062: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDocumentInformation(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value), v[15], v[16]);
+    },
+    770865208: (v) => {
+      var _a;
+      return new IFC2X3.IfcDocumentInformationRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    3796139169: (v) => new IFC2X3.IfcDraughtingCalloutRelationship(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    1648886627: (v) => new IFC2X3.IfcEnvironmentalImpactValue(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value)),
+    3200245327: (v) => new IFC2X3.IfcExternalReference(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    2242383968: (v) => new IFC2X3.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    1040185647: (v) => new IFC2X3.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    3207319532: (v) => new IFC2X3.IfcExternallyDefinedSymbol(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    3548104201: (v) => new IFC2X3.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    852622518: (v) => new IFC2X3.IfcGridAxis(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC2X3.IfcBoolean(!v[2] ? null : v[2].value)),
+    3020489413: (v) => {
+      var _a;
+      return new IFC2X3.IfcIrregularTimeSeriesValue(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []);
+    },
+    2655187982: (v) => {
+      var _a;
+      return new IFC2X3.IfcLibraryInformation(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3452421091: (v) => new IFC2X3.IfcLibraryReference(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    4162380809: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcLightDistributionData(new IFC2X3.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []);
+    },
+    1566485204: (v) => {
+      var _a;
+      return new IFC2X3.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    30780891: (v) => new IFC2X3.IfcLocalTime(new IFC2X3.IfcHourInDay(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcMinuteInHour(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcSecondInMinute(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcDaylightSavingHour(!v[4] ? null : v[4].value)),
+    1838606355: (v) => new IFC2X3.IfcMaterial(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    1847130766: (v) => {
+      var _a;
+      return new IFC2X3.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));
+    },
+    248100487: (v) => new IFC2X3.IfcMaterialLayer(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLogical(!v[2] ? null : v[2].value)),
+    3303938423: (v) => {
+      var _a;
+      return new IFC2X3.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value));
+    },
+    1303795690: (v) => new IFC2X3.IfcMaterialLayerSetUsage(new Handle(!v[0] ? null : v[0].value), v[1], v[2], new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    2199411900: (v) => {
+      var _a;
+      return new IFC2X3.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3265635763: (v) => new IFC2X3.IfcMaterialProperties(new Handle(!v[0] ? null : v[0].value)),
+    2597039031: (v) => new IFC2X3.IfcMeasureWithUnit(TypeInitialiser(1, v[0]), new Handle(!v[1] ? null : v[1].value)),
+    4256014907: (v) => new IFC2X3.IfcMechanicalMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value)),
+    677618848: (v) => {
+      var _a;
+      return new IFC2X3.IfcMechanicalSteelMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPressureMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPressureMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPressureMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : ((_a = v[12]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3368373690: (v) => new IFC2X3.IfcMetric(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value)),
+    2706619895: (v) => new IFC2X3.IfcMonetaryUnit(v[0]),
+    1918398963: (v) => new IFC2X3.IfcNamedUnit(new Handle(!v[0] ? null : v[0].value), v[1]),
+    3701648758: (_) => new IFC2X3.IfcObjectPlacement(),
+    2251480897: (v) => new IFC2X3.IfcObjective(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC2X3.IfcLabel(!v[10] ? null : v[10].value)),
+    1227763645: (v) => new IFC2X3.IfcOpticalMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[9] ? null : v[9].value)),
+    4251960020: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcOrganization(!v[0] ? null : new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1411181986: (v) => {
+      var _a;
+      return new IFC2X3.IfcOrganizationRelationship(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1207048766: (v) => new IFC2X3.IfcOwnerHistory(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC2X3.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC2X3.IfcTimeStamp(!v[7] ? null : v[7].value)),
+    2077209135: (v) => {
+      var _a, _b, _c, _d, _e;
+      return new IFC2X3.IfcPerson(!v[0] ? null : new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    101040310: (v) => {
+      var _a;
+      return new IFC2X3.IfcPersonAndOrganization(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2483315170: (v) => new IFC2X3.IfcPhysicalQuantity(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value)),
+    2226359599: (v) => new IFC2X3.IfcPhysicalSimpleQuantity(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    3355820592: (v) => {
+      var _a;
+      return new IFC2X3.IfcPostalAddress(v[0], !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcLabel(!v[9] ? null : v[9].value));
+    },
+    3727388367: (v) => new IFC2X3.IfcPreDefinedItem(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    990879717: (v) => new IFC2X3.IfcPreDefinedSymbol(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    3213052703: (v) => new IFC2X3.IfcPreDefinedTerminatorSymbol(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    1775413392: (v) => new IFC2X3.IfcPreDefinedTextFont(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2022622350: (v) => {
+      var _a;
+      return new IFC2X3.IfcPresentationLayerAssignment(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC2X3.IfcIdentifier(!v[3] ? null : v[3].value));
+    },
+    1304840413: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcPresentationLayerWithStyle(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC2X3.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value, !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3119450353: (v) => new IFC2X3.IfcPresentationStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2417041796: (v) => {
+      var _a;
+      return new IFC2X3.IfcPresentationStyleAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2095639259: (v) => {
+      var _a;
+      return new IFC2X3.IfcProductRepresentation(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2267347899: (v) => new IFC2X3.IfcProductsOfCombustionProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcSpecificHeatCapacityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value)),
+    3958567839: (v) => new IFC2X3.IfcProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value)),
+    2802850158: (v) => new IFC2X3.IfcProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    2598011224: (v) => new IFC2X3.IfcProperty(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value)),
+    3896028662: (v) => {
+      var _a;
+      return new IFC2X3.IfcPropertyConstraintRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value));
+    },
+    148025276: (v) => new IFC2X3.IfcPropertyDependencyRelationship(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value)),
+    3710013099: (v) => {
+      var _a;
+      return new IFC2X3.IfcPropertyEnumeration(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[2] ? null : new Handle(!v[2] ? null : v[2].value));
+    },
+    2044713172: (v) => new IFC2X3.IfcQuantityArea(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcAreaMeasure(!v[3] ? null : v[3].value)),
+    2093928680: (v) => new IFC2X3.IfcQuantityCount(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcCountMeasure(!v[3] ? null : v[3].value)),
+    931644368: (v) => new IFC2X3.IfcQuantityLength(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    3252649465: (v) => new IFC2X3.IfcQuantityTime(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcTimeMeasure(!v[3] ? null : v[3].value)),
+    2405470396: (v) => new IFC2X3.IfcQuantityVolume(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcVolumeMeasure(!v[3] ? null : v[3].value)),
+    825690147: (v) => new IFC2X3.IfcQuantityWeight(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcMassMeasure(!v[3] ? null : v[3].value)),
+    2692823254: (v) => {
+      var _a;
+      return new IFC2X3.IfcReferencesValueDocument(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value));
+    },
+    1580146022: (v) => new IFC2X3.IfcReinforcementBarProperties(new IFC2X3.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcCountMeasure(!v[5] ? null : v[5].value)),
+    1222501353: (v) => new IFC2X3.IfcRelaxation(new IFC2X3.IfcNormalisedRatioMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)),
+    1076942058: (v) => {
+      var _a;
+      return new IFC2X3.IfcRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3377609919: (v) => new IFC2X3.IfcRepresentationContext(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value)),
+    3008791417: (_) => new IFC2X3.IfcRepresentationItem(),
+    1660063152: (v) => new IFC2X3.IfcRepresentationMap(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    3679540991: (v) => new IFC2X3.IfcRibPlateProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), v[6]),
+    2341007311: (v) => new IFC2X3.IfcRoot(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),
+    448429030: (v) => new IFC2X3.IfcSIUnit(v[0], v[1], v[2]),
+    2042790032: (v) => new IFC2X3.IfcSectionProperties(v[0], new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    4165799628: (v) => {
+      var _a;
+      return new IFC2X3.IfcSectionReinforcementProperties(new IFC2X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    867548509: (v) => {
+      var _a;
+      return new IFC2X3.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : v[3].value, new Handle(!v[4] ? null : v[4].value));
+    },
+    3982875396: (v) => {
+      var _a;
+      return new IFC2X3.IfcShapeModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    4240577450: (v) => {
+      var _a;
+      return new IFC2X3.IfcShapeRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3692461612: (v) => new IFC2X3.IfcSimpleProperty(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value)),
+    2273995522: (v) => new IFC2X3.IfcStructuralConnectionCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2162789131: (v) => new IFC2X3.IfcStructuralLoad(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2525727697: (v) => new IFC2X3.IfcStructuralLoadStatic(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    3408363356: (v) => new IFC2X3.IfcStructuralLoadTemperature(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)),
+    2830218821: (v) => {
+      var _a;
+      return new IFC2X3.IfcStyleModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3958052878: (v) => {
+      var _a;
+      return new IFC2X3.IfcStyledItem(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    3049322572: (v) => {
+      var _a;
+      return new IFC2X3.IfcStyledRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1300840506: (v) => {
+      var _a;
+      return new IFC2X3.IfcSurfaceStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3303107099: (v) => new IFC2X3.IfcSurfaceStyleLighting(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    1607154358: (v) => new IFC2X3.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC2X3.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcReal(!v[1] ? null : v[1].value)),
+    846575682: (v) => new IFC2X3.IfcSurfaceStyleShading(new Handle(!v[0] ? null : v[0].value)),
+    1351298697: (v) => {
+      var _a;
+      return new IFC2X3.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    626085974: (v) => new IFC2X3.IfcSurfaceTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),
+    1290481447: (v) => new IFC2X3.IfcSymbolStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), TypeInitialiser(1, v[1])),
+    985171141: (v) => {
+      var _a;
+      return new IFC2X3.IfcTable(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    531007025: (v) => {
+      var _a;
+      return new IFC2X3.IfcTableRow(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[1] ? null : v[1].value);
+    },
+    912023232: (v) => {
+      var _a, _b, _c;
+      return new IFC2X3.IfcTelecomAddress(v[0], !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value));
+    },
+    1447204868: (v) => new IFC2X3.IfcTextStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    1983826977: (v) => {
+      var _a;
+      return new IFC2X3.IfcTextStyleFontModel(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(1, v[5]));
+    },
+    2636378356: (v) => new IFC2X3.IfcTextStyleForDefinedFont(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    1640371178: (v) => new IFC2X3.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(1, v[0]), !v[1] ? null : new IFC2X3.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : TypeInitialiser(1, v[4]), !v[5] ? null : new IFC2X3.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])),
+    1484833681: (v) => new IFC2X3.IfcTextStyleWithBoxCharacteristics(!v[0] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), !v[4] ? null : TypeInitialiser(1, v[4])),
+    280115917: (_) => new IFC2X3.IfcTextureCoordinate(),
+    1742049831: (v) => {
+      var _a;
+      return new IFC2X3.IfcTextureCoordinateGenerator(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []);
+    },
+    2552916305: (v) => {
+      var _a;
+      return new IFC2X3.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1210645708: (v) => {
+      var _a;
+      return new IFC2X3.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcParameterValue(p.value) : null)) || []);
+    },
+    3317419933: (v) => new IFC2X3.IfcThermalMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcSpecificHeatCapacityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcThermalConductivityMeasure(!v[4] ? null : v[4].value)),
+    3101149627: (v) => new IFC2X3.IfcTimeSeries(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    1718945513: (v) => {
+      var _a;
+      return new IFC2X3.IfcTimeSeriesReferenceRelationship(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    581633288: (v) => {
+      var _a;
+      return new IFC2X3.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || []);
+    },
+    1377556343: (_) => new IFC2X3.IfcTopologicalRepresentationItem(),
+    1735638870: (v) => {
+      var _a;
+      return new IFC2X3.IfcTopologyRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    180925521: (v) => {
+      var _a;
+      return new IFC2X3.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2799835756: (_) => new IFC2X3.IfcVertex(),
+    3304826586: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcVertexBasedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1907098498: (v) => new IFC2X3.IfcVertexPoint(new Handle(!v[0] ? null : v[0].value)),
+    891718957: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLengthMeasure(p.value) : null)) || []);
+    },
+    1065908215: (v) => new IFC2X3.IfcWaterProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : !v[1] ? null : v[1].value, !v[2] ? null : new IFC2X3.IfcIonConcentrationMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcIonConcentrationMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcIonConcentrationMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPHMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[7] ? null : v[7].value)),
+    2442683028: (v) => {
+      var _a;
+      return new IFC2X3.IfcAnnotationOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    962685235: (v) => {
+      var _a;
+      return new IFC2X3.IfcAnnotationSurfaceOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    3612888222: (v) => {
+      var _a;
+      return new IFC2X3.IfcAnnotationSymbolOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    2297822566: (v) => {
+      var _a;
+      return new IFC2X3.IfcAnnotationTextOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    3798115385: (v) => new IFC2X3.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1310608509: (v) => new IFC2X3.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2705031697: (v) => {
+      var _a;
+      return new IFC2X3.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    616511568: (v) => new IFC2X3.IfcBlobTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : v[5].value),
+    3150382593: (v) => new IFC2X3.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    647927063: (v) => new IFC2X3.IfcClassificationReference(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),
+    776857604: (v) => new IFC2X3.IfcColourRgb(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new IFC2X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    2542286263: (v) => {
+      var _a;
+      return new IFC2X3.IfcComplexProperty(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new IFC2X3.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1485152156: (v) => {
+      var _a;
+      return new IFC2X3.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC2X3.IfcLabel(!v[3] ? null : v[3].value));
+    },
+    370225590: (v) => {
+      var _a;
+      return new IFC2X3.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1981873012: (v) => new IFC2X3.IfcConnectionCurveGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    45288368: (v) => new IFC2X3.IfcConnectionPointEccentricity(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLengthMeasure(!v[4] ? null : v[4].value)),
+    3050246964: (v) => new IFC2X3.IfcContextDependentUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    2889183280: (v) => new IFC2X3.IfcConversionBasedUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    3800577675: (v) => new IFC2X3.IfcCurveStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),
+    3632507154: (v) => new IFC2X3.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    2273265877: (v) => new IFC2X3.IfcDimensionCalloutRelationship(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    1694125774: (v) => new IFC2X3.IfcDimensionPair(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    3732053477: (v) => new IFC2X3.IfcDocumentReference(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value)),
+    4170525392: (v) => new IFC2X3.IfcDraughtingPreDefinedTextFont(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    3900360178: (v) => new IFC2X3.IfcEdge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    476780140: (v) => new IFC2X3.IfcEdgeCurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : v[3].value),
+    1860660968: (v) => {
+      var _a;
+      return new IFC2X3.IfcExtendedMaterialProperties(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcText(!v[2] ? null : v[2].value), new IFC2X3.IfcLabel(!v[3] ? null : v[3].value));
+    },
+    2556980723: (v) => {
+      var _a;
+      return new IFC2X3.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1809719519: (v) => new IFC2X3.IfcFaceBound(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),
+    803316827: (v) => new IFC2X3.IfcFaceOuterBound(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),
+    3008276851: (v) => {
+      var _a;
+      return new IFC2X3.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value);
+    },
+    4219587988: (v) => new IFC2X3.IfcFailureConnectionCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcForceMeasure(!v[6] ? null : v[6].value)),
+    738692330: (v) => {
+      var _a;
+      return new IFC2X3.IfcFillAreaStyle(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3857492461: (v) => new IFC2X3.IfcFuelProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcHeatingValueMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcHeatingValueMeasure(!v[4] ? null : v[4].value)),
+    803998398: (v) => new IFC2X3.IfcGeneralMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcMolecularWeightMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcMassDensityMeasure(!v[3] ? null : v[3].value)),
+    1446786286: (v) => new IFC2X3.IfcGeneralProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(!v[6] ? null : v[6].value)),
+    3448662350: (v) => new IFC2X3.IfcGeometricRepresentationContext(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new IFC2X3.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),
+    2453401579: (_) => new IFC2X3.IfcGeometricRepresentationItem(),
+    4142052618: (v) => new IFC2X3.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value)),
+    3590301190: (v) => {
+      var _a;
+      return new IFC2X3.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    178086475: (v) => new IFC2X3.IfcGridPlacement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    812098782: (v) => new IFC2X3.IfcHalfSpaceSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),
+    2445078500: (v) => new IFC2X3.IfcHygroscopicMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcIsothermalMoistureCapacityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcVaporPermeabilityMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcMoistureDiffusivityMeasure(!v[5] ? null : v[5].value)),
+    3905492369: (v) => new IFC2X3.IfcImageTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcIdentifier(!v[4] ? null : v[4].value)),
+    3741457305: (v) => {
+      var _a;
+      return new IFC2X3.IfcIrregularTimeSeries(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1402838566: (v) => new IFC2X3.IfcLightSource(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    125510826: (v) => new IFC2X3.IfcLightSourceAmbient(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    2604431987: (v) => new IFC2X3.IfcLightSourceDirectional(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),
+    4266656042: (v) => new IFC2X3.IfcLightSourceGoniometric(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC2X3.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle(!v[9] ? null : v[9].value)),
+    1520743889: (v) => new IFC2X3.IfcLightSourcePositional(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcReal(!v[6] ? null : v[6].value), new IFC2X3.IfcReal(!v[7] ? null : v[7].value), new IFC2X3.IfcReal(!v[8] ? null : v[8].value)),
+    3422422726: (v) => new IFC2X3.IfcLightSourceSpot(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcReal(!v[6] ? null : v[6].value), new IFC2X3.IfcReal(!v[7] ? null : v[7].value), new IFC2X3.IfcReal(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcReal(!v[10] ? null : v[10].value), new IFC2X3.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC2X3.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)),
+    2624227202: (v) => new IFC2X3.IfcLocalPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1008929658: (_) => new IFC2X3.IfcLoop(),
+    2347385850: (v) => new IFC2X3.IfcMappedItem(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    2022407955: (v) => {
+      var _a;
+      return new IFC2X3.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    1430189142: (v) => new IFC2X3.IfcMechanicalConcreteMaterialProperties(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcDynamicViscosityMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcModulusOfElasticityMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcThermalExpansionCoefficientMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPressureMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcText(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcText(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcText(!v[11] ? null : v[11].value)),
+    219451334: (v) => new IFC2X3.IfcObjectDefinition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),
+    2833995503: (v) => new IFC2X3.IfcOneDirectionRepeatFactor(new Handle(!v[0] ? null : v[0].value)),
+    2665983363: (v) => {
+      var _a;
+      return new IFC2X3.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1029017970: (v) => new IFC2X3.IfcOrientedEdge(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),
+    2529465313: (v) => new IFC2X3.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2519244187: (v) => {
+      var _a;
+      return new IFC2X3.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3021840470: (v) => {
+      var _a;
+      return new IFC2X3.IfcPhysicalComplexQuantity(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC2X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value));
+    },
+    597895409: (v) => {
+      var _a;
+      return new IFC2X3.IfcPixelTexture(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, v[2], !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcInteger(!v[4] ? null : v[4].value), new IFC2X3.IfcInteger(!v[5] ? null : v[5].value), new IFC2X3.IfcInteger(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []);
+    },
+    2004835150: (v) => new IFC2X3.IfcPlacement(new Handle(!v[0] ? null : v[0].value)),
+    1663979128: (v) => new IFC2X3.IfcPlanarExtent(new IFC2X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),
+    2067069095: (_) => new IFC2X3.IfcPoint(),
+    4022376103: (v) => new IFC2X3.IfcPointOnCurve(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcParameterValue(!v[1] ? null : v[1].value)),
+    1423911732: (v) => new IFC2X3.IfcPointOnSurface(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcParameterValue(!v[1] ? null : v[1].value), new IFC2X3.IfcParameterValue(!v[2] ? null : v[2].value)),
+    2924175390: (v) => {
+      var _a;
+      return new IFC2X3.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2775532180: (v) => new IFC2X3.IfcPolygonalBoundedHalfSpace(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value, new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    759155922: (v) => new IFC2X3.IfcPreDefinedColour(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2559016684: (v) => new IFC2X3.IfcPreDefinedCurveFont(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    433424934: (v) => new IFC2X3.IfcPreDefinedDimensionSymbol(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    179317114: (v) => new IFC2X3.IfcPreDefinedPointMarkerSymbol(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    673634403: (v) => {
+      var _a;
+      return new IFC2X3.IfcProductDefinitionShape(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    871118103: (v) => new IFC2X3.IfcPropertyBoundedValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : TypeInitialiser(1, v[3]), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    1680319473: (v) => new IFC2X3.IfcPropertyDefinition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),
+    4166981789: (v) => {
+      var _a;
+      return new IFC2X3.IfcPropertyEnumeratedValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    2752243245: (v) => {
+      var _a;
+      return new IFC2X3.IfcPropertyListValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    941946838: (v) => new IFC2X3.IfcPropertyReferenceValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    3357820518: (v) => new IFC2X3.IfcPropertySetDefinition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),
+    3650150729: (v) => new IFC2X3.IfcPropertySingleValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(1, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),
+    110355661: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcPropertyTableValue(new IFC2X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(1, p) : null)) || [], !v[4] ? null : new IFC2X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value));
+    },
+    3615266464: (v) => new IFC2X3.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    3413951693: (v) => {
+      var _a;
+      return new IFC2X3.IfcRegularTimeSeries(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new IFC2X3.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3765753017: (v) => {
+      var _a;
+      return new IFC2X3.IfcReinforcementDefinitionProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    478536968: (v) => new IFC2X3.IfcRelationship(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),
+    2778083089: (v) => new IFC2X3.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)),
+    1509187699: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSectionedSpine(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2411513650: (v) => new IFC2X3.IfcServiceLifeFactor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : TypeInitialiser(1, v[5]), TypeInitialiser(1, v[6]), !v[7] ? null : TypeInitialiser(1, v[7])),
+    4124623270: (v) => {
+      var _a;
+      return new IFC2X3.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2609359061: (v) => new IFC2X3.IfcSlippageConnectionCondition(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    723233188: (_) => new IFC2X3.IfcSolidModel(),
+    2485662743: (v) => {
+      var _a;
+      return new IFC2X3.IfcSoundProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new IFC2X3.IfcBoolean(!v[4] ? null : v[4].value), v[5], ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1202362311: (v) => new IFC2X3.IfcSoundValue(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new IFC2X3.IfcFrequencyMeasure(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(1, v[6])),
+    390701378: (v) => new IFC2X3.IfcSpaceThermalLoadProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), v[5], v[6], !v[7] ? null : new IFC2X3.IfcText(!v[7] ? null : v[7].value), new IFC2X3.IfcPowerMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPowerMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcLabel(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcLabel(!v[12] ? null : v[12].value), v[13]),
+    1595516126: (v) => new IFC2X3.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)),
+    2668620305: (v) => new IFC2X3.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)),
+    2473145415: (v) => new IFC2X3.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)),
+    1973038258: (v) => new IFC2X3.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcCurvatureMeasure(!v[7] ? null : v[7].value)),
+    1597423693: (v) => new IFC2X3.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcTorqueMeasure(!v[6] ? null : v[6].value)),
+    1190533807: (v) => new IFC2X3.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)),
+    3843319758: (v) => new IFC2X3.IfcStructuralProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcWarpingConstantMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[18] ? null : v[18].value), !v[19] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3.IfcLengthMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3.IfcLengthMeasure(!v[22] ? null : v[22].value)),
+    3653947884: (v) => new IFC2X3.IfcStructuralSteelProfileProperties(!v[0] ? null : new IFC2X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcMassPerLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcMomentOfInertiaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcWarpingConstantMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[18] ? null : v[18].value), !v[19] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3.IfcSectionModulusMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3.IfcLengthMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3.IfcLengthMeasure(!v[22] ? null : v[22].value), !v[23] ? null : new IFC2X3.IfcAreaMeasure(!v[23] ? null : v[23].value), !v[24] ? null : new IFC2X3.IfcAreaMeasure(!v[24] ? null : v[24].value), !v[25] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[25] ? null : v[25].value), !v[26] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[26] ? null : v[26].value)),
+    2233826070: (v) => new IFC2X3.IfcSubedge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2513912981: (_) => new IFC2X3.IfcSurface(),
+    1878645084: (v) => new IFC2X3.IfcSurfaceStyleRendering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(1, v[7]), v[8]),
+    2247615214: (v) => new IFC2X3.IfcSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1260650574: (v) => new IFC2X3.IfcSweptDiskSolid(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3.IfcParameterValue(!v[4] ? null : v[4].value)),
+    230924584: (v) => new IFC2X3.IfcSweptSurface(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    3071757647: (v) => new IFC2X3.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value)),
+    3028897424: (v) => {
+      var _a;
+      return new IFC2X3.IfcTerminatorSymbol(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value));
+    },
+    4282788508: (v) => new IFC2X3.IfcTextLiteral(new IFC2X3.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2]),
+    3124975700: (v) => new IFC2X3.IfcTextLiteralWithExtent(new IFC2X3.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcBoxAlignment(!v[4] ? null : v[4].value)),
+    2715220739: (v) => new IFC2X3.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcLengthMeasure(!v[6] ? null : v[6].value)),
+    1345879162: (v) => new IFC2X3.IfcTwoDirectionRepeatFactor(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1628702193: (v) => {
+      var _a;
+      return new IFC2X3.IfcTypeObject(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2347495698: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcTypeProduct(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value));
+    },
+    427810014: (v) => new IFC2X3.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)),
+    1417489154: (v) => new IFC2X3.IfcVector(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),
+    2759199220: (v) => new IFC2X3.IfcVertexLoop(new Handle(!v[0] ? null : v[0].value)),
+    336235671: (v) => new IFC2X3.IfcWindowLiningProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value)),
+    512836454: (v) => new IFC2X3.IfcWindowPanelProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    1299126871: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcWindowStyle(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : v[10].value, !v[11] ? null : v[11].value);
+    },
+    2543172580: (v) => new IFC2X3.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),
+    3288037868: (v) => {
+      var _a;
+      return new IFC2X3.IfcAnnotationCurveOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    669184980: (v) => {
+      var _a;
+      return new IFC2X3.IfcAnnotationFillArea(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2265737646: (v) => {
+      var _a;
+      return new IFC2X3.IfcAnnotationFillAreaOccurrence(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), v[4]);
+    },
+    1302238472: (v) => new IFC2X3.IfcAnnotationSurface(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    4261334040: (v) => new IFC2X3.IfcAxis1Placement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    3125803723: (v) => new IFC2X3.IfcAxis2Placement2D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    2740243338: (v) => new IFC2X3.IfcAxis2Placement3D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    2736907675: (v) => new IFC2X3.IfcBooleanResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    4182860854: (_) => new IFC2X3.IfcBoundedSurface(),
+    2581212453: (v) => new IFC2X3.IfcBoundingBox(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2713105998: (v) => new IFC2X3.IfcBoxedHalfSpace(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value, new Handle(!v[2] ? null : v[2].value)),
+    2898889636: (v) => new IFC2X3.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),
+    1123145078: (v) => {
+      var _a;
+      return new IFC2X3.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcLengthMeasure(p.value) : null)) || []);
+    },
+    59481748: (v) => new IFC2X3.IfcCartesianTransformationOperator(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value),
+    3749851601: (v) => new IFC2X3.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value),
+    3486308946: (v) => new IFC2X3.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : !v[4] ? null : v[4].value),
+    3331915920: (v) => new IFC2X3.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    1416205885: (v) => new IFC2X3.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : !v[3] ? null : v[3].value, !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : !v[5] ? null : v[5].value, !v[6] ? null : !v[6] ? null : v[6].value),
+    1383045692: (v) => new IFC2X3.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2205249479: (v) => {
+      var _a;
+      return new IFC2X3.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2485617015: (v) => new IFC2X3.IfcCompositeCurveSegment(v[0], !v[1] ? null : v[1].value, new Handle(!v[2] ? null : v[2].value)),
+    4133800736: (v) => new IFC2X3.IfcCraneRailAShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), new IFC2X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), new IFC2X3.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[14] ? null : v[14].value)),
+    194851669: (v) => new IFC2X3.IfcCraneRailFShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)),
+    2506170314: (v) => new IFC2X3.IfcCsgPrimitive3D(new Handle(!v[0] ? null : v[0].value)),
+    2147822146: (v) => new IFC2X3.IfcCsgSolid(new Handle(!v[0] ? null : v[0].value)),
+    2601014836: (_) => new IFC2X3.IfcCurve(),
+    2827736869: (v) => {
+      var _a;
+      return new IFC2X3.IfcCurveBoundedPlane(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    693772133: (v) => new IFC2X3.IfcDefinedSymbol(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    606661476: (v) => {
+      var _a;
+      return new IFC2X3.IfcDimensionCurve(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    4054601972: (v) => {
+      var _a;
+      return new IFC2X3.IfcDimensionCurveTerminator(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), v[4]);
+    },
+    32440307: (v) => {
+      var _a;
+      return new IFC2X3.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []);
+    },
+    2963535650: (v) => new IFC2X3.IfcDoorLiningProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value)),
+    1714330368: (v) => new IFC2X3.IfcDoorPanelProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    526551008: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDoorStyle(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : v[10].value, !v[11] ? null : v[11].value);
+    },
+    3073041342: (v) => {
+      var _a;
+      return new IFC2X3.IfcDraughtingCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    445594917: (v) => new IFC2X3.IfcDraughtingPreDefinedColour(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    4006246654: (v) => new IFC2X3.IfcDraughtingPreDefinedCurveFont(new IFC2X3.IfcLabel(!v[0] ? null : v[0].value)),
+    1472233963: (v) => {
+      var _a;
+      return new IFC2X3.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1883228015: (v) => {
+      var _a;
+      return new IFC2X3.IfcElementQuantity(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    339256511: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2777663545: (v) => new IFC2X3.IfcElementarySurface(new Handle(!v[0] ? null : v[0].value)),
+    2835456948: (v) => new IFC2X3.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    80994333: (v) => new IFC2X3.IfcEnergyProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value)),
+    477187591: (v) => new IFC2X3.IfcExtrudedAreaSolid(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2047409740: (v) => {
+      var _a;
+      return new IFC2X3.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    374418227: (v) => new IFC2X3.IfcFillAreaStyleHatching(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC2X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)),
+    4203026998: (v) => new IFC2X3.IfcFillAreaStyleTileSymbolWithStyle(new Handle(!v[0] ? null : v[0].value)),
+    315944413: (v) => {
+      var _a;
+      return new IFC2X3.IfcFillAreaStyleTiles(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC2X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value));
+    },
+    3455213021: (v) => new IFC2X3.IfcFluidFlowProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcLabel(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcThermodynamicTemperatureMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value), !v[15] ? null : TypeInitialiser(1, v[15]), !v[16] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3.IfcLinearVelocityMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC2X3.IfcPressureMeasure(!v[18] ? null : v[18].value)),
+    4238390223: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFurnishingElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1268542332: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFurnitureType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    987898635: (v) => {
+      var _a;
+      return new IFC2X3.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1484403080: (v) => new IFC2X3.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)),
+    572779678: (v) => new IFC2X3.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)),
+    1281925730: (v) => new IFC2X3.IfcLine(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1425443689: (v) => new IFC2X3.IfcManifoldSolidBrep(new Handle(!v[0] ? null : v[0].value)),
+    3888040117: (v) => new IFC2X3.IfcObject(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    3388369263: (v) => new IFC2X3.IfcOffsetCurve2D(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value),
+    3505215534: (v) => new IFC2X3.IfcOffsetCurve3D(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : v[2].value, new Handle(!v[3] ? null : v[3].value)),
+    3566463478: (v) => new IFC2X3.IfcPermeableCoveringProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    603570806: (v) => new IFC2X3.IfcPlanarBox(new IFC2X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC2X3.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    220341763: (v) => new IFC2X3.IfcPlane(new Handle(!v[0] ? null : v[0].value)),
+    2945172077: (v) => new IFC2X3.IfcProcess(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    4208778838: (v) => new IFC2X3.IfcProduct(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    103090709: (v) => {
+      var _a;
+      return new IFC2X3.IfcProject(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[8] ? null : v[8].value));
+    },
+    4194566429: (v) => {
+      var _a;
+      return new IFC2X3.IfcProjectionCurve(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    1451395588: (v) => {
+      var _a;
+      return new IFC2X3.IfcPropertySet(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3219374653: (v) => new IFC2X3.IfcProxy(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value)),
+    2770003689: (v) => new IFC2X3.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)),
+    2798486643: (v) => new IFC2X3.IfcRectangularPyramid(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    3454111270: (v) => new IFC2X3.IfcRectangularTrimmedSurface(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcParameterValue(!v[1] ? null : v[1].value), new IFC2X3.IfcParameterValue(!v[2] ? null : v[2].value), new IFC2X3.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),
+    3939117080: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssigns(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5]);
+    },
+    1683148259: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssignsToActor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    2495723537: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssignsToControl(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    1307041759: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssignsToGroup(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    4278684876: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssignsToProcess(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    2857406711: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssignsToProduct(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    3372526763: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssignsToProjectOrder(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    205026976: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssignsToResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    1865459582: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociates(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1327628568: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociatesAppliedValue(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    4095574036: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociatesApproval(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    919958153: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociatesClassification(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    2728634034: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociatesConstraint(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value));
+    },
+    982818633: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociatesDocument(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    3840914261: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociatesLibrary(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    2655215786: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociatesMaterial(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    2851387026: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssociatesProfileProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    826625072: (v) => new IFC2X3.IfcRelConnects(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value)),
+    1204542856: (v) => new IFC2X3.IfcRelConnectsElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value)),
+    3945020480: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcRelConnectsPathElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || [], v[9], v[10]);
+    },
+    4201705270: (v) => new IFC2X3.IfcRelConnectsPortToElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    3190031847: (v) => new IFC2X3.IfcRelConnectsPorts(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    2127690289: (v) => new IFC2X3.IfcRelConnectsStructuralActivity(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    3912681535: (v) => new IFC2X3.IfcRelConnectsStructuralElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1638771189: (v) => new IFC2X3.IfcRelConnectsStructuralMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),
+    504942748: (v) => new IFC2X3.IfcRelConnectsWithEccentricity(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), new Handle(!v[10] ? null : v[10].value)),
+    3678494232: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelConnectsWithRealizingElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3242617779: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelContainedInSpatialStructure(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    886880790: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelCoversBldgElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2802773753: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelCoversSpaces(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2551354335: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelDecomposes(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    693640335: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelDefines(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    4186316022: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelDefinesByProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    781010003: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelDefinesByType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    3940055652: (v) => new IFC2X3.IfcRelFillsElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    279856033: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelFlowControlElements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    4189434867: (v) => new IFC2X3.IfcRelInteractionRequirements(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcCountMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value)),
+    3268803585: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelNests(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2051452291: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelOccupiesSpaces(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    202636808: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcRelOverridesProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value), ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    750771296: (v) => new IFC2X3.IfcRelProjectsElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1245217292: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelReferencedInSpatialStructure(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    1058617721: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelSchedulesCostItems(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    4122056220: (v) => new IFC2X3.IfcRelSequence(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new IFC2X3.IfcTimeMeasure(!v[6] ? null : v[6].value), v[7]),
+    366585022: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelServicesBuildings(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3451746338: (v) => new IFC2X3.IfcRelSpaceBoundary(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8]),
+    1401173127: (v) => new IFC2X3.IfcRelVoidsElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    2914609552: (v) => new IFC2X3.IfcResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    1856042241: (v) => new IFC2X3.IfcRevolvedAreaSolid(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)),
+    4158566097: (v) => new IFC2X3.IfcRightCircularCone(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    3626867408: (v) => new IFC2X3.IfcRightCircularCylinder(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    2706606064: (v) => new IFC2X3.IfcSpatialStructureElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),
+    3893378262: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSpatialStructureElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    451544542: (v) => new IFC2X3.IfcSphere(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    3544373492: (v) => new IFC2X3.IfcStructuralActivity(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    3136571912: (v) => new IFC2X3.IfcStructuralItem(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    530289379: (v) => new IFC2X3.IfcStructuralMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    3689010777: (v) => new IFC2X3.IfcStructuralReaction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    3979015343: (v) => new IFC2X3.IfcStructuralSurfaceMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),
+    2218152070: (v) => {
+      var _a;
+      return new IFC2X3.IfcStructuralSurfaceMemberVarying(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcPositiveLengthMeasure(p.value) : null)) || [], new Handle(!v[10] ? null : v[10].value));
+    },
+    4070609034: (v) => {
+      var _a;
+      return new IFC2X3.IfcStructuredDimensionCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2028607225: (v) => new IFC2X3.IfcSurfaceCurveSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcParameterValue(!v[3] ? null : v[3].value), new IFC2X3.IfcParameterValue(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    2809605785: (v) => new IFC2X3.IfcSurfaceOfLinearExtrusion(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    4124788165: (v) => new IFC2X3.IfcSurfaceOfRevolution(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1580310250: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSystemFurnitureElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3473067441: (v) => new IFC2X3.IfcTask(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value),
+    2097647324: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcTransportElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2296667514: (v) => new IFC2X3.IfcActor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1674181508: (v) => new IFC2X3.IfcAnnotation(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    3207858831: (v) => new IFC2X3.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC2X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC2X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)),
+    1334484129: (v) => new IFC2X3.IfcBlock(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    3649129432: (v) => new IFC2X3.IfcBooleanClippingResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1260505505: (_) => new IFC2X3.IfcBoundedCurve(),
+    4031249490: (v) => new IFC2X3.IfcBuilding(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value)),
+    1950629157: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcBuildingElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3124254112: (v) => new IFC2X3.IfcBuildingStorey(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLengthMeasure(!v[9] ? null : v[9].value)),
+    2937912522: (v) => new IFC2X3.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC2X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC2X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC2X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    300633059: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcColumnType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3732776249: (v) => {
+      var _a;
+      return new IFC2X3.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : v[1].value);
+    },
+    2510884976: (v) => new IFC2X3.IfcConic(new Handle(!v[0] ? null : v[0].value)),
+    2559216714: (v) => new IFC2X3.IfcConstructionResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    3293443760: (v) => new IFC2X3.IfcControl(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    3895139033: (v) => new IFC2X3.IfcCostItem(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    1419761937: (v) => {
+      var _a;
+      return new IFC2X3.IfcCostSchedule(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), new IFC2X3.IfcIdentifier(!v[11] ? null : v[11].value), v[12]);
+    },
+    1916426348: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCoveringType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3295246426: (v) => new IFC2X3.IfcCrewResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    1457835157: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCurtainWallType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    681481545: (v) => {
+      var _a;
+      return new IFC2X3.IfcDimensionCurveDirectedCallout(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3256556792: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDistributionElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3849074793: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDistributionFlowElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    360485395: (v) => new IFC2X3.IfcElectricalBaseProperties(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC2X3.IfcLabel(!v[5] ? null : v[5].value), v[6], new IFC2X3.IfcElectricVoltageMeasure(!v[7] ? null : v[7].value), new IFC2X3.IfcFrequencyMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcElectricCurrentMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcElectricCurrentMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPowerMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcPowerMeasure(!v[12] ? null : v[12].value), !v[13] ? null : v[13].value),
+    1758889154: (v) => new IFC2X3.IfcElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4123344466: (v) => new IFC2X3.IfcElementAssembly(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),
+    1623761950: (v) => new IFC2X3.IfcElementComponent(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2590856083: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcElementComponentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1704287377: (v) => new IFC2X3.IfcEllipse(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC2X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    2107101300: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcEnergyConversionDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1962604670: (v) => new IFC2X3.IfcEquipmentElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3272907226: (v) => new IFC2X3.IfcEquipmentStandard(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    3174744832: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcEvaporativeCoolerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3390157468: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcEvaporatorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    807026263: (v) => new IFC2X3.IfcFacetedBrep(new Handle(!v[0] ? null : v[0].value)),
+    3737207727: (v) => {
+      var _a;
+      return new IFC2X3.IfcFacetedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    647756555: (v) => new IFC2X3.IfcFastener(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2489546625: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFastenerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2827207264: (v) => new IFC2X3.IfcFeatureElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2143335405: (v) => new IFC2X3.IfcFeatureElementAddition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1287392070: (v) => new IFC2X3.IfcFeatureElementSubtraction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3907093117: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowControllerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3198132628: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowFittingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3815607619: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowMeterType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1482959167: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowMovingDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1834744321: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1339347760: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowStorageDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2297155007: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3009222698: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowTreatmentDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    263784265: (v) => new IFC2X3.IfcFurnishingElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    814719939: (v) => new IFC2X3.IfcFurnitureStandard(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    200128114: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcGasTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3009204131: (v) => {
+      var _a, _b, _c;
+      return new IFC2X3.IfcGrid(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2706460486: (v) => new IFC2X3.IfcGroup(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    1251058090: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcHeatExchangerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1806887404: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcHumidifierType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2391368822: (v) => {
+      var _a;
+      return new IFC2X3.IfcInventory(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value));
+    },
+    4288270099: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcJunctionBoxType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3827777499: (v) => new IFC2X3.IfcLaborResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcText(!v[9] ? null : v[9].value)),
+    1051575348: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcLampType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1161773419: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcLightFixtureType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2506943328: (v) => {
+      var _a;
+      return new IFC2X3.IfcLinearDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    377706215: (v) => new IFC2X3.IfcMechanicalFastener(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)),
+    2108223431: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcMechanicalFastenerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3181161470: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcMemberType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    977012517: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcMotorConnectionType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1916936684: (v) => {
+      var _a;
+      return new IFC2X3.IfcMove(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, new Handle(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), !v[12] ? null : ((_a = v[12]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC2X3.IfcText(p.value) : null)) || []);
+    },
+    4143007308: (v) => new IFC2X3.IfcOccupant(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), v[6]),
+    3588315303: (v) => new IFC2X3.IfcOpeningElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3425660407: (v) => new IFC2X3.IfcOrderAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, new IFC2X3.IfcIdentifier(!v[10] ? null : v[10].value)),
+    2837617999: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcOutletType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2382730787: (v) => new IFC2X3.IfcPerformanceHistory(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcLabel(!v[5] ? null : v[5].value)),
+    3327091369: (v) => new IFC2X3.IfcPermit(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value)),
+    804291784: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcPipeFittingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4231323485: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcPipeSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4017108033: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcPlateType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3724593414: (v) => {
+      var _a;
+      return new IFC2X3.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3740093272: (v) => new IFC2X3.IfcPort(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    2744685151: (v) => new IFC2X3.IfcProcedure(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value)),
+    2904328755: (v) => new IFC2X3.IfcProjectOrder(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value)),
+    3642467123: (v) => {
+      var _a;
+      return new IFC2X3.IfcProjectOrderRecord(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[6]);
+    },
+    3651124850: (v) => new IFC2X3.IfcProjectionElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1842657554: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcProtectiveDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2250791053: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcPumpType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3248260540: (v) => {
+      var _a;
+      return new IFC2X3.IfcRadiusDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2893384427: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcRailingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2324767716: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcRampFlightType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    160246688: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAggregates(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2863920197: (v) => {
+      var _a;
+      return new IFC2X3.IfcRelAssignsTasks(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    1768891740: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSanitaryTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3517283431: (v) => new IFC2X3.IfcScheduleTimeControl(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcTimeMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcTimeMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3.IfcTimeMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3.IfcTimeMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC2X3.IfcTimeMeasure(!v[17] ? null : v[17].value), !v[18] ? null : !v[18] ? null : v[18].value, !v[19] ? null : new Handle(!v[19] ? null : v[19].value), !v[20] ? null : new IFC2X3.IfcTimeMeasure(!v[20] ? null : v[20].value), !v[21] ? null : new IFC2X3.IfcTimeMeasure(!v[21] ? null : v[21].value), !v[22] ? null : new IFC2X3.IfcPositiveRatioMeasure(!v[22] ? null : v[22].value)),
+    4105383287: (v) => new IFC2X3.IfcServiceLife(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], new IFC2X3.IfcTimeMeasure(!v[6] ? null : v[6].value)),
+    4097777520: (v) => new IFC2X3.IfcSite(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC2X3.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC2X3.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),
+    2533589738: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSlabType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3856911033: (v) => new IFC2X3.IfcSpace(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC2X3.IfcLengthMeasure(!v[10] ? null : v[10].value)),
+    1305183839: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSpaceHeaterType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    652456506: (v) => new IFC2X3.IfcSpaceProgram(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcAreaMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcAreaMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), new IFC2X3.IfcAreaMeasure(!v[9] ? null : v[9].value)),
+    3812236995: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSpaceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3112655638: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcStackTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1039846685: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcStairFlightType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    682877961: (v) => new IFC2X3.IfcStructuralAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),
+    1179482911: (v) => new IFC2X3.IfcStructuralConnection(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    4243806635: (v) => new IFC2X3.IfcStructuralCurveConnection(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    214636428: (v) => new IFC2X3.IfcStructuralCurveMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),
+    2445595289: (v) => new IFC2X3.IfcStructuralCurveMemberVarying(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),
+    1807405624: (v) => new IFC2X3.IfcStructuralLinearAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]),
+    1721250024: (v) => {
+      var _a;
+      return new IFC2X3.IfcStructuralLinearActionVarying(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11], new Handle(!v[12] ? null : v[12].value), ((_a = v[13]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1252848954: (v) => new IFC2X3.IfcStructuralLoadGroup(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC2X3.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcLabel(!v[9] ? null : v[9].value)),
+    1621171031: (v) => new IFC2X3.IfcStructuralPlanarAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]),
+    3987759626: (v) => {
+      var _a;
+      return new IFC2X3.IfcStructuralPlanarActionVarying(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11], new Handle(!v[12] ? null : v[12].value), ((_a = v[13]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2082059205: (v) => new IFC2X3.IfcStructuralPointAction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : v[9].value, !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),
+    734778138: (v) => new IFC2X3.IfcStructuralPointConnection(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    1235345126: (v) => new IFC2X3.IfcStructuralPointReaction(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    2986769608: (v) => new IFC2X3.IfcStructuralResultGroup(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : v[7].value),
+    1975003073: (v) => new IFC2X3.IfcStructuralSurfaceConnection(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    148013059: (v) => new IFC2X3.IfcSubContractResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcText(!v[10] ? null : v[10].value)),
+    2315554128: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSwitchingDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2254336722: (v) => new IFC2X3.IfcSystem(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    5716631: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcTankType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1637806684: (v) => {
+      var _a;
+      return new IFC2X3.IfcTimeSeriesSchedule(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[6], new Handle(!v[7] ? null : v[7].value));
+    },
+    1692211062: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcTransformerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1620046519: (v) => new IFC2X3.IfcTransportElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcMassMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcCountMeasure(!v[10] ? null : v[10].value)),
+    3593883385: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcTrimmedCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : v[3].value, v[4]);
+    },
+    1600972822: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcTubeBundleType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1911125066: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcUnitaryEquipmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    728799441: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcValveType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2769231204: (v) => new IFC2X3.IfcVirtualElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1898987631: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcWallType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1133259667: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcWasteTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1028945134: (v) => {
+      var _a;
+      return new IFC2X3.IfcWorkControl(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(!v[14] ? null : v[14].value));
+    },
+    4218914973: (v) => {
+      var _a;
+      return new IFC2X3.IfcWorkPlan(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(!v[14] ? null : v[14].value));
+    },
+    3342526732: (v) => {
+      var _a;
+      return new IFC2X3.IfcWorkSchedule(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcTimeMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcTimeMeasure(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC2X3.IfcLabel(!v[14] ? null : v[14].value));
+    },
+    1033361043: (v) => new IFC2X3.IfcZone(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    1213861670: (v) => {
+      var _a;
+      return new IFC2X3.Ifc2DCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : v[1].value);
+    },
+    3821786052: (v) => new IFC2X3.IfcActionRequest(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value)),
+    1411407467: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcAirTerminalBoxType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3352864051: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcAirTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1871374353: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcAirToAirHeatRecoveryType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2470393545: (v) => {
+      var _a;
+      return new IFC2X3.IfcAngularDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3460190687: (v) => new IFC2X3.IfcAsset(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value), new Handle(!v[10] ? null : v[10].value), new Handle(!v[11] ? null : v[11].value), new Handle(!v[12] ? null : v[12].value), new Handle(!v[13] ? null : v[13].value)),
+    1967976161: (v) => {
+      var _a;
+      return new IFC2X3.IfcBSplineCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value);
+    },
+    819618141: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcBeamType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1916977116: (v) => {
+      var _a;
+      return new IFC2X3.IfcBezierCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value);
+    },
+    231477066: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcBoilerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3299480353: (v) => new IFC2X3.IfcBuildingElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    52481810: (v) => new IFC2X3.IfcBuildingElementComponent(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2979338954: (v) => new IFC2X3.IfcBuildingElementPart(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1095909175: (v) => new IFC2X3.IfcBuildingElementProxy(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1909888760: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcBuildingElementProxyType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    395041908: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCableCarrierFittingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3293546465: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCableCarrierSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1285652485: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCableSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2951183804: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcChillerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2611217952: (v) => new IFC2X3.IfcCircle(new Handle(!v[0] ? null : v[0].value), new IFC2X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    2301859152: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCoilType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    843113511: (v) => new IFC2X3.IfcColumn(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3850581409: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCompressorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2816379211: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCondenserType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2188551683: (v) => new IFC2X3.IfcCondition(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    1163958913: (v) => new IFC2X3.IfcConditionCriterion(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value)),
+    3898045240: (v) => new IFC2X3.IfcConstructionEquipmentResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    1060000209: (v) => {
+      var _a;
+      return new IFC2X3.IfcConstructionMaterialResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new IFC2X3.IfcRatioMeasure(!v[10] ? null : v[10].value));
+    },
+    488727124: (v) => new IFC2X3.IfcConstructionProductResource(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC2X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC2X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    335055490: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCooledBeamType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2954562838: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcCoolingTowerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1973544240: (v) => new IFC2X3.IfcCovering(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3495092785: (v) => new IFC2X3.IfcCurtainWall(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3961806047: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDamperType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4147604152: (v) => {
+      var _a;
+      return new IFC2X3.IfcDiameterDimension(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1335981549: (v) => new IFC2X3.IfcDiscreteAccessory(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2635815018: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDiscreteAccessoryType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1599208980: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDistributionChamberElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2063403501: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDistributionControlElementType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1945004755: (v) => new IFC2X3.IfcDistributionElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3040386961: (v) => new IFC2X3.IfcDistributionFlowElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3041715199: (v) => new IFC2X3.IfcDistributionPort(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),
+    395920057: (v) => new IFC2X3.IfcDoor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)),
+    869906466: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDuctFittingType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3760055223: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDuctSegmentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2030761528: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcDuctSilencerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    855621170: (v) => new IFC2X3.IfcEdgeFeature(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),
+    663422040: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcElectricApplianceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3277789161: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcElectricFlowStorageDeviceType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1534661035: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcElectricGeneratorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1365060375: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcElectricHeaterType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1217240411: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcElectricMotorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    712377611: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcElectricTimeControlType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1634875225: (v) => new IFC2X3.IfcElectricalCircuit(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value)),
+    857184966: (v) => new IFC2X3.IfcElectricalElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1658829314: (v) => new IFC2X3.IfcEnergyConversionDevice(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    346874300: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFanType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1810631287: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFilterType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4222183408: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFireSuppressionTerminalType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2058353004: (v) => new IFC2X3.IfcFlowController(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4278956645: (v) => new IFC2X3.IfcFlowFitting(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4037862832: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcFlowInstrumentType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3132237377: (v) => new IFC2X3.IfcFlowMovingDevice(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    987401354: (v) => new IFC2X3.IfcFlowSegment(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    707683696: (v) => new IFC2X3.IfcFlowStorageDevice(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2223149337: (v) => new IFC2X3.IfcFlowTerminal(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3508470533: (v) => new IFC2X3.IfcFlowTreatmentDevice(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    900683007: (v) => new IFC2X3.IfcFooting(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1073191201: (v) => new IFC2X3.IfcMember(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1687234759: (v) => new IFC2X3.IfcPile(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),
+    3171933400: (v) => new IFC2X3.IfcPlate(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2262370178: (v) => new IFC2X3.IfcRailing(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3024970846: (v) => new IFC2X3.IfcRamp(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3283111854: (v) => new IFC2X3.IfcRampFlight(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3055160366: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcRationalBezierCurve(!v[0] ? null : v[0].value, ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? Number(p.value) : null)) || []);
+    },
+    3027567501: (v) => new IFC2X3.IfcReinforcingElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value)),
+    2320036040: (v) => new IFC2X3.IfcReinforcingMesh(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), new IFC2X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), new IFC2X3.IfcAreaMeasure(!v[13] ? null : v[13].value), new IFC2X3.IfcAreaMeasure(!v[14] ? null : v[14].value), new IFC2X3.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), new IFC2X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)),
+    2016517767: (v) => new IFC2X3.IfcRoof(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1376911519: (v) => new IFC2X3.IfcRoundedEdgeFeature(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)),
+    1783015770: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcSensorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1529196076: (v) => new IFC2X3.IfcSlab(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    331165859: (v) => new IFC2X3.IfcStair(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4252922144: (v) => new IFC2X3.IfcStairFlight(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : !v[8] ? null : v[8].value, !v[9] ? null : !v[9] ? null : v[9].value, !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value)),
+    2515109513: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcStructuralAnalysisModel(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3824725483: (v) => new IFC2X3.IfcTendon(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9], new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), new IFC2X3.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC2X3.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC2X3.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC2X3.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)),
+    2347447852: (v) => new IFC2X3.IfcTendonAnchor(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value)),
+    3313531582: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcVibrationIsolatorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2391406946: (v) => new IFC2X3.IfcWall(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3512223829: (v) => new IFC2X3.IfcWallStandardCase(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3304561284: (v) => new IFC2X3.IfcWindow(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value)),
+    2874132201: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcActuatorType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3001207471: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcAlarmType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    753842376: (v) => new IFC2X3.IfcBeam(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2454782716: (v) => new IFC2X3.IfcChamferEdgeFeature(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value)),
+    578613899: (v) => {
+      var _a, _b;
+      return new IFC2X3.IfcControllerType(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC2X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1052013943: (v) => new IFC2X3.IfcDistributionChamberElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1062813311: (v) => new IFC2X3.IfcDistributionControlElement(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcIdentifier(!v[8] ? null : v[8].value)),
+    3700593921: (v) => new IFC2X3.IfcElectricDistributionPoint(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC2X3.IfcLabel(!v[9] ? null : v[9].value)),
+    979691226: (v) => new IFC2X3.IfcReinforcingBar(new IFC2X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC2X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC2X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC2X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC2X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC2X3.IfcLabel(!v[8] ? null : v[8].value), new IFC2X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), new IFC2X3.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC2X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13])
+  };
+  InheritanceDef[1] = {
+    618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],
+    411424972: [IFCENVIRONMENTALIMPACTVALUE, IFCCOSTVALUE],
+    4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],
+    1387855156: [IFCBOUNDARYNODECONDITIONWARPING],
+    3264961684: [IFCCOLOURRGB],
+    2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPORTGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],
+    2614616156: [IFCCONNECTIONPOINTECCENTRICITY],
+    1959218052: [IFCOBJECTIVE, IFCMETRIC],
+    3796139169: [IFCDIMENSIONPAIR, IFCDIMENSIONCALLOUTRELATIONSHIP],
+    3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSYMBOL, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],
+    3265635763: [IFCHYGROSCOPICMATERIALPROPERTIES, IFCGENERALMATERIALPROPERTIES, IFCFUELPROPERTIES, IFCEXTENDEDMATERIALPROPERTIES, IFCWATERPROPERTIES, IFCTHERMALMATERIALPROPERTIES, IFCPRODUCTSOFCOMBUSTIONPROPERTIES, IFCOPTICALMATERIALPROPERTIES, IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES, IFCMECHANICALMATERIALPROPERTIES],
+    4256014907: [IFCMECHANICALCONCRETEMATERIALPROPERTIES, IFCMECHANICALSTEELMATERIALPROPERTIES],
+    1918398963: [IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],
+    3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT],
+    2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],
+    2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],
+    3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL, IFCPREDEFINEDSYMBOL],
+    990879717: [IFCPREDEFINEDPOINTMARKERSYMBOL, IFCPREDEFINEDDIMENSIONSYMBOL, IFCPREDEFINEDTERMINATORSYMBOL],
+    1775413392: [IFCDRAUGHTINGPREDEFINEDTEXTFONT, IFCTEXTSTYLEFONTMODEL],
+    2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],
+    3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSYMBOLSTYLE, IFCSURFACESTYLE],
+    2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],
+    3958567839: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],
+    2802850158: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES, IFCGENERALPROFILEPROPERTIES, IFCRIBPLATEPROFILEPROPERTIES],
+    2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],
+    1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],
+    3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],
+    3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE, IFCSTYLEDITEM],
+    2341007311: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT, IFCOBJECTDEFINITION],
+    3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],
+    3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],
+    2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],
+    2162789131: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],
+    2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],
+    2830218821: [IFCSTYLEDREPRESENTATION],
+    3958052878: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE, IFCANNOTATIONOCCURRENCE],
+    846575682: [IFCSURFACESTYLERENDERING],
+    626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],
+    280115917: [IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],
+    3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],
+    1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],
+    2799835756: [IFCVERTEXPOINT],
+    2442683028: [IFCANNOTATIONFILLAREAOCCURRENCE, IFCPROJECTIONCURVE, IFCDIMENSIONCURVE, IFCANNOTATIONCURVEOCCURRENCE, IFCANNOTATIONTEXTOCCURRENCE, IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL, IFCANNOTATIONSYMBOLOCCURRENCE, IFCANNOTATIONSURFACEOCCURRENCE],
+    3612888222: [IFCDIMENSIONCURVETERMINATOR, IFCTERMINATORSYMBOL],
+    3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],
+    1310608509: [IFCCENTERLINEPROFILEDEF],
+    370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],
+    3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],
+    2556980723: [IFCFACESURFACE],
+    1809719519: [IFCFACEOUTERBOUND],
+    1446786286: [IFCSTRUCTURALSTEELPROFILEPROPERTIES, IFCSTRUCTURALPROFILEPROPERTIES],
+    3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],
+    2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLETILESYMBOLWITHSTYLE, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT, IFCDRAUGHTINGCALLOUT, IFCDIRECTION, IFCDEFINEDSYMBOL, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONSURFACE, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCTWODIRECTIONREPEATFACTOR, IFCONEDIRECTIONREPEATFACTOR, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],
+    3590301190: [IFCGEOMETRICCURVESET],
+    812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],
+    1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],
+    1520743889: [IFCLIGHTSOURCESPOT],
+    1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],
+    219451334: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS, IFCOBJECT, IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTYPEOBJECT],
+    2833995503: [IFCTWODIRECTIONREPEATFACTOR],
+    2529465313: [IFCLSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCRANERAILFSHAPEPROFILEDEF, IFCCRANERAILASHAPEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],
+    2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],
+    1663979128: [IFCPLANARBOX],
+    2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE],
+    759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],
+    2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],
+    1680319473: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPROPERTYSETDEFINITION],
+    3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCFLUIDFLOWPROPERTIES, IFCELECTRICALBASEPROPERTIES, IFCENERGYPROPERTIES, IFCELEMENTQUANTITY, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCSPACETHERMALLOADPROPERTIES, IFCSOUNDVALUE, IFCSOUNDPROPERTIES, IFCSERVICELIFEFACTOR, IFCREINFORCEMENTDEFINITIONPROPERTIES],
+    3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],
+    478536968: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],
+    723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID],
+    2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],
+    1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],
+    3843319758: [IFCSTRUCTURALSTEELPROFILEPROPERTIES],
+    2513912981: [IFCPLANE, IFCELEMENTARYSURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],
+    2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLID],
+    230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],
+    3028897424: [IFCDIMENSIONCURVETERMINATOR],
+    4282788508: [IFCTEXTLITERALWITHEXTENT],
+    1628702193: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT],
+    2347495698: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE],
+    3288037868: [IFCPROJECTIONCURVE, IFCDIMENSIONCURVE],
+    2736907675: [IFCBOOLEANCLIPPINGRESULT],
+    4182860854: [IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDPLANE],
+    59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],
+    3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],
+    3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],
+    1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],
+    2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],
+    2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE],
+    3073041342: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION, IFCDIMENSIONCURVEDIRECTEDCALLOUT, IFCSTRUCTUREDDIMENSIONCALLOUT],
+    339256511: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],
+    2777663545: [IFCPLANE],
+    80994333: [IFCELECTRICALBASEPROPERTIES],
+    4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],
+    1484403080: [IFCASYMMETRICISHAPEPROFILEDEF],
+    1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP],
+    3888040117: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCPROJECT, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK, IFCPROCESS],
+    2945172077: [IFCPROCEDURE, IFCORDERACTION, IFCMOVE, IFCTASK],
+    4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCPROXY],
+    3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER, IFCRELASSIGNSTOCONTROL, IFCRELOCCUPIESSPACES, IFCRELASSIGNSTOACTOR],
+    1683148259: [IFCRELOCCUPIESSPACES],
+    2495723537: [IFCRELASSIGNSTASKS, IFCRELSCHEDULESCOSTITEMS, IFCRELASSIGNSTOPROJECTORDER],
+    1865459582: [IFCRELASSOCIATESPROFILEPROPERTIES, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATESAPPLIEDVALUE],
+    826625072: [IFCRELVOIDSELEMENT, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPROJECTSELEMENT, IFCRELINTERACTIONREQUIREMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALELEMENT, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],
+    1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],
+    1638771189: [IFCRELCONNECTSWITHECCENTRICITY],
+    2551354335: [IFCRELAGGREGATES, IFCRELNESTS],
+    693640335: [IFCRELDEFINESBYTYPE, IFCRELOVERRIDESPROPERTIES, IFCRELDEFINESBYPROPERTIES],
+    4186316022: [IFCRELOVERRIDESPROPERTIES],
+    2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],
+    2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING],
+    3893378262: [IFCSPACETYPE],
+    3544373492: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALREACTION],
+    3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],
+    530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],
+    3689010777: [IFCSTRUCTURALPOINTREACTION],
+    3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],
+    3473067441: [IFCORDERACTION, IFCMOVE],
+    2296667514: [IFCOCCUPANT],
+    1260505505: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFC2DCOMPOSITECURVE, IFCCOMPOSITECURVE],
+    1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWALLTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCMEMBERTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE],
+    3732776249: [IFC2DCOMPOSITECURVE],
+    2510884976: [IFCCIRCLE, IFCELLIPSE],
+    2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],
+    3293443760: [IFCCONDITIONCRITERION, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCTIMESERIESSCHEDULE, IFCSPACEPROGRAM, IFCSERVICELIFE, IFCSCHEDULETIMECONTROL, IFCPROJECTORDERRECORD, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCFURNITURESTANDARD, IFCEQUIPMENTSTANDARD, IFCCOSTSCHEDULE, IFCCOSTITEM],
+    681481545: [IFCDIAMETERDIMENSION, IFCANGULARDIMENSION, IFCRADIUSDIMENSION, IFCLINEARDIMENSION],
+    3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],
+    3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENERGYCONVERSIONDEVICETYPE],
+    1758889154: [IFCELECTRICALELEMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCFURNISHINGELEMENT, IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCEQUIPMENTELEMENT, IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],
+    1623761950: [IFCDISCRETEACCESSORY, IFCMECHANICALFASTENER, IFCFASTENER],
+    2590856083: [IFCVIBRATIONISOLATORTYPE, IFCDISCRETEACCESSORYTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE],
+    2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSPACEHEATERTYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE],
+    647756555: [IFCMECHANICALFASTENER],
+    2489546625: [IFCMECHANICALFASTENERTYPE],
+    2827207264: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],
+    2143335405: [IFCPROJECTIONELEMENT],
+    1287392070: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE, IFCEDGEFEATURE, IFCOPENINGELEMENT],
+    3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],
+    3198132628: [IFCDUCTFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],
+    1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],
+    1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],
+    1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],
+    2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICHEATERTYPE, IFCELECTRICAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCGASTERMINALTYPE],
+    3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE],
+    2706460486: [IFCCONDITION, IFCASSET, IFCZONE, IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],
+    3740093272: [IFCDISTRIBUTIONPORT],
+    682877961: [IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALPLANARACTIONVARYING, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALLINEARACTIONVARYING, IFCSTRUCTURALLINEARACTION],
+    1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],
+    214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],
+    1807405624: [IFCSTRUCTURALLINEARACTIONVARYING],
+    1621171031: [IFCSTRUCTURALPLANARACTIONVARYING],
+    2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCELECTRICALCIRCUIT],
+    1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],
+    1967976161: [IFCRATIONALBEZIERCURVE, IFCBEZIERCURVE],
+    1916977116: [IFCRATIONALBEZIERCURVE],
+    3299480353: [IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATE, IFCPILE, IFCMEMBER, IFCFOOTING, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMN, IFCBUILDINGELEMENTPROXY, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART, IFCBUILDINGELEMENTCOMPONENT],
+    52481810: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCBUILDINGELEMENTPART],
+    2635815018: [IFCVIBRATIONISOLATORTYPE],
+    2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCSENSORTYPE, IFCFLOWINSTRUMENTTYPE],
+    1945004755: [IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],
+    3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFLOWTREATMENTDEVICE, IFCFLOWTERMINAL, IFCFLOWSTORAGEDEVICE, IFCFLOWSEGMENT, IFCFLOWMOVINGDEVICE, IFCFLOWFITTING, IFCELECTRICDISTRIBUTIONPOINT, IFCFLOWCONTROLLER, IFCENERGYCONVERSIONDEVICE],
+    855621170: [IFCCHAMFEREDGEFEATURE, IFCROUNDEDEDGEFEATURE],
+    2058353004: [IFCELECTRICDISTRIBUTIONPOINT],
+    3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],
+    2391406946: [IFCWALLSTANDARDCASE]
+  };
+  InversePropertyDef[1] = {
+    618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    411424972: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],
+    130549933: [["Actors", IFCAPPROVALACTORRELATIONSHIP, 1, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 0, true], ["Relates", IFCAPPROVALRELATIONSHIP, 1, true]],
+    747523909: [["Contains", IFCCLASSIFICATIONITEM, 1, true]],
+    1767535486: [["IsClassifiedItemIn", IFCCLASSIFICATIONITEMRELATIONSHIP, 1, true], ["IsClassifyingItemIn", IFCCLASSIFICATIONITEMRELATIONSHIP, 0, true]],
+    1959218052: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],
+    602808272: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],
+    1154170062: [["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 1, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 0, true]],
+    1648886627: [["ValuesReferenced", IFCREFERENCESVALUEDOCUMENT, 1, true], ["ValueOfComponents", IFCAPPLIEDVALUERELATIONSHIP, 0, true], ["IsComponentIn", IFCAPPLIEDVALUERELATIONSHIP, 1, true]],
+    852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]],
+    3452421091: [["ReferenceIntoLibrary", IFCLIBRARYINFORMATION, 4, true]],
+    1838606355: [["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["ClassifiedAs", IFCMATERIALCLASSIFICATIONRELATIONSHIP, 1, true]],
+    248100487: [["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]],
+    3368373690: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],
+    3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]],
+    2251480897: [["ClassifiedAs", IFCCONSTRAINTCLASSIFICATIONRELATIONSHIP, 0, true], ["RelatesConstraints", IFCCONSTRAINTRELATIONSHIP, 2, true], ["IsRelatedWith", IFCCONSTRAINTRELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCPROPERTYCONSTRAINTRELATIONSHIP, 0, true], ["Aggregates", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 2, true], ["IsAggregatedIn", IFCCONSTRAINTAGGREGATIONRELATIONSHIP, 3, true]],
+    4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]],
+    2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]],
+    2483315170: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2226359599: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    2598011224: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    2044713172: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2093928680: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    931644368: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    3252649465: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2405470396: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    825690147: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]],
+    3008791417: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1660063152: [["MapUsage", IFCMAPPEDITEM, 0, true]],
+    3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    3692461612: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    3958052878: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    531007025: [["OfTable", IFCTABLE, 1, false]],
+    912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    280115917: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]],
+    1742049831: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]],
+    2552916305: [["AnnotatedSurface", IFCANNOTATIONSURFACE, 1, true]],
+    3101149627: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],
+    1377556343: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    2799835756: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1907098498: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2442683028: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    962685235: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3612888222: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2297822566: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2542286263: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    370225590: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3732053477: [["ReferenceToDocument", IFCDOCUMENTINFORMATION, 3, true]],
+    3900360178: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    476780140: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2556980723: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1809719519: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    803316827: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3008276851: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]],
+    2453401579: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true]],
+    3590301190: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]],
+    812098782: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3741457305: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],
+    1402838566: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    125510826: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2604431987: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4266656042: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1520743889: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3422422726: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]],
+    1008929658: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2347385850: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]],
+    2833995503: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2665983363: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1029017970: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2519244187: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3021840470: [["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2004835150: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1663979128: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2067069095: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4022376103: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1423911732: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2924175390: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2775532180: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]],
+    871118103: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    1680319473: [["HasAssociations", IFCRELASSOCIATES, 4, true]],
+    4166981789: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    2752243245: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    941946838: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    3357820518: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    3650150729: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    110355661: [["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 0, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 1, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true]],
+    3413951693: [["DocumentedBy", IFCTIMESERIESREFERENCERELATIONSHIP, 0, true]],
+    3765753017: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    1509187699: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2411513650: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    4124623270: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    723233188: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2485662743: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    1202362311: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    390701378: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    2233826070: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2513912981: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2247615214: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1260650574: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    230924584: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3028897424: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4282788508: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3124975700: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1345879162: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1417489154: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2759199220: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    336235671: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    512836454: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    1299126871: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3288037868: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    669184980: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2265737646: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1302238472: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4261334040: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3125803723: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2740243338: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2736907675: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4182860854: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2581212453: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2713105998: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1123145078: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    59481748: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3749851601: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3486308946: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3331915920: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1416205885: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2205249479: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2485617015: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]],
+    2506170314: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2147822146: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2601014836: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2827736869: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    693772133: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    606661476: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["AnnotatedBySymbols", IFCTERMINATORSYMBOL, 3, true]],
+    4054601972: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    32440307: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2963535650: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    1714330368: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    526551008: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3073041342: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],
+    1472233963: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1883228015: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2777663545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    80994333: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    477187591: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2047409740: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    374418227: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4203026998: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    315944413: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3455213021: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    987898635: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1281925730: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1425443689: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true]],
+    3388369263: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3505215534: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3566463478: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    603570806: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    220341763: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]],
+    4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true]],
+    4194566429: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1451395588: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    3219374653: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2798486643: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3454111270: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1856042241: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4158566097: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3626867408: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],
+    3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    451544542: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],
+    3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],
+    530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], ["Causes", IFCSTRUCTURALACTION, 10, true]],
+    3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    4070609034: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],
+    2028607225: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2809605785: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4124788165: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]],
+    2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]],
+    1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1334484129: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3649129432: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1260505505: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],
+    1950629157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],
+    300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3732776249: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2510884976: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    681481545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],
+    3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    360485395: [["HasAssociations", IFCRELASSOCIATES, 4, true], ["PropertyDefinitionOf", IFCRELDEFINESBYPROPERTIES, 5, true], ["DefinesType", IFCTYPEOBJECT, 5, true]],
+    1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1704287377: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1962604670: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3272907226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    807026263: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3737207727: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]],
+    1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    814719939: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    200128114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]],
+    1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]],
+    4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2506943328: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],
+    377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1916936684: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]],
+    4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]],
+    3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]],
+    3425660407: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]],
+    2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3724593414: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, false], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]],
+    2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true]],
+    2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3642467123: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]],
+    1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3248260540: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],
+    2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3517283431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true], ["ScheduleTimeControlAssigned", IFCRELASSIGNSTASKS, 7, false]],
+    4105383287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true]],
+    2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]],
+    1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    652456506: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true], ["HasInteractionReqsFrom", IFCRELINTERACTIONREQUIREMENTS, 7, true], ["HasInteractionReqsTo", IFCRELINTERACTIONREQUIREMENTS, 8, true]],
+    3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],
+    1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ReferencesElement", IFCRELCONNECTSSTRUCTURALELEMENT, 5, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],
+    1721250024: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],
+    1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]],
+    1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],
+    3987759626: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],
+    2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false]],
+    734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, false], ["Causes", IFCSTRUCTURALACTION, 10, true]],
+    2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]],
+    1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1637806684: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3593883385: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]],
+    1213861670: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2470393545: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],
+    3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]],
+    1967976161: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1916977116: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3299480353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    52481810: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2611217952: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2188551683: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false]],
+    1163958913: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["Covers", IFCRELCOVERSBLDGELEMENTS, 5, true]],
+    3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    4147604152: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["IsRelatedFromCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 3, true], ["IsRelatedToCallout", IFCDRAUGHTINGCALLOUTRELATIONSHIP, 2, true]],
+    1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, false], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]],
+    395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    855621170: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1365060375: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1634875225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    857184966: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3055160366: [["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    1376911519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, false], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2454782716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["ObjectTypeOf", IFCRELDEFINESBYTYPE, 5, true]],
+    1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    3700593921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["IsDecomposedBy", IFCRELDECOMPOSES, 4, true], ["Decomposes", IFCRELDECOMPOSES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["HasStructuralMember", IFCRELCONNECTSSTRUCTURALELEMENT, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]]
+  };
+  Constructors[1] = {
+    3630933823: (a) => new IFC2X3.IfcActorRole(a[0], a[1], a[2]),
+    618182010: (a) => new IFC2X3.IfcAddress(a[0], a[1], a[2]),
+    639542469: (a) => new IFC2X3.IfcApplication(a[0], a[1], a[2], a[3]),
+    411424972: (a) => new IFC2X3.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1110488051: (a) => new IFC2X3.IfcAppliedValueRelationship(a[0], a[1], a[2], a[3], a[4]),
+    130549933: (a) => new IFC2X3.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2080292479: (a) => new IFC2X3.IfcApprovalActorRelationship(a[0], a[1], a[2]),
+    390851274: (a) => new IFC2X3.IfcApprovalPropertyRelationship(a[0], a[1]),
+    3869604511: (a) => new IFC2X3.IfcApprovalRelationship(a[0], a[1], a[2], a[3]),
+    4037036970: (a) => new IFC2X3.IfcBoundaryCondition(a[0]),
+    1560379544: (a) => new IFC2X3.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3367102660: (a) => new IFC2X3.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]),
+    1387855156: (a) => new IFC2X3.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2069777674: (a) => new IFC2X3.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    622194075: (a) => new IFC2X3.IfcCalendarDate(a[0], a[1], a[2]),
+    747523909: (a) => new IFC2X3.IfcClassification(a[0], a[1], a[2], a[3]),
+    1767535486: (a) => new IFC2X3.IfcClassificationItem(a[0], a[1], a[2]),
+    1098599126: (a) => new IFC2X3.IfcClassificationItemRelationship(a[0], a[1]),
+    938368621: (a) => new IFC2X3.IfcClassificationNotation(a[0]),
+    3639012971: (a) => new IFC2X3.IfcClassificationNotationFacet(a[0]),
+    3264961684: (a) => new IFC2X3.IfcColourSpecification(a[0]),
+    2859738748: (_) => new IFC2X3.IfcConnectionGeometry(),
+    2614616156: (a) => new IFC2X3.IfcConnectionPointGeometry(a[0], a[1]),
+    4257277454: (a) => new IFC2X3.IfcConnectionPortGeometry(a[0], a[1], a[2]),
+    2732653382: (a) => new IFC2X3.IfcConnectionSurfaceGeometry(a[0], a[1]),
+    1959218052: (a) => new IFC2X3.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1658513725: (a) => new IFC2X3.IfcConstraintAggregationRelationship(a[0], a[1], a[2], a[3], a[4]),
+    613356794: (a) => new IFC2X3.IfcConstraintClassificationRelationship(a[0], a[1]),
+    347226245: (a) => new IFC2X3.IfcConstraintRelationship(a[0], a[1], a[2], a[3]),
+    1065062679: (a) => new IFC2X3.IfcCoordinatedUniversalTimeOffset(a[0], a[1], a[2]),
+    602808272: (a) => new IFC2X3.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    539742890: (a) => new IFC2X3.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4]),
+    1105321065: (a) => new IFC2X3.IfcCurveStyleFont(a[0], a[1]),
+    2367409068: (a) => new IFC2X3.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]),
+    3510044353: (a) => new IFC2X3.IfcCurveStyleFontPattern(a[0], a[1]),
+    1072939445: (a) => new IFC2X3.IfcDateAndTime(a[0], a[1]),
+    1765591967: (a) => new IFC2X3.IfcDerivedUnit(a[0], a[1], a[2]),
+    1045800335: (a) => new IFC2X3.IfcDerivedUnitElement(a[0], a[1]),
+    2949456006: (a) => new IFC2X3.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1376555844: (a) => new IFC2X3.IfcDocumentElectronicFormat(a[0], a[1], a[2]),
+    1154170062: (a) => new IFC2X3.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    770865208: (a) => new IFC2X3.IfcDocumentInformationRelationship(a[0], a[1], a[2]),
+    3796139169: (a) => new IFC2X3.IfcDraughtingCalloutRelationship(a[0], a[1], a[2], a[3]),
+    1648886627: (a) => new IFC2X3.IfcEnvironmentalImpactValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3200245327: (a) => new IFC2X3.IfcExternalReference(a[0], a[1], a[2]),
+    2242383968: (a) => new IFC2X3.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]),
+    1040185647: (a) => new IFC2X3.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]),
+    3207319532: (a) => new IFC2X3.IfcExternallyDefinedSymbol(a[0], a[1], a[2]),
+    3548104201: (a) => new IFC2X3.IfcExternallyDefinedTextFont(a[0], a[1], a[2]),
+    852622518: (a) => new IFC2X3.IfcGridAxis(a[0], a[1], a[2]),
+    3020489413: (a) => new IFC2X3.IfcIrregularTimeSeriesValue(a[0], a[1]),
+    2655187982: (a) => new IFC2X3.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4]),
+    3452421091: (a) => new IFC2X3.IfcLibraryReference(a[0], a[1], a[2]),
+    4162380809: (a) => new IFC2X3.IfcLightDistributionData(a[0], a[1], a[2]),
+    1566485204: (a) => new IFC2X3.IfcLightIntensityDistribution(a[0], a[1]),
+    30780891: (a) => new IFC2X3.IfcLocalTime(a[0], a[1], a[2], a[3], a[4]),
+    1838606355: (a) => new IFC2X3.IfcMaterial(a[0]),
+    1847130766: (a) => new IFC2X3.IfcMaterialClassificationRelationship(a[0], a[1]),
+    248100487: (a) => new IFC2X3.IfcMaterialLayer(a[0], a[1], a[2]),
+    3303938423: (a) => new IFC2X3.IfcMaterialLayerSet(a[0], a[1]),
+    1303795690: (a) => new IFC2X3.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3]),
+    2199411900: (a) => new IFC2X3.IfcMaterialList(a[0]),
+    3265635763: (a) => new IFC2X3.IfcMaterialProperties(a[0]),
+    2597039031: (a) => new IFC2X3.IfcMeasureWithUnit(a[0], a[1]),
+    4256014907: (a) => new IFC2X3.IfcMechanicalMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    677618848: (a) => new IFC2X3.IfcMechanicalSteelMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    3368373690: (a) => new IFC2X3.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2706619895: (a) => new IFC2X3.IfcMonetaryUnit(a[0]),
+    1918398963: (a) => new IFC2X3.IfcNamedUnit(a[0], a[1]),
+    3701648758: (_) => new IFC2X3.IfcObjectPlacement(),
+    2251480897: (a) => new IFC2X3.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1227763645: (a) => new IFC2X3.IfcOpticalMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4251960020: (a) => new IFC2X3.IfcOrganization(a[0], a[1], a[2], a[3], a[4]),
+    1411181986: (a) => new IFC2X3.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]),
+    1207048766: (a) => new IFC2X3.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2077209135: (a) => new IFC2X3.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    101040310: (a) => new IFC2X3.IfcPersonAndOrganization(a[0], a[1], a[2]),
+    2483315170: (a) => new IFC2X3.IfcPhysicalQuantity(a[0], a[1]),
+    2226359599: (a) => new IFC2X3.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]),
+    3355820592: (a) => new IFC2X3.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3727388367: (a) => new IFC2X3.IfcPreDefinedItem(a[0]),
+    990879717: (a) => new IFC2X3.IfcPreDefinedSymbol(a[0]),
+    3213052703: (a) => new IFC2X3.IfcPreDefinedTerminatorSymbol(a[0]),
+    1775413392: (a) => new IFC2X3.IfcPreDefinedTextFont(a[0]),
+    2022622350: (a) => new IFC2X3.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]),
+    1304840413: (a) => new IFC2X3.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3119450353: (a) => new IFC2X3.IfcPresentationStyle(a[0]),
+    2417041796: (a) => new IFC2X3.IfcPresentationStyleAssignment(a[0]),
+    2095639259: (a) => new IFC2X3.IfcProductRepresentation(a[0], a[1], a[2]),
+    2267347899: (a) => new IFC2X3.IfcProductsOfCombustionProperties(a[0], a[1], a[2], a[3], a[4]),
+    3958567839: (a) => new IFC2X3.IfcProfileDef(a[0], a[1]),
+    2802850158: (a) => new IFC2X3.IfcProfileProperties(a[0], a[1]),
+    2598011224: (a) => new IFC2X3.IfcProperty(a[0], a[1]),
+    3896028662: (a) => new IFC2X3.IfcPropertyConstraintRelationship(a[0], a[1], a[2], a[3]),
+    148025276: (a) => new IFC2X3.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]),
+    3710013099: (a) => new IFC2X3.IfcPropertyEnumeration(a[0], a[1], a[2]),
+    2044713172: (a) => new IFC2X3.IfcQuantityArea(a[0], a[1], a[2], a[3]),
+    2093928680: (a) => new IFC2X3.IfcQuantityCount(a[0], a[1], a[2], a[3]),
+    931644368: (a) => new IFC2X3.IfcQuantityLength(a[0], a[1], a[2], a[3]),
+    3252649465: (a) => new IFC2X3.IfcQuantityTime(a[0], a[1], a[2], a[3]),
+    2405470396: (a) => new IFC2X3.IfcQuantityVolume(a[0], a[1], a[2], a[3]),
+    825690147: (a) => new IFC2X3.IfcQuantityWeight(a[0], a[1], a[2], a[3]),
+    2692823254: (a) => new IFC2X3.IfcReferencesValueDocument(a[0], a[1], a[2], a[3]),
+    1580146022: (a) => new IFC2X3.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1222501353: (a) => new IFC2X3.IfcRelaxation(a[0], a[1]),
+    1076942058: (a) => new IFC2X3.IfcRepresentation(a[0], a[1], a[2], a[3]),
+    3377609919: (a) => new IFC2X3.IfcRepresentationContext(a[0], a[1]),
+    3008791417: (_) => new IFC2X3.IfcRepresentationItem(),
+    1660063152: (a) => new IFC2X3.IfcRepresentationMap(a[0], a[1]),
+    3679540991: (a) => new IFC2X3.IfcRibPlateProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2341007311: (a) => new IFC2X3.IfcRoot(a[0], a[1], a[2], a[3]),
+    448429030: (a) => new IFC2X3.IfcSIUnit(a[0], a[1], a[2]),
+    2042790032: (a) => new IFC2X3.IfcSectionProperties(a[0], a[1], a[2]),
+    4165799628: (a) => new IFC2X3.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    867548509: (a) => new IFC2X3.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]),
+    3982875396: (a) => new IFC2X3.IfcShapeModel(a[0], a[1], a[2], a[3]),
+    4240577450: (a) => new IFC2X3.IfcShapeRepresentation(a[0], a[1], a[2], a[3]),
+    3692461612: (a) => new IFC2X3.IfcSimpleProperty(a[0], a[1]),
+    2273995522: (a) => new IFC2X3.IfcStructuralConnectionCondition(a[0]),
+    2162789131: (a) => new IFC2X3.IfcStructuralLoad(a[0]),
+    2525727697: (a) => new IFC2X3.IfcStructuralLoadStatic(a[0]),
+    3408363356: (a) => new IFC2X3.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]),
+    2830218821: (a) => new IFC2X3.IfcStyleModel(a[0], a[1], a[2], a[3]),
+    3958052878: (a) => new IFC2X3.IfcStyledItem(a[0], a[1], a[2]),
+    3049322572: (a) => new IFC2X3.IfcStyledRepresentation(a[0], a[1], a[2], a[3]),
+    1300840506: (a) => new IFC2X3.IfcSurfaceStyle(a[0], a[1], a[2]),
+    3303107099: (a) => new IFC2X3.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]),
+    1607154358: (a) => new IFC2X3.IfcSurfaceStyleRefraction(a[0], a[1]),
+    846575682: (a) => new IFC2X3.IfcSurfaceStyleShading(a[0]),
+    1351298697: (a) => new IFC2X3.IfcSurfaceStyleWithTextures(a[0]),
+    626085974: (a) => new IFC2X3.IfcSurfaceTexture(a[0], a[1], a[2], a[3]),
+    1290481447: (a) => new IFC2X3.IfcSymbolStyle(a[0], a[1]),
+    985171141: (a) => new IFC2X3.IfcTable(a[0], a[1]),
+    531007025: (a) => new IFC2X3.IfcTableRow(a[0], a[1]),
+    912023232: (a) => new IFC2X3.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1447204868: (a) => new IFC2X3.IfcTextStyle(a[0], a[1], a[2], a[3]),
+    1983826977: (a) => new IFC2X3.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2636378356: (a) => new IFC2X3.IfcTextStyleForDefinedFont(a[0], a[1]),
+    1640371178: (a) => new IFC2X3.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1484833681: (a) => new IFC2X3.IfcTextStyleWithBoxCharacteristics(a[0], a[1], a[2], a[3], a[4]),
+    280115917: (_) => new IFC2X3.IfcTextureCoordinate(),
+    1742049831: (a) => new IFC2X3.IfcTextureCoordinateGenerator(a[0], a[1]),
+    2552916305: (a) => new IFC2X3.IfcTextureMap(a[0]),
+    1210645708: (a) => new IFC2X3.IfcTextureVertex(a[0]),
+    3317419933: (a) => new IFC2X3.IfcThermalMaterialProperties(a[0], a[1], a[2], a[3], a[4]),
+    3101149627: (a) => new IFC2X3.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1718945513: (a) => new IFC2X3.IfcTimeSeriesReferenceRelationship(a[0], a[1]),
+    581633288: (a) => new IFC2X3.IfcTimeSeriesValue(a[0]),
+    1377556343: (_) => new IFC2X3.IfcTopologicalRepresentationItem(),
+    1735638870: (a) => new IFC2X3.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]),
+    180925521: (a) => new IFC2X3.IfcUnitAssignment(a[0]),
+    2799835756: (_) => new IFC2X3.IfcVertex(),
+    3304826586: (a) => new IFC2X3.IfcVertexBasedTextureMap(a[0], a[1]),
+    1907098498: (a) => new IFC2X3.IfcVertexPoint(a[0]),
+    891718957: (a) => new IFC2X3.IfcVirtualGridIntersection(a[0], a[1]),
+    1065908215: (a) => new IFC2X3.IfcWaterProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2442683028: (a) => new IFC2X3.IfcAnnotationOccurrence(a[0], a[1], a[2]),
+    962685235: (a) => new IFC2X3.IfcAnnotationSurfaceOccurrence(a[0], a[1], a[2]),
+    3612888222: (a) => new IFC2X3.IfcAnnotationSymbolOccurrence(a[0], a[1], a[2]),
+    2297822566: (a) => new IFC2X3.IfcAnnotationTextOccurrence(a[0], a[1], a[2]),
+    3798115385: (a) => new IFC2X3.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]),
+    1310608509: (a) => new IFC2X3.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]),
+    2705031697: (a) => new IFC2X3.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]),
+    616511568: (a) => new IFC2X3.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3150382593: (a) => new IFC2X3.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]),
+    647927063: (a) => new IFC2X3.IfcClassificationReference(a[0], a[1], a[2], a[3]),
+    776857604: (a) => new IFC2X3.IfcColourRgb(a[0], a[1], a[2], a[3]),
+    2542286263: (a) => new IFC2X3.IfcComplexProperty(a[0], a[1], a[2], a[3]),
+    1485152156: (a) => new IFC2X3.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]),
+    370225590: (a) => new IFC2X3.IfcConnectedFaceSet(a[0]),
+    1981873012: (a) => new IFC2X3.IfcConnectionCurveGeometry(a[0], a[1]),
+    45288368: (a) => new IFC2X3.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]),
+    3050246964: (a) => new IFC2X3.IfcContextDependentUnit(a[0], a[1], a[2]),
+    2889183280: (a) => new IFC2X3.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]),
+    3800577675: (a) => new IFC2X3.IfcCurveStyle(a[0], a[1], a[2], a[3]),
+    3632507154: (a) => new IFC2X3.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    2273265877: (a) => new IFC2X3.IfcDimensionCalloutRelationship(a[0], a[1], a[2], a[3]),
+    1694125774: (a) => new IFC2X3.IfcDimensionPair(a[0], a[1], a[2], a[3]),
+    3732053477: (a) => new IFC2X3.IfcDocumentReference(a[0], a[1], a[2]),
+    4170525392: (a) => new IFC2X3.IfcDraughtingPreDefinedTextFont(a[0]),
+    3900360178: (a) => new IFC2X3.IfcEdge(a[0], a[1]),
+    476780140: (a) => new IFC2X3.IfcEdgeCurve(a[0], a[1], a[2], a[3]),
+    1860660968: (a) => new IFC2X3.IfcExtendedMaterialProperties(a[0], a[1], a[2], a[3]),
+    2556980723: (a) => new IFC2X3.IfcFace(a[0]),
+    1809719519: (a) => new IFC2X3.IfcFaceBound(a[0], a[1]),
+    803316827: (a) => new IFC2X3.IfcFaceOuterBound(a[0], a[1]),
+    3008276851: (a) => new IFC2X3.IfcFaceSurface(a[0], a[1], a[2]),
+    4219587988: (a) => new IFC2X3.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    738692330: (a) => new IFC2X3.IfcFillAreaStyle(a[0], a[1]),
+    3857492461: (a) => new IFC2X3.IfcFuelProperties(a[0], a[1], a[2], a[3], a[4]),
+    803998398: (a) => new IFC2X3.IfcGeneralMaterialProperties(a[0], a[1], a[2], a[3]),
+    1446786286: (a) => new IFC2X3.IfcGeneralProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3448662350: (a) => new IFC2X3.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2453401579: (_) => new IFC2X3.IfcGeometricRepresentationItem(),
+    4142052618: (a) => new IFC2X3.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3590301190: (a) => new IFC2X3.IfcGeometricSet(a[0]),
+    178086475: (a) => new IFC2X3.IfcGridPlacement(a[0], a[1]),
+    812098782: (a) => new IFC2X3.IfcHalfSpaceSolid(a[0], a[1]),
+    2445078500: (a) => new IFC2X3.IfcHygroscopicMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3905492369: (a) => new IFC2X3.IfcImageTexture(a[0], a[1], a[2], a[3], a[4]),
+    3741457305: (a) => new IFC2X3.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1402838566: (a) => new IFC2X3.IfcLightSource(a[0], a[1], a[2], a[3]),
+    125510826: (a) => new IFC2X3.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]),
+    2604431987: (a) => new IFC2X3.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]),
+    4266656042: (a) => new IFC2X3.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1520743889: (a) => new IFC2X3.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3422422726: (a) => new IFC2X3.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    2624227202: (a) => new IFC2X3.IfcLocalPlacement(a[0], a[1]),
+    1008929658: (_) => new IFC2X3.IfcLoop(),
+    2347385850: (a) => new IFC2X3.IfcMappedItem(a[0], a[1]),
+    2022407955: (a) => new IFC2X3.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]),
+    1430189142: (a) => new IFC2X3.IfcMechanicalConcreteMaterialProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    219451334: (a) => new IFC2X3.IfcObjectDefinition(a[0], a[1], a[2], a[3]),
+    2833995503: (a) => new IFC2X3.IfcOneDirectionRepeatFactor(a[0]),
+    2665983363: (a) => new IFC2X3.IfcOpenShell(a[0]),
+    1029017970: (a) => new IFC2X3.IfcOrientedEdge(a[0], a[1]),
+    2529465313: (a) => new IFC2X3.IfcParameterizedProfileDef(a[0], a[1], a[2]),
+    2519244187: (a) => new IFC2X3.IfcPath(a[0]),
+    3021840470: (a) => new IFC2X3.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    597895409: (a) => new IFC2X3.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2004835150: (a) => new IFC2X3.IfcPlacement(a[0]),
+    1663979128: (a) => new IFC2X3.IfcPlanarExtent(a[0], a[1]),
+    2067069095: (_) => new IFC2X3.IfcPoint(),
+    4022376103: (a) => new IFC2X3.IfcPointOnCurve(a[0], a[1]),
+    1423911732: (a) => new IFC2X3.IfcPointOnSurface(a[0], a[1], a[2]),
+    2924175390: (a) => new IFC2X3.IfcPolyLoop(a[0]),
+    2775532180: (a) => new IFC2X3.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]),
+    759155922: (a) => new IFC2X3.IfcPreDefinedColour(a[0]),
+    2559016684: (a) => new IFC2X3.IfcPreDefinedCurveFont(a[0]),
+    433424934: (a) => new IFC2X3.IfcPreDefinedDimensionSymbol(a[0]),
+    179317114: (a) => new IFC2X3.IfcPreDefinedPointMarkerSymbol(a[0]),
+    673634403: (a) => new IFC2X3.IfcProductDefinitionShape(a[0], a[1], a[2]),
+    871118103: (a) => new IFC2X3.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4]),
+    1680319473: (a) => new IFC2X3.IfcPropertyDefinition(a[0], a[1], a[2], a[3]),
+    4166981789: (a) => new IFC2X3.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]),
+    2752243245: (a) => new IFC2X3.IfcPropertyListValue(a[0], a[1], a[2], a[3]),
+    941946838: (a) => new IFC2X3.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]),
+    3357820518: (a) => new IFC2X3.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]),
+    3650150729: (a) => new IFC2X3.IfcPropertySingleValue(a[0], a[1], a[2], a[3]),
+    110355661: (a) => new IFC2X3.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3615266464: (a) => new IFC2X3.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    3413951693: (a) => new IFC2X3.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3765753017: (a) => new IFC2X3.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    478536968: (a) => new IFC2X3.IfcRelationship(a[0], a[1], a[2], a[3]),
+    2778083089: (a) => new IFC2X3.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1509187699: (a) => new IFC2X3.IfcSectionedSpine(a[0], a[1], a[2]),
+    2411513650: (a) => new IFC2X3.IfcServiceLifeFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4124623270: (a) => new IFC2X3.IfcShellBasedSurfaceModel(a[0]),
+    2609359061: (a) => new IFC2X3.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]),
+    723233188: (_) => new IFC2X3.IfcSolidModel(),
+    2485662743: (a) => new IFC2X3.IfcSoundProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1202362311: (a) => new IFC2X3.IfcSoundValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    390701378: (a) => new IFC2X3.IfcSpaceThermalLoadProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    1595516126: (a) => new IFC2X3.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2668620305: (a) => new IFC2X3.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]),
+    2473145415: (a) => new IFC2X3.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1973038258: (a) => new IFC2X3.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1597423693: (a) => new IFC2X3.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1190533807: (a) => new IFC2X3.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3843319758: (a) => new IFC2X3.IfcStructuralProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]),
+    3653947884: (a) => new IFC2X3.IfcStructuralSteelProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23], a[24], a[25], a[26]),
+    2233826070: (a) => new IFC2X3.IfcSubedge(a[0], a[1], a[2]),
+    2513912981: (_) => new IFC2X3.IfcSurface(),
+    1878645084: (a) => new IFC2X3.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2247615214: (a) => new IFC2X3.IfcSweptAreaSolid(a[0], a[1]),
+    1260650574: (a) => new IFC2X3.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]),
+    230924584: (a) => new IFC2X3.IfcSweptSurface(a[0], a[1]),
+    3071757647: (a) => new IFC2X3.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    3028897424: (a) => new IFC2X3.IfcTerminatorSymbol(a[0], a[1], a[2], a[3]),
+    4282788508: (a) => new IFC2X3.IfcTextLiteral(a[0], a[1], a[2]),
+    3124975700: (a) => new IFC2X3.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]),
+    2715220739: (a) => new IFC2X3.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1345879162: (a) => new IFC2X3.IfcTwoDirectionRepeatFactor(a[0], a[1]),
+    1628702193: (a) => new IFC2X3.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2347495698: (a) => new IFC2X3.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    427810014: (a) => new IFC2X3.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1417489154: (a) => new IFC2X3.IfcVector(a[0], a[1]),
+    2759199220: (a) => new IFC2X3.IfcVertexLoop(a[0]),
+    336235671: (a) => new IFC2X3.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    512836454: (a) => new IFC2X3.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1299126871: (a) => new IFC2X3.IfcWindowStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2543172580: (a) => new IFC2X3.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3288037868: (a) => new IFC2X3.IfcAnnotationCurveOccurrence(a[0], a[1], a[2]),
+    669184980: (a) => new IFC2X3.IfcAnnotationFillArea(a[0], a[1]),
+    2265737646: (a) => new IFC2X3.IfcAnnotationFillAreaOccurrence(a[0], a[1], a[2], a[3], a[4]),
+    1302238472: (a) => new IFC2X3.IfcAnnotationSurface(a[0], a[1]),
+    4261334040: (a) => new IFC2X3.IfcAxis1Placement(a[0], a[1]),
+    3125803723: (a) => new IFC2X3.IfcAxis2Placement2D(a[0], a[1]),
+    2740243338: (a) => new IFC2X3.IfcAxis2Placement3D(a[0], a[1], a[2]),
+    2736907675: (a) => new IFC2X3.IfcBooleanResult(a[0], a[1], a[2]),
+    4182860854: (_) => new IFC2X3.IfcBoundedSurface(),
+    2581212453: (a) => new IFC2X3.IfcBoundingBox(a[0], a[1], a[2], a[3]),
+    2713105998: (a) => new IFC2X3.IfcBoxedHalfSpace(a[0], a[1], a[2]),
+    2898889636: (a) => new IFC2X3.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1123145078: (a) => new IFC2X3.IfcCartesianPoint(a[0]),
+    59481748: (a) => new IFC2X3.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]),
+    3749851601: (a) => new IFC2X3.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]),
+    3486308946: (a) => new IFC2X3.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]),
+    3331915920: (a) => new IFC2X3.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]),
+    1416205885: (a) => new IFC2X3.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1383045692: (a) => new IFC2X3.IfcCircleProfileDef(a[0], a[1], a[2], a[3]),
+    2205249479: (a) => new IFC2X3.IfcClosedShell(a[0]),
+    2485617015: (a) => new IFC2X3.IfcCompositeCurveSegment(a[0], a[1], a[2]),
+    4133800736: (a) => new IFC2X3.IfcCraneRailAShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),
+    194851669: (a) => new IFC2X3.IfcCraneRailFShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2506170314: (a) => new IFC2X3.IfcCsgPrimitive3D(a[0]),
+    2147822146: (a) => new IFC2X3.IfcCsgSolid(a[0]),
+    2601014836: (_) => new IFC2X3.IfcCurve(),
+    2827736869: (a) => new IFC2X3.IfcCurveBoundedPlane(a[0], a[1], a[2]),
+    693772133: (a) => new IFC2X3.IfcDefinedSymbol(a[0], a[1]),
+    606661476: (a) => new IFC2X3.IfcDimensionCurve(a[0], a[1], a[2]),
+    4054601972: (a) => new IFC2X3.IfcDimensionCurveTerminator(a[0], a[1], a[2], a[3], a[4]),
+    32440307: (a) => new IFC2X3.IfcDirection(a[0]),
+    2963535650: (a) => new IFC2X3.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),
+    1714330368: (a) => new IFC2X3.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    526551008: (a) => new IFC2X3.IfcDoorStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    3073041342: (a) => new IFC2X3.IfcDraughtingCallout(a[0]),
+    445594917: (a) => new IFC2X3.IfcDraughtingPreDefinedColour(a[0]),
+    4006246654: (a) => new IFC2X3.IfcDraughtingPreDefinedCurveFont(a[0]),
+    1472233963: (a) => new IFC2X3.IfcEdgeLoop(a[0]),
+    1883228015: (a) => new IFC2X3.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    339256511: (a) => new IFC2X3.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2777663545: (a) => new IFC2X3.IfcElementarySurface(a[0]),
+    2835456948: (a) => new IFC2X3.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    80994333: (a) => new IFC2X3.IfcEnergyProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    477187591: (a) => new IFC2X3.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]),
+    2047409740: (a) => new IFC2X3.IfcFaceBasedSurfaceModel(a[0]),
+    374418227: (a) => new IFC2X3.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]),
+    4203026998: (a) => new IFC2X3.IfcFillAreaStyleTileSymbolWithStyle(a[0]),
+    315944413: (a) => new IFC2X3.IfcFillAreaStyleTiles(a[0], a[1], a[2]),
+    3455213021: (a) => new IFC2X3.IfcFluidFlowProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18]),
+    4238390223: (a) => new IFC2X3.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1268542332: (a) => new IFC2X3.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    987898635: (a) => new IFC2X3.IfcGeometricCurveSet(a[0]),
+    1484403080: (a) => new IFC2X3.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    572779678: (a) => new IFC2X3.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1281925730: (a) => new IFC2X3.IfcLine(a[0], a[1]),
+    1425443689: (a) => new IFC2X3.IfcManifoldSolidBrep(a[0]),
+    3888040117: (a) => new IFC2X3.IfcObject(a[0], a[1], a[2], a[3], a[4]),
+    3388369263: (a) => new IFC2X3.IfcOffsetCurve2D(a[0], a[1], a[2]),
+    3505215534: (a) => new IFC2X3.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]),
+    3566463478: (a) => new IFC2X3.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    603570806: (a) => new IFC2X3.IfcPlanarBox(a[0], a[1], a[2]),
+    220341763: (a) => new IFC2X3.IfcPlane(a[0]),
+    2945172077: (a) => new IFC2X3.IfcProcess(a[0], a[1], a[2], a[3], a[4]),
+    4208778838: (a) => new IFC2X3.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    103090709: (a) => new IFC2X3.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4194566429: (a) => new IFC2X3.IfcProjectionCurve(a[0], a[1], a[2]),
+    1451395588: (a) => new IFC2X3.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]),
+    3219374653: (a) => new IFC2X3.IfcProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2770003689: (a) => new IFC2X3.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2798486643: (a) => new IFC2X3.IfcRectangularPyramid(a[0], a[1], a[2], a[3]),
+    3454111270: (a) => new IFC2X3.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3939117080: (a) => new IFC2X3.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1683148259: (a) => new IFC2X3.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2495723537: (a) => new IFC2X3.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1307041759: (a) => new IFC2X3.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    4278684876: (a) => new IFC2X3.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2857406711: (a) => new IFC2X3.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3372526763: (a) => new IFC2X3.IfcRelAssignsToProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    205026976: (a) => new IFC2X3.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1865459582: (a) => new IFC2X3.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]),
+    1327628568: (a) => new IFC2X3.IfcRelAssociatesAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4095574036: (a) => new IFC2X3.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]),
+    919958153: (a) => new IFC2X3.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2728634034: (a) => new IFC2X3.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    982818633: (a) => new IFC2X3.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3840914261: (a) => new IFC2X3.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2655215786: (a) => new IFC2X3.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2851387026: (a) => new IFC2X3.IfcRelAssociatesProfileProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    826625072: (a) => new IFC2X3.IfcRelConnects(a[0], a[1], a[2], a[3]),
+    1204542856: (a) => new IFC2X3.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3945020480: (a) => new IFC2X3.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4201705270: (a) => new IFC2X3.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3190031847: (a) => new IFC2X3.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2127690289: (a) => new IFC2X3.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3912681535: (a) => new IFC2X3.IfcRelConnectsStructuralElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1638771189: (a) => new IFC2X3.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    504942748: (a) => new IFC2X3.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3678494232: (a) => new IFC2X3.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3242617779: (a) => new IFC2X3.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),
+    886880790: (a) => new IFC2X3.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2802773753: (a) => new IFC2X3.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2551354335: (a) => new IFC2X3.IfcRelDecomposes(a[0], a[1], a[2], a[3], a[4], a[5]),
+    693640335: (a) => new IFC2X3.IfcRelDefines(a[0], a[1], a[2], a[3], a[4]),
+    4186316022: (a) => new IFC2X3.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    781010003: (a) => new IFC2X3.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3940055652: (a) => new IFC2X3.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    279856033: (a) => new IFC2X3.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4189434867: (a) => new IFC2X3.IfcRelInteractionRequirements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3268803585: (a) => new IFC2X3.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2051452291: (a) => new IFC2X3.IfcRelOccupiesSpaces(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    202636808: (a) => new IFC2X3.IfcRelOverridesProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    750771296: (a) => new IFC2X3.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1245217292: (a) => new IFC2X3.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1058617721: (a) => new IFC2X3.IfcRelSchedulesCostItems(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    4122056220: (a) => new IFC2X3.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    366585022: (a) => new IFC2X3.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3451746338: (a) => new IFC2X3.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1401173127: (a) => new IFC2X3.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2914609552: (a) => new IFC2X3.IfcResource(a[0], a[1], a[2], a[3], a[4]),
+    1856042241: (a) => new IFC2X3.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]),
+    4158566097: (a) => new IFC2X3.IfcRightCircularCone(a[0], a[1], a[2]),
+    3626867408: (a) => new IFC2X3.IfcRightCircularCylinder(a[0], a[1], a[2]),
+    2706606064: (a) => new IFC2X3.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3893378262: (a) => new IFC2X3.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    451544542: (a) => new IFC2X3.IfcSphere(a[0], a[1]),
+    3544373492: (a) => new IFC2X3.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3136571912: (a) => new IFC2X3.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    530289379: (a) => new IFC2X3.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3689010777: (a) => new IFC2X3.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3979015343: (a) => new IFC2X3.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2218152070: (a) => new IFC2X3.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4070609034: (a) => new IFC2X3.IfcStructuredDimensionCallout(a[0]),
+    2028607225: (a) => new IFC2X3.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2809605785: (a) => new IFC2X3.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]),
+    4124788165: (a) => new IFC2X3.IfcSurfaceOfRevolution(a[0], a[1], a[2]),
+    1580310250: (a) => new IFC2X3.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3473067441: (a) => new IFC2X3.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2097647324: (a) => new IFC2X3.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2296667514: (a) => new IFC2X3.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1674181508: (a) => new IFC2X3.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3207858831: (a) => new IFC2X3.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1334484129: (a) => new IFC2X3.IfcBlock(a[0], a[1], a[2], a[3]),
+    3649129432: (a) => new IFC2X3.IfcBooleanClippingResult(a[0], a[1], a[2]),
+    1260505505: (_) => new IFC2X3.IfcBoundedCurve(),
+    4031249490: (a) => new IFC2X3.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1950629157: (a) => new IFC2X3.IfcBuildingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3124254112: (a) => new IFC2X3.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2937912522: (a) => new IFC2X3.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    300633059: (a) => new IFC2X3.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3732776249: (a) => new IFC2X3.IfcCompositeCurve(a[0], a[1]),
+    2510884976: (a) => new IFC2X3.IfcConic(a[0]),
+    2559216714: (a) => new IFC2X3.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3293443760: (a) => new IFC2X3.IfcControl(a[0], a[1], a[2], a[3], a[4]),
+    3895139033: (a) => new IFC2X3.IfcCostItem(a[0], a[1], a[2], a[3], a[4]),
+    1419761937: (a) => new IFC2X3.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    1916426348: (a) => new IFC2X3.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3295246426: (a) => new IFC2X3.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1457835157: (a) => new IFC2X3.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    681481545: (a) => new IFC2X3.IfcDimensionCurveDirectedCallout(a[0]),
+    3256556792: (a) => new IFC2X3.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3849074793: (a) => new IFC2X3.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    360485395: (a) => new IFC2X3.IfcElectricalBaseProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    1758889154: (a) => new IFC2X3.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4123344466: (a) => new IFC2X3.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1623761950: (a) => new IFC2X3.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2590856083: (a) => new IFC2X3.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1704287377: (a) => new IFC2X3.IfcEllipse(a[0], a[1], a[2]),
+    2107101300: (a) => new IFC2X3.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1962604670: (a) => new IFC2X3.IfcEquipmentElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3272907226: (a) => new IFC2X3.IfcEquipmentStandard(a[0], a[1], a[2], a[3], a[4]),
+    3174744832: (a) => new IFC2X3.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3390157468: (a) => new IFC2X3.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    807026263: (a) => new IFC2X3.IfcFacetedBrep(a[0]),
+    3737207727: (a) => new IFC2X3.IfcFacetedBrepWithVoids(a[0], a[1]),
+    647756555: (a) => new IFC2X3.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2489546625: (a) => new IFC2X3.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2827207264: (a) => new IFC2X3.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2143335405: (a) => new IFC2X3.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1287392070: (a) => new IFC2X3.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3907093117: (a) => new IFC2X3.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3198132628: (a) => new IFC2X3.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3815607619: (a) => new IFC2X3.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1482959167: (a) => new IFC2X3.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1834744321: (a) => new IFC2X3.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1339347760: (a) => new IFC2X3.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2297155007: (a) => new IFC2X3.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3009222698: (a) => new IFC2X3.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    263784265: (a) => new IFC2X3.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    814719939: (a) => new IFC2X3.IfcFurnitureStandard(a[0], a[1], a[2], a[3], a[4]),
+    200128114: (a) => new IFC2X3.IfcGasTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3009204131: (a) => new IFC2X3.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2706460486: (a) => new IFC2X3.IfcGroup(a[0], a[1], a[2], a[3], a[4]),
+    1251058090: (a) => new IFC2X3.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1806887404: (a) => new IFC2X3.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2391368822: (a) => new IFC2X3.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4288270099: (a) => new IFC2X3.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3827777499: (a) => new IFC2X3.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1051575348: (a) => new IFC2X3.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1161773419: (a) => new IFC2X3.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2506943328: (a) => new IFC2X3.IfcLinearDimension(a[0]),
+    377706215: (a) => new IFC2X3.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2108223431: (a) => new IFC2X3.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3181161470: (a) => new IFC2X3.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    977012517: (a) => new IFC2X3.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1916936684: (a) => new IFC2X3.IfcMove(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    4143007308: (a) => new IFC2X3.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3588315303: (a) => new IFC2X3.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3425660407: (a) => new IFC2X3.IfcOrderAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2837617999: (a) => new IFC2X3.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2382730787: (a) => new IFC2X3.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3327091369: (a) => new IFC2X3.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5]),
+    804291784: (a) => new IFC2X3.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4231323485: (a) => new IFC2X3.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4017108033: (a) => new IFC2X3.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3724593414: (a) => new IFC2X3.IfcPolyline(a[0]),
+    3740093272: (a) => new IFC2X3.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2744685151: (a) => new IFC2X3.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2904328755: (a) => new IFC2X3.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3642467123: (a) => new IFC2X3.IfcProjectOrderRecord(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3651124850: (a) => new IFC2X3.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1842657554: (a) => new IFC2X3.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2250791053: (a) => new IFC2X3.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3248260540: (a) => new IFC2X3.IfcRadiusDimension(a[0]),
+    2893384427: (a) => new IFC2X3.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2324767716: (a) => new IFC2X3.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    160246688: (a) => new IFC2X3.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2863920197: (a) => new IFC2X3.IfcRelAssignsTasks(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1768891740: (a) => new IFC2X3.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3517283431: (a) => new IFC2X3.IfcScheduleTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]),
+    4105383287: (a) => new IFC2X3.IfcServiceLife(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    4097777520: (a) => new IFC2X3.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    2533589738: (a) => new IFC2X3.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3856911033: (a) => new IFC2X3.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1305183839: (a) => new IFC2X3.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    652456506: (a) => new IFC2X3.IfcSpaceProgram(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3812236995: (a) => new IFC2X3.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3112655638: (a) => new IFC2X3.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1039846685: (a) => new IFC2X3.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    682877961: (a) => new IFC2X3.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1179482911: (a) => new IFC2X3.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4243806635: (a) => new IFC2X3.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    214636428: (a) => new IFC2X3.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2445595289: (a) => new IFC2X3.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1807405624: (a) => new IFC2X3.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1721250024: (a) => new IFC2X3.IfcStructuralLinearActionVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    1252848954: (a) => new IFC2X3.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1621171031: (a) => new IFC2X3.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    3987759626: (a) => new IFC2X3.IfcStructuralPlanarActionVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    2082059205: (a) => new IFC2X3.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    734778138: (a) => new IFC2X3.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1235345126: (a) => new IFC2X3.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2986769608: (a) => new IFC2X3.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1975003073: (a) => new IFC2X3.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    148013059: (a) => new IFC2X3.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2315554128: (a) => new IFC2X3.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2254336722: (a) => new IFC2X3.IfcSystem(a[0], a[1], a[2], a[3], a[4]),
+    5716631: (a) => new IFC2X3.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1637806684: (a) => new IFC2X3.IfcTimeSeriesSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1692211062: (a) => new IFC2X3.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1620046519: (a) => new IFC2X3.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3593883385: (a) => new IFC2X3.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]),
+    1600972822: (a) => new IFC2X3.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1911125066: (a) => new IFC2X3.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    728799441: (a) => new IFC2X3.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2769231204: (a) => new IFC2X3.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1898987631: (a) => new IFC2X3.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1133259667: (a) => new IFC2X3.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1028945134: (a) => new IFC2X3.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),
+    4218914973: (a) => new IFC2X3.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),
+    3342526732: (a) => new IFC2X3.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),
+    1033361043: (a) => new IFC2X3.IfcZone(a[0], a[1], a[2], a[3], a[4]),
+    1213861670: (a) => new IFC2X3.Ifc2DCompositeCurve(a[0], a[1]),
+    3821786052: (a) => new IFC2X3.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1411407467: (a) => new IFC2X3.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3352864051: (a) => new IFC2X3.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1871374353: (a) => new IFC2X3.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2470393545: (a) => new IFC2X3.IfcAngularDimension(a[0]),
+    3460190687: (a) => new IFC2X3.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    1967976161: (a) => new IFC2X3.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]),
+    819618141: (a) => new IFC2X3.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1916977116: (a) => new IFC2X3.IfcBezierCurve(a[0], a[1], a[2], a[3], a[4]),
+    231477066: (a) => new IFC2X3.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3299480353: (a) => new IFC2X3.IfcBuildingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    52481810: (a) => new IFC2X3.IfcBuildingElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2979338954: (a) => new IFC2X3.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1095909175: (a) => new IFC2X3.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1909888760: (a) => new IFC2X3.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    395041908: (a) => new IFC2X3.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3293546465: (a) => new IFC2X3.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1285652485: (a) => new IFC2X3.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2951183804: (a) => new IFC2X3.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2611217952: (a) => new IFC2X3.IfcCircle(a[0], a[1]),
+    2301859152: (a) => new IFC2X3.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    843113511: (a) => new IFC2X3.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3850581409: (a) => new IFC2X3.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2816379211: (a) => new IFC2X3.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2188551683: (a) => new IFC2X3.IfcCondition(a[0], a[1], a[2], a[3], a[4]),
+    1163958913: (a) => new IFC2X3.IfcConditionCriterion(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3898045240: (a) => new IFC2X3.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1060000209: (a) => new IFC2X3.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    488727124: (a) => new IFC2X3.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    335055490: (a) => new IFC2X3.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2954562838: (a) => new IFC2X3.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1973544240: (a) => new IFC2X3.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3495092785: (a) => new IFC2X3.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3961806047: (a) => new IFC2X3.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4147604152: (a) => new IFC2X3.IfcDiameterDimension(a[0]),
+    1335981549: (a) => new IFC2X3.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2635815018: (a) => new IFC2X3.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1599208980: (a) => new IFC2X3.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2063403501: (a) => new IFC2X3.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1945004755: (a) => new IFC2X3.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3040386961: (a) => new IFC2X3.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3041715199: (a) => new IFC2X3.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    395920057: (a) => new IFC2X3.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    869906466: (a) => new IFC2X3.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3760055223: (a) => new IFC2X3.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2030761528: (a) => new IFC2X3.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    855621170: (a) => new IFC2X3.IfcEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    663422040: (a) => new IFC2X3.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3277789161: (a) => new IFC2X3.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1534661035: (a) => new IFC2X3.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1365060375: (a) => new IFC2X3.IfcElectricHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1217240411: (a) => new IFC2X3.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    712377611: (a) => new IFC2X3.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1634875225: (a) => new IFC2X3.IfcElectricalCircuit(a[0], a[1], a[2], a[3], a[4]),
+    857184966: (a) => new IFC2X3.IfcElectricalElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1658829314: (a) => new IFC2X3.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    346874300: (a) => new IFC2X3.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1810631287: (a) => new IFC2X3.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4222183408: (a) => new IFC2X3.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2058353004: (a) => new IFC2X3.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4278956645: (a) => new IFC2X3.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4037862832: (a) => new IFC2X3.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3132237377: (a) => new IFC2X3.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    987401354: (a) => new IFC2X3.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    707683696: (a) => new IFC2X3.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2223149337: (a) => new IFC2X3.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3508470533: (a) => new IFC2X3.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    900683007: (a) => new IFC2X3.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1073191201: (a) => new IFC2X3.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1687234759: (a) => new IFC2X3.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3171933400: (a) => new IFC2X3.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2262370178: (a) => new IFC2X3.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3024970846: (a) => new IFC2X3.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3283111854: (a) => new IFC2X3.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3055160366: (a) => new IFC2X3.IfcRationalBezierCurve(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3027567501: (a) => new IFC2X3.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2320036040: (a) => new IFC2X3.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    2016517767: (a) => new IFC2X3.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1376911519: (a) => new IFC2X3.IfcRoundedEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1783015770: (a) => new IFC2X3.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1529196076: (a) => new IFC2X3.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    331165859: (a) => new IFC2X3.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4252922144: (a) => new IFC2X3.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2515109513: (a) => new IFC2X3.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3824725483: (a) => new IFC2X3.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    2347447852: (a) => new IFC2X3.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3313531582: (a) => new IFC2X3.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2391406946: (a) => new IFC2X3.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3512223829: (a) => new IFC2X3.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3304561284: (a) => new IFC2X3.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2874132201: (a) => new IFC2X3.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3001207471: (a) => new IFC2X3.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    753842376: (a) => new IFC2X3.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2454782716: (a) => new IFC2X3.IfcChamferEdgeFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    578613899: (a) => new IFC2X3.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1052013943: (a) => new IFC2X3.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1062813311: (a) => new IFC2X3.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3700593921: (a) => new IFC2X3.IfcElectricDistributionPoint(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    979691226: (a) => new IFC2X3.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13])
+  };
+  ToRawLineData[1] = {
+    3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],
+    618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],
+    639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],
+    411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate],
+    1110488051: (i) => [i.ComponentOfTotal, i.Components, i.ArithmeticOperator, i.Name, i.Description],
+    130549933: (i) => [i.Description, i.ApprovalDateTime, i.ApprovalStatus, i.ApprovalLevel, i.ApprovalQualifier, i.Name, i.Identifier],
+    2080292479: (i) => [i.Actor, i.Approval, i.Role],
+    390851274: (i) => [i.ApprovedProperties, i.Approval],
+    3869604511: (i) => [i.RelatedApproval, i.RelatingApproval, i.Description, i.Name],
+    4037036970: (i) => [i.Name],
+    1560379544: (i) => [i.Name, i.LinearStiffnessByLengthX, i.LinearStiffnessByLengthY, i.LinearStiffnessByLengthZ, i.RotationalStiffnessByLengthX, i.RotationalStiffnessByLengthY, i.RotationalStiffnessByLengthZ],
+    3367102660: (i) => [i.Name, i.LinearStiffnessByAreaX, i.LinearStiffnessByAreaY, i.LinearStiffnessByAreaZ],
+    1387855156: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ],
+    2069777674: (i) => [i.Name, i.LinearStiffnessX, i.LinearStiffnessY, i.LinearStiffnessZ, i.RotationalStiffnessX, i.RotationalStiffnessY, i.RotationalStiffnessZ, i.WarpingStiffness],
+    622194075: (i) => [i.DayComponent, i.MonthComponent, i.YearComponent],
+    747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name],
+    1767535486: (i) => [i.Notation, i.ItemOf, i.Title],
+    1098599126: (i) => [i.RelatingItem, i.RelatedItems],
+    938368621: (i) => [i.NotationFacets],
+    3639012971: (i) => [i.NotationValue],
+    3264961684: (i) => [i.Name],
+    2859738748: (_) => [],
+    2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],
+    4257277454: (i) => [i.LocationAtRelatingElement, i.LocationAtRelatedElement, i.ProfileOfPort],
+    2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],
+    1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],
+    1658513725: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints, i.LogicalAggregator],
+    613356794: (i) => [i.ClassifiedConstraint, i.RelatedClassifications],
+    347226245: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedConstraints],
+    1065062679: (i) => [i.HourOffset, i.MinuteOffset, i.Sense],
+    602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.CostType, i.Condition],
+    539742890: (i) => [i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],
+    1105321065: (i) => [i.Name, i.PatternList],
+    2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling],
+    3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],
+    1072939445: (i) => [i.DateComponent, i.TimeComponent],
+    1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType],
+    1045800335: (i) => [i.Unit, i.Exponent],
+    2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],
+    1376555844: (i) => [i.FileExtension, i.MimeContentType, i.MimeSubtype],
+    1154170062: (i) => [i.DocumentId, i.Name, i.Description, i.DocumentReferences, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],
+    770865208: (i) => [i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],
+    3796139169: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],
+    1648886627: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.ImpactType, i.Category, i.UserDefinedCategory],
+    3200245327: (i) => [i.Location, i.ItemReference, i.Name],
+    2242383968: (i) => [i.Location, i.ItemReference, i.Name],
+    1040185647: (i) => [i.Location, i.ItemReference, i.Name],
+    3207319532: (i) => [i.Location, i.ItemReference, i.Name],
+    3548104201: (i) => [i.Location, i.ItemReference, i.Name],
+    852622518: (i) => {
+      var _a;
+      return [i.AxisTag, i.AxisCurve, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],
+    2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.LibraryReference],
+    3452421091: (i) => [i.Location, i.ItemReference, i.Name],
+    4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],
+    1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],
+    30780891: (i) => [i.HourComponent, i.MinuteComponent, i.SecondComponent, i.Zone, i.DaylightSavingOffset],
+    1838606355: (i) => [i.Name],
+    1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],
+    248100487: (i) => {
+      var _a;
+      return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString()];
+    },
+    3303938423: (i) => [i.MaterialLayers, i.LayerSetName],
+    1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine],
+    2199411900: (i) => [i.Materials],
+    3265635763: (i) => [i.Material],
+    2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],
+    4256014907: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient],
+    677618848: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.YieldStress, i.UltimateStress, i.UltimateStrain, i.HardeningModule, i.ProportionalStress, i.PlasticStrain, i.Relaxations],
+    3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue],
+    2706619895: (i) => [i.Currency],
+    1918398963: (i) => [i.Dimensions, i.UnitType],
+    3701648758: (_) => [],
+    2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.ResultValues, i.ObjectiveQualifier, i.UserDefinedQualifier],
+    1227763645: (i) => [i.Material, i.VisibleTransmittance, i.SolarTransmittance, i.ThermalIrTransmittance, i.ThermalIrEmissivityBack, i.ThermalIrEmissivityFront, i.VisibleReflectanceBack, i.VisibleReflectanceFront, i.SolarReflectanceFront, i.SolarReflectanceBack],
+    4251960020: (i) => [i.Id, i.Name, i.Description, i.Roles, i.Addresses],
+    1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],
+    1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],
+    2077209135: (i) => [i.Id, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],
+    101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],
+    2483315170: (i) => [i.Name, i.Description],
+    2226359599: (i) => [i.Name, i.Description, i.Unit],
+    3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],
+    3727388367: (i) => [i.Name],
+    990879717: (i) => [i.Name],
+    3213052703: (i) => [i.Name],
+    1775413392: (i) => [i.Name],
+    2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],
+    1304840413: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier, i.LayerOn, i.LayerFrozen, i.LayerBlocked, i.LayerStyles],
+    3119450353: (i) => [i.Name],
+    2417041796: (i) => [i.Styles],
+    2095639259: (i) => [i.Name, i.Description, i.Representations],
+    2267347899: (i) => [i.Material, i.SpecificHeatCapacity, i.N20Content, i.COContent, i.CO2Content],
+    3958567839: (i) => [i.ProfileType, i.ProfileName],
+    2802850158: (i) => [i.ProfileName, i.ProfileDefinition],
+    2598011224: (i) => [i.Name, i.Description],
+    3896028662: (i) => [i.RelatingConstraint, i.RelatedProperties, i.Name, i.Description],
+    148025276: (i) => [i.DependingProperty, i.DependantProperty, i.Name, i.Description, i.Expression],
+    3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],
+    2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue],
+    2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue],
+    931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue],
+    3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue],
+    2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue],
+    825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue],
+    2692823254: (i) => [i.ReferencedDocument, i.ReferencingValues, i.Name, i.Description],
+    1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],
+    1222501353: (i) => [i.RelaxationValue, i.InitialStress],
+    1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    3377609919: (i) => [i.ContextIdentifier, i.ContextType],
+    3008791417: (_) => [],
+    1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],
+    3679540991: (i) => [i.ProfileName, i.ProfileDefinition, i.Thickness, i.RibHeight, i.RibWidth, i.RibSpacing, i.Direction],
+    2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],
+    2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],
+    4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],
+    867548509: (i) => [i.ShapeRepresentations, i.Name, i.Description, i.ProductDefinitional, i.PartOfProductDefinitionShape],
+    3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    3692461612: (i) => [i.Name, i.Description],
+    2273995522: (i) => [i.Name],
+    2162789131: (i) => [i.Name],
+    2525727697: (i) => [i.Name],
+    3408363356: (i) => [i.Name, i.DeltaT_Constant, i.DeltaT_Y, i.DeltaT_Z],
+    2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    3958052878: (i) => [i.Item, i.Styles, i.Name],
+    3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    1300840506: (i) => [i.Name, i.Side, i.Styles],
+    3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],
+    1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],
+    846575682: (i) => [i.SurfaceColour],
+    1351298697: (i) => [i.Textures],
+    626085974: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform],
+    1290481447: (i) => [i.Name, Labelise(i.StyleOfSymbol)],
+    985171141: (i) => [i.Name, i.Rows],
+    531007025: (i) => [i.RowCells.map((p) => Labelise(p)), i.IsHeading],
+    912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL],
+    1447204868: (i) => [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle],
+    1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],
+    2636378356: (i) => [i.Colour, i.BackgroundColour],
+    1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],
+    1484833681: (i) => [i.BoxHeight, i.BoxWidth, i.BoxSlantAngle, i.BoxRotateAngle, !i.CharacterSpacing ? null : Labelise(i.CharacterSpacing)],
+    280115917: (_) => [],
+    1742049831: (i) => [i.Mode, i.Parameter.map((p) => Labelise(p))],
+    2552916305: (i) => [i.TextureMaps],
+    1210645708: (i) => [i.Coordinates],
+    3317419933: (i) => [i.Material, i.SpecificHeatCapacity, i.BoilingPoint, i.FreezingPoint, i.ThermalConductivity],
+    3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],
+    1718945513: (i) => [i.ReferencedTimeSeries, i.TimeSeriesReferences],
+    581633288: (i) => [i.ListValues.map((p) => Labelise(p))],
+    1377556343: (_) => [],
+    1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    180925521: (i) => [i.Units],
+    2799835756: (_) => [],
+    3304826586: (i) => [i.TextureVertices, i.TexturePoints],
+    1907098498: (i) => [i.VertexGeometry],
+    891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],
+    1065908215: (i) => [i.Material, i.IsPotable, i.Hardness, i.AlkalinityConcentration, i.AcidityConcentration, i.ImpuritiesContent, i.PHLevel, i.DissolvedSolidsContent],
+    2442683028: (i) => [i.Item, i.Styles, i.Name],
+    962685235: (i) => [i.Item, i.Styles, i.Name],
+    3612888222: (i) => [i.Item, i.Styles, i.Name],
+    2297822566: (i) => [i.Item, i.Styles, i.Name],
+    3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],
+    1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],
+    2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],
+    616511568: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.RasterFormat, i.RasterCode],
+    3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],
+    647927063: (i) => [i.Location, i.ItemReference, i.Name, i.ReferencedSource],
+    776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],
+    2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties],
+    1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],
+    370225590: (i) => [i.CfsFaces],
+    1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],
+    45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],
+    3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],
+    2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],
+    3800577675: (i) => [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour],
+    3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],
+    2273265877: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],
+    1694125774: (i) => [i.Name, i.Description, i.RelatingDraughtingCallout, i.RelatedDraughtingCallout],
+    3732053477: (i) => [i.Location, i.ItemReference, i.Name],
+    4170525392: (i) => [i.Name],
+    3900360178: (i) => [i.EdgeStart, i.EdgeEnd],
+    476780140: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, i.SameSense],
+    1860660968: (i) => [i.Material, i.ExtendedProperties, i.Description, i.Name],
+    2556980723: (i) => [i.Bounds],
+    1809719519: (i) => [i.Bound, i.Orientation],
+    803316827: (i) => [i.Bound, i.Orientation],
+    3008276851: (i) => [i.Bounds, i.FaceSurface, i.SameSense],
+    4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],
+    738692330: (i) => [i.Name, i.FillStyles],
+    3857492461: (i) => [i.Material, i.CombustionTemperature, i.CarbonContent, i.LowerHeatingValue, i.HigherHeatingValue],
+    803998398: (i) => [i.Material, i.MolecularWeight, i.Porosity, i.MassDensity],
+    1446786286: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea],
+    3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],
+    2453401579: (_) => [],
+    4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],
+    3590301190: (i) => [i.Elements],
+    178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection],
+    812098782: (i) => [i.BaseSurface, i.AgreementFlag],
+    2445078500: (i) => [i.Material, i.UpperVaporResistanceFactor, i.LowerVaporResistanceFactor, i.IsothermalMoistureCapacity, i.VaporPermeability, i.MoistureDiffusivity],
+    3905492369: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.UrlReference],
+    3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],
+    1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],
+    125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],
+    2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],
+    4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],
+    1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],
+    3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],
+    2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],
+    1008929658: (_) => [],
+    2347385850: (i) => [i.MappingSource, i.MappingTarget],
+    2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],
+    1430189142: (i) => [i.Material, i.DynamicViscosity, i.YoungModulus, i.ShearModulus, i.PoissonRatio, i.ThermalExpansionCoefficient, i.CompressiveStrength, i.MaxAggregateSize, i.AdmixturesDescription, i.Workability, i.ProtectivePoreRatio, i.WaterImpermeability],
+    219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    2833995503: (i) => [i.RepeatFactor],
+    2665983363: (i) => [i.CfsFaces],
+    1029017970: (i) => [i.EdgeStart, i.EdgeEnd, i.EdgeElement, i.Orientation],
+    2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],
+    2519244187: (i) => [i.EdgeList],
+    3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],
+    597895409: (i) => [i.RepeatS, i.RepeatT, i.TextureType, i.TextureTransform, i.Width, i.Height, i.ColourComponents, i.Pixel],
+    2004835150: (i) => [i.Location],
+    1663979128: (i) => [i.SizeInX, i.SizeInY],
+    2067069095: (_) => [],
+    4022376103: (i) => [i.BasisCurve, i.PointParameter],
+    1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],
+    2924175390: (i) => [i.Polygon],
+    2775532180: (i) => [i.BaseSurface, i.AgreementFlag, i.Position, i.PolygonalBoundary],
+    759155922: (i) => [i.Name],
+    2559016684: (i) => [i.Name],
+    433424934: (i) => [i.Name],
+    179317114: (i) => [i.Name],
+    673634403: (i) => [i.Name, i.Description, i.Representations],
+    871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit],
+    1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    4166981789: (i) => [i.Name, i.Description, i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],
+    2752243245: (i) => [i.Name, i.Description, i.ListValues.map((p) => Labelise(p)), i.Unit],
+    941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference],
+    3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],
+    110355661: (i) => [i.Name, i.Description, i.DefiningValues.map((p) => Labelise(p)), i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit],
+    3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],
+    3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],
+    3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],
+    478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],
+    1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],
+    2411513650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PredefinedType, !i.UpperValue ? null : Labelise(i.UpperValue), Labelise(i.MostUsedValue), !i.LowerValue ? null : Labelise(i.LowerValue)],
+    4124623270: (i) => [i.SbsmBoundary],
+    2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],
+    723233188: (_) => [],
+    2485662743: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, (_a = i.IsAttenuating) == null ? void 0 : _a.toString(), i.SoundScale, i.SoundValues];
+    },
+    1202362311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.SoundLevelTimeSeries, i.Frequency, !i.SoundLevelSingleValue ? null : Labelise(i.SoundLevelSingleValue)],
+    390701378: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableValueRatio, i.ThermalLoadSource, i.PropertySource, i.SourceDescription, i.MaximumValue, i.MinimumValue, i.ThermalLoadTimeSeriesValues, i.UserDefinedThermalLoadSource, i.UserDefinedPropertySource, i.ThermalLoadType],
+    1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],
+    2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],
+    2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],
+    1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],
+    1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],
+    1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],
+    3843319758: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY],
+    3653947884: (i) => [i.ProfileName, i.ProfileDefinition, i.PhysicalWeight, i.Perimeter, i.MinimumPlateThickness, i.MaximumPlateThickness, i.CrossSectionArea, i.TorsionalConstantX, i.MomentOfInertiaYZ, i.MomentOfInertiaY, i.MomentOfInertiaZ, i.WarpingConstant, i.ShearCentreZ, i.ShearCentreY, i.ShearDeformationAreaZ, i.ShearDeformationAreaY, i.MaximumSectionModulusY, i.MinimumSectionModulusY, i.MaximumSectionModulusZ, i.MinimumSectionModulusZ, i.TorsionalSectionModulus, i.CentreOfGravityInX, i.CentreOfGravityInY, i.ShearAreaZ, i.ShearAreaY, i.PlasticShapeFactorY, i.PlasticShapeFactorZ],
+    2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],
+    2513912981: (_) => [],
+    1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],
+    2247615214: (i) => [i.SweptArea, i.Position],
+    1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],
+    230924584: (i) => [i.SweptCurve, i.Position],
+    3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope, i.CentreOfGravityInY],
+    3028897424: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve],
+    4282788508: (i) => [i.Literal, i.Placement, i.Path],
+    3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],
+    2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],
+    1345879162: (i) => [i.RepeatFactor, i.SecondRepeatFactor],
+    1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],
+    2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],
+    427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope, i.CentreOfGravityInX],
+    1417489154: (i) => [i.Orientation, i.Magnitude],
+    2759199220: (i) => [i.LoopVertex],
+    336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle],
+    512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],
+    1299126871: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, i.ParameterTakesPrecedence, i.Sizeable],
+    2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],
+    3288037868: (i) => [i.Item, i.Styles, i.Name],
+    669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],
+    2265737646: (i) => [i.Item, i.Styles, i.Name, i.FillStyleTarget, i.GlobalOrLocal],
+    1302238472: (i) => [i.Item, i.TextureCoordinates],
+    4261334040: (i) => [i.Location, i.Axis],
+    3125803723: (i) => [i.Location, i.RefDirection],
+    2740243338: (i) => [i.Location, i.Axis, i.RefDirection],
+    2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],
+    4182860854: (_) => [],
+    2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],
+    2713105998: (i) => [i.BaseSurface, i.AgreementFlag, i.Enclosure],
+    2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius, i.CentreOfGravityInX],
+    1123145078: (i) => [i.Coordinates],
+    59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],
+    3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],
+    3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],
+    3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],
+    1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],
+    1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],
+    2205249479: (i) => [i.CfsFaces],
+    2485617015: (i) => [i.Transition, i.SameSense, i.ParentCurve],
+    4133800736: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.BaseWidth2, i.Radius, i.HeadWidth, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseWidth4, i.BaseDepth1, i.BaseDepth2, i.BaseDepth3, i.CentreOfGravityInY],
+    194851669: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallHeight, i.HeadWidth, i.Radius, i.HeadDepth2, i.HeadDepth3, i.WebThickness, i.BaseDepth1, i.BaseDepth2, i.CentreOfGravityInY],
+    2506170314: (i) => [i.Position],
+    2147822146: (i) => [i.TreeRootExpression],
+    2601014836: (_) => [],
+    2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],
+    693772133: (i) => [i.Definition, i.Target],
+    606661476: (i) => [i.Item, i.Styles, i.Name],
+    4054601972: (i) => [i.Item, i.Styles, i.Name, i.AnnotatedCurve, i.Role],
+    32440307: (i) => [i.DirectionRatios],
+    2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle],
+    1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],
+    526551008: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, i.ParameterTakesPrecedence, i.Sizeable],
+    3073041342: (i) => [i.Contents],
+    445594917: (i) => [i.Name],
+    4006246654: (i) => [i.Name],
+    1472233963: (i) => [i.EdgeList],
+    1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],
+    339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2777663545: (i) => [i.Position],
+    2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],
+    80994333: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence],
+    477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],
+    2047409740: (i) => [i.FbsmFaces],
+    374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],
+    4203026998: (i) => [i.Symbol],
+    315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],
+    3455213021: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PropertySource, i.FlowConditionTimeSeries, i.VelocityTimeSeries, i.FlowrateTimeSeries, i.Fluid, i.PressureTimeSeries, i.UserDefinedPropertySource, i.TemperatureSingleValue, i.WetBulbTemperatureSingleValue, i.WetBulbTemperatureTimeSeries, i.TemperatureTimeSeries, !i.FlowrateSingleValue ? null : Labelise(i.FlowrateSingleValue), i.FlowConditionSingleValue, i.VelocitySingleValue, i.PressureSingleValue],
+    4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace],
+    987898635: (i) => [i.Elements],
+    1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius],
+    572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope, i.CentreOfGravityInX, i.CentreOfGravityInY],
+    1281925730: (i) => [i.Pnt, i.Dir],
+    1425443689: (i) => [i.Outer],
+    3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    3388369263: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect],
+    3505215534: (i) => [i.BasisCurve, i.Distance, i.SelfIntersect, i.RefDirection],
+    3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],
+    603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],
+    220341763: (i) => [i.Position],
+    2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],
+    4194566429: (i) => [i.Item, i.Styles, i.Name],
+    1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],
+    3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag],
+    2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],
+    2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],
+    3454111270: (i) => [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, i.Usense, i.Vsense],
+    3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],
+    1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],
+    2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],
+    1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],
+    4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],
+    2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],
+    3372526763: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],
+    205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],
+    1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],
+    1327628568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingAppliedValue],
+    4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],
+    919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],
+    2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],
+    982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],
+    3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],
+    2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],
+    2851387026: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileProperties, i.ProfileSectionLocation, i.ProfileOrientation],
+    826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],
+    3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],
+    4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],
+    3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],
+    2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],
+    3912681535: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralMember],
+    1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],
+    504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],
+    3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],
+    3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],
+    886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],
+    2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedSpace, i.RelatedCoverings],
+    2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],
+    693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],
+    4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],
+    781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],
+    3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],
+    279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],
+    4189434867: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DailyInteraction, i.ImportanceRating, i.LocationOfInteraction, i.RelatedSpaceProgram, i.RelatingSpaceProgram],
+    3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],
+    2051452291: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],
+    202636808: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition, i.OverridingProperties],
+    750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],
+    1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],
+    1058617721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],
+    4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType],
+    366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],
+    3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],
+    1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],
+    2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],
+    4158566097: (i) => [i.Position, i.Height, i.BottomRadius],
+    3626867408: (i) => [i.Position, i.Height, i.Radius],
+    2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],
+    3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    451544542: (i) => [i.Position, i.Radius],
+    3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],
+    2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness, i.SubsequentThickness, i.VaryingThicknessLocation],
+    4070609034: (i) => [i.Contents],
+    2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface],
+    2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],
+    4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],
+    1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3473067441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority],
+    2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],
+    1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.CentreOfGravityInY],
+    1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],
+    3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],
+    1260505505: (_) => [],
+    4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],
+    1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],
+    2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],
+    300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3732776249: (i) => [i.Segments, i.SelfIntersect],
+    2510884976: (i) => [i.Position],
+    2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],
+    3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SubmittedBy, i.PreparedBy, i.SubmittedOn, i.Status, i.TargetUsers, i.UpdateDate, i.ID, i.PredefinedType],
+    1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],
+    1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    681481545: (i) => [i.Contents],
+    3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    360485395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.EnergySequence, i.UserDefinedEnergySequence, i.ElectricCurrentType, i.InputVoltage, i.InputFrequency, i.FullLoadCurrent, i.MinimumCircuitCurrent, i.MaximumPowerInput, i.RatedPowerInput, i.InputPhase],
+    1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],
+    1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],
+    2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1962604670: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3272907226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    807026263: (i) => [i.Outer],
+    3737207727: (i) => [i.Outer, i.Voids],
+    647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    814719939: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    200128114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes],
+    2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.InventoryType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],
+    4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SkillSet],
+    1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2506943328: (i) => [i.Contents],
+    377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength],
+    2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1916936684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.MoveFrom, i.MoveTo, i.PunchList],
+    4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],
+    3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3425660407: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TaskId, i.Status, i.WorkMethod, i.IsMilestone, i.Priority, i.ActionID],
+    2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LifeCyclePhase],
+    3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PermitID],
+    804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3724593414: (i) => [i.Points],
+    3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ProcedureID, i.ProcedureType, i.UserDefinedProcedureType],
+    2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ID, i.PredefinedType, i.Status],
+    3642467123: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Records, i.PredefinedType],
+    3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3248260540: (i) => [i.Contents],
+    2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],
+    2863920197: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl, i.TimeForTask],
+    1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3517283431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ActualStart, i.EarlyStart, i.LateStart, i.ScheduleStart, i.ActualFinish, i.EarlyFinish, i.LateFinish, i.ScheduleFinish, i.ScheduleDuration, i.ActualDuration, i.RemainingTime, i.FreeFloat, i.TotalFloat, i.IsCritical, i.StatusTime, i.StartFloat, i.FinishFloat, i.Completion],
+    4105383287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ServiceLifeType, i.ServiceLifeDuration],
+    4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],
+    2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.InteriorOrExteriorSpace, i.ElevationWithFlooring],
+    1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    652456506: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.SpaceProgramIdentifier, i.MaxRequiredArea, i.MinRequiredArea, i.RequestedLocation, i.StandardRequiredArea],
+    3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    682877961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy],
+    1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],
+    4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],
+    214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],
+    2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],
+    1807405624: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue],
+    1721250024: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads],
+    1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],
+    1621171031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue],
+    3987759626: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy, i.ProjectedOrTrue, i.VaryingAppliedLoadLocation, i.SubsequentAppliedLoads],
+    2082059205: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.DestabilizingLoad, i.CausedBy],
+    734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],
+    1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    2986769608: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, i.IsLinear],
+    1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],
+    148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.SubContractor, i.JobDescription],
+    2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1637806684: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ApplicableDates, i.TimeSeriesScheduleType, i.TimeSeries],
+    1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OperationType, i.CapacityByWeight, i.CapacityByNumber],
+    3593883385: (i) => [i.BasisCurve, i.Trim1, i.Trim2, i.SenseAgreement, i.MasterRepresentation],
+    1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],
+    4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],
+    3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identifier, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.WorkControlType, i.UserDefinedControlType],
+    1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    1213861670: (i) => [i.Segments, i.SelfIntersect],
+    3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.RequestID],
+    1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2470393545: (i) => [i.Contents],
+    3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.AssetID, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],
+    1967976161: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect],
+    819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1916977116: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect],
+    231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    52481810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.CompositionType],
+    1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2611217952: (i) => [i.Position, i.Radius],
+    2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2188551683: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    1163958913: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Criterion, i.CriterionDateTime],
+    3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],
+    1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity, i.Suppliers, i.UsageRatio],
+    488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ResourceIdentifier, i.ResourceGroup, i.ResourceConsumption, i.BaseQuantity],
+    335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4147604152: (i) => [i.Contents],
+    1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection],
+    395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth],
+    869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    855621170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength],
+    663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1365060375: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1634875225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    857184966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],
+    3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],
+    3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3055160366: (i) => [i.Degree, i.ControlPointsList, i.CurveForm, i.ClosedCurve, i.SelfIntersect, i.WeightsData],
+    3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],
+    2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing],
+    2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],
+    1376911519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Radius],
+    1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ShapeType],
+    4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRiser, i.NumberOfTreads, i.RiserHeight, i.TreadLength],
+    2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults],
+    3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],
+    2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],
+    3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth],
+    2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2454782716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.FeatureLength, i.Width, i.Height],
+    578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.ControlElementId],
+    3700593921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.DistributionPointFunction, i.UserDefinedFunction],
+    979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarRole, i.BarSurface]
+  };
+  TypeInitialisers[1] = {
+    3699917729: (v) => new IFC2X3.IfcAbsorbedDoseMeasure(v),
+    4182062534: (v) => new IFC2X3.IfcAccelerationMeasure(v),
+    360377573: (v) => new IFC2X3.IfcAmountOfSubstanceMeasure(v),
+    632304761: (v) => new IFC2X3.IfcAngularVelocityMeasure(v),
+    2650437152: (v) => new IFC2X3.IfcAreaMeasure(v),
+    2735952531: (v) => new IFC2X3.IfcBoolean(v),
+    1867003952: (v) => new IFC2X3.IfcBoxAlignment(v),
+    2991860651: (v) => new IFC2X3.IfcComplexNumber(v.map((x) => x.value)),
+    3812528620: (v) => new IFC2X3.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)),
+    3238673880: (v) => new IFC2X3.IfcContextDependentMeasure(v),
+    1778710042: (v) => new IFC2X3.IfcCountMeasure(v),
+    94842927: (v) => new IFC2X3.IfcCurvatureMeasure(v),
+    86635668: (v) => new IFC2X3.IfcDayInMonthNumber(v),
+    300323983: (v) => new IFC2X3.IfcDaylightSavingHour(v),
+    1514641115: (v) => new IFC2X3.IfcDescriptiveMeasure(v),
+    4134073009: (v) => new IFC2X3.IfcDimensionCount(v),
+    524656162: (v) => new IFC2X3.IfcDoseEquivalentMeasure(v),
+    69416015: (v) => new IFC2X3.IfcDynamicViscosityMeasure(v),
+    1827137117: (v) => new IFC2X3.IfcElectricCapacitanceMeasure(v),
+    3818826038: (v) => new IFC2X3.IfcElectricChargeMeasure(v),
+    2093906313: (v) => new IFC2X3.IfcElectricConductanceMeasure(v),
+    3790457270: (v) => new IFC2X3.IfcElectricCurrentMeasure(v),
+    2951915441: (v) => new IFC2X3.IfcElectricResistanceMeasure(v),
+    2506197118: (v) => new IFC2X3.IfcElectricVoltageMeasure(v),
+    2078135608: (v) => new IFC2X3.IfcEnergyMeasure(v),
+    1102727119: (v) => new IFC2X3.IfcFontStyle(v),
+    2715512545: (v) => new IFC2X3.IfcFontVariant(v),
+    2590844177: (v) => new IFC2X3.IfcFontWeight(v),
+    1361398929: (v) => new IFC2X3.IfcForceMeasure(v),
+    3044325142: (v) => new IFC2X3.IfcFrequencyMeasure(v),
+    3064340077: (v) => new IFC2X3.IfcGloballyUniqueId(v),
+    3113092358: (v) => new IFC2X3.IfcHeatFluxDensityMeasure(v),
+    1158859006: (v) => new IFC2X3.IfcHeatingValueMeasure(v),
+    2589826445: (v) => new IFC2X3.IfcHourInDay(v),
+    983778844: (v) => new IFC2X3.IfcIdentifier(v),
+    3358199106: (v) => new IFC2X3.IfcIlluminanceMeasure(v),
+    2679005408: (v) => new IFC2X3.IfcInductanceMeasure(v),
+    1939436016: (v) => new IFC2X3.IfcInteger(v),
+    3809634241: (v) => new IFC2X3.IfcIntegerCountRateMeasure(v),
+    3686016028: (v) => new IFC2X3.IfcIonConcentrationMeasure(v),
+    3192672207: (v) => new IFC2X3.IfcIsothermalMoistureCapacityMeasure(v),
+    2054016361: (v) => new IFC2X3.IfcKinematicViscosityMeasure(v),
+    3258342251: (v) => new IFC2X3.IfcLabel(v),
+    1243674935: (v) => new IFC2X3.IfcLengthMeasure(v),
+    191860431: (v) => new IFC2X3.IfcLinearForceMeasure(v),
+    2128979029: (v) => new IFC2X3.IfcLinearMomentMeasure(v),
+    1307019551: (v) => new IFC2X3.IfcLinearStiffnessMeasure(v),
+    3086160713: (v) => new IFC2X3.IfcLinearVelocityMeasure(v),
+    503418787: (v) => new IFC2X3.IfcLogical(v),
+    2095003142: (v) => new IFC2X3.IfcLuminousFluxMeasure(v),
+    2755797622: (v) => new IFC2X3.IfcLuminousIntensityDistributionMeasure(v),
+    151039812: (v) => new IFC2X3.IfcLuminousIntensityMeasure(v),
+    286949696: (v) => new IFC2X3.IfcMagneticFluxDensityMeasure(v),
+    2486716878: (v) => new IFC2X3.IfcMagneticFluxMeasure(v),
+    1477762836: (v) => new IFC2X3.IfcMassDensityMeasure(v),
+    4017473158: (v) => new IFC2X3.IfcMassFlowRateMeasure(v),
+    3124614049: (v) => new IFC2X3.IfcMassMeasure(v),
+    3531705166: (v) => new IFC2X3.IfcMassPerLengthMeasure(v),
+    102610177: (v) => new IFC2X3.IfcMinuteInHour(v),
+    3341486342: (v) => new IFC2X3.IfcModulusOfElasticityMeasure(v),
+    2173214787: (v) => new IFC2X3.IfcModulusOfLinearSubgradeReactionMeasure(v),
+    1052454078: (v) => new IFC2X3.IfcModulusOfRotationalSubgradeReactionMeasure(v),
+    1753493141: (v) => new IFC2X3.IfcModulusOfSubgradeReactionMeasure(v),
+    3177669450: (v) => new IFC2X3.IfcMoistureDiffusivityMeasure(v),
+    1648970520: (v) => new IFC2X3.IfcMolecularWeightMeasure(v),
+    3114022597: (v) => new IFC2X3.IfcMomentOfInertiaMeasure(v),
+    2615040989: (v) => new IFC2X3.IfcMonetaryMeasure(v),
+    765770214: (v) => new IFC2X3.IfcMonthInYearNumber(v),
+    2095195183: (v) => new IFC2X3.IfcNormalisedRatioMeasure(v),
+    2395907400: (v) => new IFC2X3.IfcNumericMeasure(v),
+    929793134: (v) => new IFC2X3.IfcPHMeasure(v),
+    2260317790: (v) => new IFC2X3.IfcParameterValue(v),
+    2642773653: (v) => new IFC2X3.IfcPlanarForceMeasure(v),
+    4042175685: (v) => new IFC2X3.IfcPlaneAngleMeasure(v),
+    2815919920: (v) => new IFC2X3.IfcPositiveLengthMeasure(v),
+    3054510233: (v) => new IFC2X3.IfcPositivePlaneAngleMeasure(v),
+    1245737093: (v) => new IFC2X3.IfcPositiveRatioMeasure(v),
+    1364037233: (v) => new IFC2X3.IfcPowerMeasure(v),
+    2169031380: (v) => new IFC2X3.IfcPresentableText(v),
+    3665567075: (v) => new IFC2X3.IfcPressureMeasure(v),
+    3972513137: (v) => new IFC2X3.IfcRadioActivityMeasure(v),
+    96294661: (v) => new IFC2X3.IfcRatioMeasure(v),
+    200335297: (v) => new IFC2X3.IfcReal(v),
+    2133746277: (v) => new IFC2X3.IfcRotationalFrequencyMeasure(v),
+    1755127002: (v) => new IFC2X3.IfcRotationalMassMeasure(v),
+    3211557302: (v) => new IFC2X3.IfcRotationalStiffnessMeasure(v),
+    2766185779: (v) => new IFC2X3.IfcSecondInMinute(v),
+    3467162246: (v) => new IFC2X3.IfcSectionModulusMeasure(v),
+    2190458107: (v) => new IFC2X3.IfcSectionalAreaIntegralMeasure(v),
+    408310005: (v) => new IFC2X3.IfcShearModulusMeasure(v),
+    3471399674: (v) => new IFC2X3.IfcSolidAngleMeasure(v),
+    846465480: (v) => new IFC2X3.IfcSoundPowerMeasure(v),
+    993287707: (v) => new IFC2X3.IfcSoundPressureMeasure(v),
+    3477203348: (v) => new IFC2X3.IfcSpecificHeatCapacityMeasure(v),
+    2757832317: (v) => new IFC2X3.IfcSpecularExponent(v),
+    361837227: (v) => new IFC2X3.IfcSpecularRoughness(v),
+    58845555: (v) => new IFC2X3.IfcTemperatureGradientMeasure(v),
+    2801250643: (v) => new IFC2X3.IfcText(v),
+    1460886941: (v) => new IFC2X3.IfcTextAlignment(v),
+    3490877962: (v) => new IFC2X3.IfcTextDecoration(v),
+    603696268: (v) => new IFC2X3.IfcTextFontName(v),
+    296282323: (v) => new IFC2X3.IfcTextTransformation(v),
+    232962298: (v) => new IFC2X3.IfcThermalAdmittanceMeasure(v),
+    2645777649: (v) => new IFC2X3.IfcThermalConductivityMeasure(v),
+    2281867870: (v) => new IFC2X3.IfcThermalExpansionCoefficientMeasure(v),
+    857959152: (v) => new IFC2X3.IfcThermalResistanceMeasure(v),
+    2016195849: (v) => new IFC2X3.IfcThermalTransmittanceMeasure(v),
+    743184107: (v) => new IFC2X3.IfcThermodynamicTemperatureMeasure(v),
+    2726807636: (v) => new IFC2X3.IfcTimeMeasure(v),
+    2591213694: (v) => new IFC2X3.IfcTimeStamp(v),
+    1278329552: (v) => new IFC2X3.IfcTorqueMeasure(v),
+    3345633955: (v) => new IFC2X3.IfcVaporPermeabilityMeasure(v),
+    3458127941: (v) => new IFC2X3.IfcVolumeMeasure(v),
+    2593997549: (v) => new IFC2X3.IfcVolumetricFlowRateMeasure(v),
+    51269191: (v) => new IFC2X3.IfcWarpingConstantMeasure(v),
+    1718600412: (v) => new IFC2X3.IfcWarpingMomentMeasure(v),
+    4065007721: (v) => new IFC2X3.IfcYearNumber(v)
+  };
+  var IFC2X3;
+  (function(IFC2X32) {
+    class IfcAbsorbedDoseMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;
+    class IfcAccelerationMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcAccelerationMeasure = IfcAccelerationMeasure;
+    class IfcAmountOfSubstanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;
+    class IfcAngularVelocityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;
+    class IfcAreaMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcAreaMeasure = IfcAreaMeasure;
+    class IfcBoolean {
+      constructor(v) {
+        this.type = 3;
+        this.value = v === null ? v : v == "T" ? true : false;
+      }
+    }
+    IFC2X32.IfcBoolean = IfcBoolean;
+    class IfcBoxAlignment {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcBoxAlignment = IfcBoxAlignment;
+    class IfcComplexNumber {
+      constructor(value) {
+        this.value = value;
+        this.type = 4;
+      }
+    }
+    IFC2X32.IfcComplexNumber = IfcComplexNumber;
+    ;
+    class IfcCompoundPlaneAngleMeasure {
+      constructor(value) {
+        this.value = value;
+        this.type = 10;
+      }
+    }
+    IFC2X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;
+    ;
+    class IfcContextDependentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcContextDependentMeasure = IfcContextDependentMeasure;
+    class IfcCountMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcCountMeasure = IfcCountMeasure;
+    class IfcCurvatureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcCurvatureMeasure = IfcCurvatureMeasure;
+    class IfcDayInMonthNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcDayInMonthNumber = IfcDayInMonthNumber;
+    class IfcDaylightSavingHour {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcDaylightSavingHour = IfcDaylightSavingHour;
+    class IfcDescriptiveMeasure {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure;
+    class IfcDimensionCount {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcDimensionCount = IfcDimensionCount;
+    class IfcDoseEquivalentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;
+    class IfcDynamicViscosityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;
+    class IfcElectricCapacitanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;
+    class IfcElectricChargeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure;
+    class IfcElectricConductanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;
+    class IfcElectricCurrentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;
+    class IfcElectricResistanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;
+    class IfcElectricVoltageMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;
+    class IfcEnergyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcEnergyMeasure = IfcEnergyMeasure;
+    class IfcFontStyle {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcFontStyle = IfcFontStyle;
+    class IfcFontVariant {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcFontVariant = IfcFontVariant;
+    class IfcFontWeight {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcFontWeight = IfcFontWeight;
+    class IfcForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcForceMeasure = IfcForceMeasure;
+    class IfcFrequencyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcFrequencyMeasure = IfcFrequencyMeasure;
+    class IfcGloballyUniqueId {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcGloballyUniqueId = IfcGloballyUniqueId;
+    class IfcHeatFluxDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;
+    class IfcHeatingValueMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure;
+    class IfcHourInDay {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcHourInDay = IfcHourInDay;
+    class IfcIdentifier {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcIdentifier = IfcIdentifier;
+    class IfcIlluminanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure;
+    class IfcInductanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcInductanceMeasure = IfcInductanceMeasure;
+    class IfcInteger {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcInteger = IfcInteger;
+    class IfcIntegerCountRateMeasure {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;
+    class IfcIonConcentrationMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;
+    class IfcIsothermalMoistureCapacityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;
+    class IfcKinematicViscosityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;
+    class IfcLabel {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcLabel = IfcLabel;
+    class IfcLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcLengthMeasure = IfcLengthMeasure;
+    class IfcLinearForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcLinearForceMeasure = IfcLinearForceMeasure;
+    class IfcLinearMomentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure;
+    class IfcLinearStiffnessMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;
+    class IfcLinearVelocityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;
+    class IfcLogical {
+      constructor(v) {
+        this.type = 3;
+        this.value = v === null ? v : v == "T" ? 1 : v == "F" ? 0 : 2;
+      }
+    }
+    IFC2X32.IfcLogical = IfcLogical;
+    class IfcLuminousFluxMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;
+    class IfcLuminousIntensityDistributionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;
+    class IfcLuminousIntensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;
+    class IfcMagneticFluxDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;
+    class IfcMagneticFluxMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;
+    class IfcMassDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMassDensityMeasure = IfcMassDensityMeasure;
+    class IfcMassFlowRateMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;
+    class IfcMassMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMassMeasure = IfcMassMeasure;
+    class IfcMassPerLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;
+    class IfcMinuteInHour {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMinuteInHour = IfcMinuteInHour;
+    class IfcModulusOfElasticityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;
+    class IfcModulusOfLinearSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;
+    class IfcModulusOfRotationalSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;
+    class IfcModulusOfSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;
+    class IfcMoistureDiffusivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;
+    class IfcMolecularWeightMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;
+    class IfcMomentOfInertiaMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;
+    class IfcMonetaryMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMonetaryMeasure = IfcMonetaryMeasure;
+    class IfcMonthInYearNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcMonthInYearNumber = IfcMonthInYearNumber;
+    class IfcNormalisedRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;
+    class IfcNumericMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcNumericMeasure = IfcNumericMeasure;
+    class IfcPHMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcPHMeasure = IfcPHMeasure;
+    class IfcParameterValue {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcParameterValue = IfcParameterValue;
+    class IfcPlanarForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure;
+    class IfcPlaneAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;
+    class IfcPositiveLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;
+    class IfcPositivePlaneAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;
+    class IfcPositiveRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;
+    class IfcPowerMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcPowerMeasure = IfcPowerMeasure;
+    class IfcPresentableText {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcPresentableText = IfcPresentableText;
+    class IfcPressureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcPressureMeasure = IfcPressureMeasure;
+    class IfcRadioActivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure;
+    class IfcRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcRatioMeasure = IfcRatioMeasure;
+    class IfcReal {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcReal = IfcReal;
+    class IfcRotationalFrequencyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;
+    class IfcRotationalMassMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure;
+    class IfcRotationalStiffnessMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;
+    class IfcSecondInMinute {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSecondInMinute = IfcSecondInMinute;
+    class IfcSectionModulusMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure;
+    class IfcSectionalAreaIntegralMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;
+    class IfcShearModulusMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcShearModulusMeasure = IfcShearModulusMeasure;
+    class IfcSolidAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure;
+    class IfcSoundPowerMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure;
+    class IfcSoundPressureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure;
+    class IfcSpecificHeatCapacityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;
+    class IfcSpecularExponent {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSpecularExponent = IfcSpecularExponent;
+    class IfcSpecularRoughness {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcSpecularRoughness = IfcSpecularRoughness;
+    class IfcTemperatureGradientMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;
+    class IfcText {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcText = IfcText;
+    class IfcTextAlignment {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcTextAlignment = IfcTextAlignment;
+    class IfcTextDecoration {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcTextDecoration = IfcTextDecoration;
+    class IfcTextFontName {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcTextFontName = IfcTextFontName;
+    class IfcTextTransformation {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC2X32.IfcTextTransformation = IfcTextTransformation;
+    class IfcThermalAdmittanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;
+    class IfcThermalConductivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;
+    class IfcThermalExpansionCoefficientMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;
+    class IfcThermalResistanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;
+    class IfcThermalTransmittanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;
+    class IfcThermodynamicTemperatureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;
+    class IfcTimeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcTimeMeasure = IfcTimeMeasure;
+    class IfcTimeStamp {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcTimeStamp = IfcTimeStamp;
+    class IfcTorqueMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcTorqueMeasure = IfcTorqueMeasure;
+    class IfcVaporPermeabilityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;
+    class IfcVolumeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcVolumeMeasure = IfcVolumeMeasure;
+    class IfcVolumetricFlowRateMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;
+    class IfcWarpingConstantMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;
+    class IfcWarpingMomentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;
+    class IfcYearNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC2X32.IfcYearNumber = IfcYearNumber;
+    class IfcActionSourceTypeEnum {
+    }
+    IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" };
+    IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" };
+    IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" };
+    IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" };
+    IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" };
+    IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" };
+    IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" };
+    IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" };
+    IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" };
+    IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" };
+    IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" };
+    IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" };
+    IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" };
+    IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" };
+    IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" };
+    IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" };
+    IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" };
+    IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" };
+    IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" };
+    IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" };
+    IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" };
+    IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" };
+    IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" };
+    IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" };
+    IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" };
+    IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;
+    class IfcActionTypeEnum {
+    }
+    IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" };
+    IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" };
+    IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" };
+    IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcActionTypeEnum = IfcActionTypeEnum;
+    class IfcActuatorTypeEnum {
+    }
+    IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" };
+    IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" };
+    IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" };
+    IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" };
+    IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" };
+    IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum;
+    class IfcAddressTypeEnum {
+    }
+    IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" };
+    IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" };
+    IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" };
+    IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" };
+    IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC2X32.IfcAddressTypeEnum = IfcAddressTypeEnum;
+    class IfcAheadOrBehind {
+    }
+    IfcAheadOrBehind.AHEAD = { type: 3, value: "AHEAD" };
+    IfcAheadOrBehind.BEHIND = { type: 3, value: "BEHIND" };
+    IFC2X32.IfcAheadOrBehind = IfcAheadOrBehind;
+    class IfcAirTerminalBoxTypeEnum {
+    }
+    IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" };
+    IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" };
+    IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" };
+    IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;
+    class IfcAirTerminalTypeEnum {
+    }
+    IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" };
+    IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" };
+    IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" };
+    IfcAirTerminalTypeEnum.EYEBALL = { type: 3, value: "EYEBALL" };
+    IfcAirTerminalTypeEnum.IRIS = { type: 3, value: "IRIS" };
+    IfcAirTerminalTypeEnum.LINEARGRILLE = { type: 3, value: "LINEARGRILLE" };
+    IfcAirTerminalTypeEnum.LINEARDIFFUSER = { type: 3, value: "LINEARDIFFUSER" };
+    IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;
+    class IfcAirToAirHeatRecoveryTypeEnum {
+    }
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" };
+    IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" };
+    IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" };
+    IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" };
+    IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" };
+    IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" };
+    IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;
+    class IfcAlarmTypeEnum {
+    }
+    IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" };
+    IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" };
+    IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" };
+    IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" };
+    IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" };
+    IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" };
+    IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum;
+    class IfcAnalysisModelTypeEnum {
+    }
+    IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" };
+    IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" };
+    IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" };
+    IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;
+    class IfcAnalysisTheoryTypeEnum {
+    }
+    IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" };
+    IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;
+    class IfcArithmeticOperatorEnum {
+    }
+    IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" };
+    IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" };
+    IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" };
+    IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" };
+    IFC2X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;
+    class IfcAssemblyPlaceEnum {
+    }
+    IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" };
+    IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" };
+    IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;
+    class IfcBSplineCurveForm {
+    }
+    IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" };
+    IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" };
+    IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" };
+    IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" };
+    IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" };
+    IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC2X32.IfcBSplineCurveForm = IfcBSplineCurveForm;
+    class IfcBeamTypeEnum {
+    }
+    IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" };
+    IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" };
+    IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" };
+    IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" };
+    IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcBeamTypeEnum = IfcBeamTypeEnum;
+    class IfcBenchmarkEnum {
+    }
+    IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" };
+    IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" };
+    IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" };
+    IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" };
+    IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" };
+    IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" };
+    IFC2X32.IfcBenchmarkEnum = IfcBenchmarkEnum;
+    class IfcBoilerTypeEnum {
+    }
+    IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" };
+    IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" };
+    IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum;
+    class IfcBooleanOperator {
+    }
+    IfcBooleanOperator.UNION = { type: 3, value: "UNION" };
+    IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" };
+    IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" };
+    IFC2X32.IfcBooleanOperator = IfcBooleanOperator;
+    class IfcBuildingElementProxyTypeEnum {
+    }
+    IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;
+    class IfcCableCarrierFittingTypeEnum {
+    }
+    IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" };
+    IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" };
+    IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" };
+    IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;
+    class IfcCableCarrierSegmentTypeEnum {
+    }
+    IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;
+    class IfcCableSegmentTypeEnum {
+    }
+    IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" };
+    IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" };
+    IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;
+    class IfcChangeActionEnum {
+    }
+    IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" };
+    IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" };
+    IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" };
+    IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" };
+    IfcChangeActionEnum.MODIFIEDADDED = { type: 3, value: "MODIFIEDADDED" };
+    IfcChangeActionEnum.MODIFIEDDELETED = { type: 3, value: "MODIFIEDDELETED" };
+    IFC2X32.IfcChangeActionEnum = IfcChangeActionEnum;
+    class IfcChillerTypeEnum {
+    }
+    IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" };
+    IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" };
+    IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" };
+    IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcChillerTypeEnum = IfcChillerTypeEnum;
+    class IfcCoilTypeEnum {
+    }
+    IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" };
+    IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" };
+    IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" };
+    IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" };
+    IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" };
+    IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" };
+    IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCoilTypeEnum = IfcCoilTypeEnum;
+    class IfcColumnTypeEnum {
+    }
+    IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" };
+    IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcColumnTypeEnum = IfcColumnTypeEnum;
+    class IfcCompressorTypeEnum {
+    }
+    IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" };
+    IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" };
+    IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" };
+    IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" };
+    IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" };
+    IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" };
+    IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" };
+    IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" };
+    IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" };
+    IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" };
+    IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" };
+    IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" };
+    IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" };
+    IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" };
+    IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" };
+    IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum;
+    class IfcCondenserTypeEnum {
+    }
+    IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" };
+    IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" };
+    IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" };
+    IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" };
+    IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" };
+    IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" };
+    IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum;
+    class IfcConnectionTypeEnum {
+    }
+    IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" };
+    IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" };
+    IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" };
+    IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum;
+    class IfcConstraintEnum {
+    }
+    IfcConstraintEnum.HARD = { type: 3, value: "HARD" };
+    IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" };
+    IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" };
+    IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcConstraintEnum = IfcConstraintEnum;
+    class IfcControllerTypeEnum {
+    }
+    IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" };
+    IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" };
+    IfcControllerTypeEnum.PROPORTIONALINTEGRAL = { type: 3, value: "PROPORTIONALINTEGRAL" };
+    IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE = { type: 3, value: "PROPORTIONALINTEGRALDERIVATIVE" };
+    IfcControllerTypeEnum.TIMEDTWOPOSITION = { type: 3, value: "TIMEDTWOPOSITION" };
+    IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" };
+    IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcControllerTypeEnum = IfcControllerTypeEnum;
+    class IfcCooledBeamTypeEnum {
+    }
+    IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" };
+    IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" };
+    IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;
+    class IfcCoolingTowerTypeEnum {
+    }
+    IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" };
+    IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" };
+    IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" };
+    IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;
+    class IfcCostScheduleTypeEnum {
+    }
+    IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" };
+    IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" };
+    IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" };
+    IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" };
+    IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" };
+    IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" };
+    IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" };
+    IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;
+    class IfcCoveringTypeEnum {
+    }
+    IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" };
+    IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" };
+    IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" };
+    IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" };
+    IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" };
+    IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" };
+    IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" };
+    IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" };
+    IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum;
+    class IfcCurrencyEnum {
+    }
+    IfcCurrencyEnum.AED = { type: 3, value: "AED" };
+    IfcCurrencyEnum.AES = { type: 3, value: "AES" };
+    IfcCurrencyEnum.ATS = { type: 3, value: "ATS" };
+    IfcCurrencyEnum.AUD = { type: 3, value: "AUD" };
+    IfcCurrencyEnum.BBD = { type: 3, value: "BBD" };
+    IfcCurrencyEnum.BEG = { type: 3, value: "BEG" };
+    IfcCurrencyEnum.BGL = { type: 3, value: "BGL" };
+    IfcCurrencyEnum.BHD = { type: 3, value: "BHD" };
+    IfcCurrencyEnum.BMD = { type: 3, value: "BMD" };
+    IfcCurrencyEnum.BND = { type: 3, value: "BND" };
+    IfcCurrencyEnum.BRL = { type: 3, value: "BRL" };
+    IfcCurrencyEnum.BSD = { type: 3, value: "BSD" };
+    IfcCurrencyEnum.BWP = { type: 3, value: "BWP" };
+    IfcCurrencyEnum.BZD = { type: 3, value: "BZD" };
+    IfcCurrencyEnum.CAD = { type: 3, value: "CAD" };
+    IfcCurrencyEnum.CBD = { type: 3, value: "CBD" };
+    IfcCurrencyEnum.CHF = { type: 3, value: "CHF" };
+    IfcCurrencyEnum.CLP = { type: 3, value: "CLP" };
+    IfcCurrencyEnum.CNY = { type: 3, value: "CNY" };
+    IfcCurrencyEnum.CYS = { type: 3, value: "CYS" };
+    IfcCurrencyEnum.CZK = { type: 3, value: "CZK" };
+    IfcCurrencyEnum.DDP = { type: 3, value: "DDP" };
+    IfcCurrencyEnum.DEM = { type: 3, value: "DEM" };
+    IfcCurrencyEnum.DKK = { type: 3, value: "DKK" };
+    IfcCurrencyEnum.EGL = { type: 3, value: "EGL" };
+    IfcCurrencyEnum.EST = { type: 3, value: "EST" };
+    IfcCurrencyEnum.EUR = { type: 3, value: "EUR" };
+    IfcCurrencyEnum.FAK = { type: 3, value: "FAK" };
+    IfcCurrencyEnum.FIM = { type: 3, value: "FIM" };
+    IfcCurrencyEnum.FJD = { type: 3, value: "FJD" };
+    IfcCurrencyEnum.FKP = { type: 3, value: "FKP" };
+    IfcCurrencyEnum.FRF = { type: 3, value: "FRF" };
+    IfcCurrencyEnum.GBP = { type: 3, value: "GBP" };
+    IfcCurrencyEnum.GIP = { type: 3, value: "GIP" };
+    IfcCurrencyEnum.GMD = { type: 3, value: "GMD" };
+    IfcCurrencyEnum.GRX = { type: 3, value: "GRX" };
+    IfcCurrencyEnum.HKD = { type: 3, value: "HKD" };
+    IfcCurrencyEnum.HUF = { type: 3, value: "HUF" };
+    IfcCurrencyEnum.ICK = { type: 3, value: "ICK" };
+    IfcCurrencyEnum.IDR = { type: 3, value: "IDR" };
+    IfcCurrencyEnum.ILS = { type: 3, value: "ILS" };
+    IfcCurrencyEnum.INR = { type: 3, value: "INR" };
+    IfcCurrencyEnum.IRP = { type: 3, value: "IRP" };
+    IfcCurrencyEnum.ITL = { type: 3, value: "ITL" };
+    IfcCurrencyEnum.JMD = { type: 3, value: "JMD" };
+    IfcCurrencyEnum.JOD = { type: 3, value: "JOD" };
+    IfcCurrencyEnum.JPY = { type: 3, value: "JPY" };
+    IfcCurrencyEnum.KES = { type: 3, value: "KES" };
+    IfcCurrencyEnum.KRW = { type: 3, value: "KRW" };
+    IfcCurrencyEnum.KWD = { type: 3, value: "KWD" };
+    IfcCurrencyEnum.KYD = { type: 3, value: "KYD" };
+    IfcCurrencyEnum.LKR = { type: 3, value: "LKR" };
+    IfcCurrencyEnum.LUF = { type: 3, value: "LUF" };
+    IfcCurrencyEnum.MTL = { type: 3, value: "MTL" };
+    IfcCurrencyEnum.MUR = { type: 3, value: "MUR" };
+    IfcCurrencyEnum.MXN = { type: 3, value: "MXN" };
+    IfcCurrencyEnum.MYR = { type: 3, value: "MYR" };
+    IfcCurrencyEnum.NLG = { type: 3, value: "NLG" };
+    IfcCurrencyEnum.NZD = { type: 3, value: "NZD" };
+    IfcCurrencyEnum.OMR = { type: 3, value: "OMR" };
+    IfcCurrencyEnum.PGK = { type: 3, value: "PGK" };
+    IfcCurrencyEnum.PHP = { type: 3, value: "PHP" };
+    IfcCurrencyEnum.PKR = { type: 3, value: "PKR" };
+    IfcCurrencyEnum.PLN = { type: 3, value: "PLN" };
+    IfcCurrencyEnum.PTN = { type: 3, value: "PTN" };
+    IfcCurrencyEnum.QAR = { type: 3, value: "QAR" };
+    IfcCurrencyEnum.RUR = { type: 3, value: "RUR" };
+    IfcCurrencyEnum.SAR = { type: 3, value: "SAR" };
+    IfcCurrencyEnum.SCR = { type: 3, value: "SCR" };
+    IfcCurrencyEnum.SEK = { type: 3, value: "SEK" };
+    IfcCurrencyEnum.SGD = { type: 3, value: "SGD" };
+    IfcCurrencyEnum.SKP = { type: 3, value: "SKP" };
+    IfcCurrencyEnum.THB = { type: 3, value: "THB" };
+    IfcCurrencyEnum.TRL = { type: 3, value: "TRL" };
+    IfcCurrencyEnum.TTD = { type: 3, value: "TTD" };
+    IfcCurrencyEnum.TWD = { type: 3, value: "TWD" };
+    IfcCurrencyEnum.USD = { type: 3, value: "USD" };
+    IfcCurrencyEnum.VEB = { type: 3, value: "VEB" };
+    IfcCurrencyEnum.VND = { type: 3, value: "VND" };
+    IfcCurrencyEnum.XEU = { type: 3, value: "XEU" };
+    IfcCurrencyEnum.ZAR = { type: 3, value: "ZAR" };
+    IfcCurrencyEnum.ZWD = { type: 3, value: "ZWD" };
+    IfcCurrencyEnum.NOK = { type: 3, value: "NOK" };
+    IFC2X32.IfcCurrencyEnum = IfcCurrencyEnum;
+    class IfcCurtainWallTypeEnum {
+    }
+    IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;
+    class IfcDamperTypeEnum {
+    }
+    IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" };
+    IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" };
+    IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" };
+    IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" };
+    IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" };
+    IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" };
+    IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" };
+    IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" };
+    IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" };
+    IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" };
+    IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" };
+    IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDamperTypeEnum = IfcDamperTypeEnum;
+    class IfcDataOriginEnum {
+    }
+    IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" };
+    IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" };
+    IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" };
+    IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDataOriginEnum = IfcDataOriginEnum;
+    class IfcDerivedUnitEnum {
+    }
+    IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" };
+    IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" };
+    IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" };
+    IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" };
+    IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" };
+    IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" };
+    IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" };
+    IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" };
+    IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" };
+    IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" };
+    IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" };
+    IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" };
+    IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" };
+    IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" };
+    IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" };
+    IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" };
+    IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" };
+    IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" };
+    IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" };
+    IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" };
+    IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" };
+    IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" };
+    IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" };
+    IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" };
+    IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" };
+    IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" };
+    IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" };
+    IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" };
+    IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" };
+    IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" };
+    IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" };
+    IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" };
+    IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" };
+    IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" };
+    IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" };
+    IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" };
+    IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC2X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum;
+    class IfcDimensionExtentUsage {
+    }
+    IfcDimensionExtentUsage.ORIGIN = { type: 3, value: "ORIGIN" };
+    IfcDimensionExtentUsage.TARGET = { type: 3, value: "TARGET" };
+    IFC2X32.IfcDimensionExtentUsage = IfcDimensionExtentUsage;
+    class IfcDirectionSenseEnum {
+    }
+    IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" };
+    IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" };
+    IFC2X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum;
+    class IfcDistributionChamberElementTypeEnum {
+    }
+    IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" };
+    IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" };
+    IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" };
+    IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" };
+    IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" };
+    IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" };
+    IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" };
+    IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" };
+    IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;
+    class IfcDocumentConfidentialityEnum {
+    }
+    IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" };
+    IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" };
+    IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" };
+    IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" };
+    IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;
+    class IfcDocumentStatusEnum {
+    }
+    IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" };
+    IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" };
+    IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" };
+    IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" };
+    IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum;
+    class IfcDoorPanelOperationEnum {
+    }
+    IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" };
+    IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" };
+    IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" };
+    IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" };
+    IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" };
+    IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" };
+    IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;
+    class IfcDoorPanelPositionEnum {
+    }
+    IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" };
+    IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" };
+    IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" };
+    IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;
+    class IfcDoorStyleConstructionEnum {
+    }
+    IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" };
+    IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" };
+    IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" };
+    IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" };
+    IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" };
+    IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" };
+    IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;
+    class IfcDoorStyleOperationEnum {
+    }
+    IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" };
+    IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" };
+    IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" };
+    IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" };
+    IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" };
+    IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" };
+    IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" };
+    IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" };
+    IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" };
+    IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;
+    class IfcDuctFittingTypeEnum {
+    }
+    IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" };
+    IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" };
+    IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" };
+    IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;
+    class IfcDuctSegmentTypeEnum {
+    }
+    IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" };
+    IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" };
+    IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;
+    class IfcDuctSilencerTypeEnum {
+    }
+    IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" };
+    IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" };
+    IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" };
+    IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;
+    class IfcElectricApplianceTypeEnum {
+    }
+    IfcElectricApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" };
+    IfcElectricApplianceTypeEnum.DIRECTWATERHEATER = { type: 3, value: "DIRECTWATERHEATER" };
+    IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" };
+    IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" };
+    IfcElectricApplianceTypeEnum.ELECTRICHEATER = { type: 3, value: "ELECTRICHEATER" };
+    IfcElectricApplianceTypeEnum.FACSIMILE = { type: 3, value: "FACSIMILE" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" };
+    IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" };
+    IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" };
+    IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" };
+    IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER = { type: 3, value: "INDIRECTWATERHEATER" };
+    IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" };
+    IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" };
+    IfcElectricApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" };
+    IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" };
+    IfcElectricApplianceTypeEnum.RADIANTHEATER = { type: 3, value: "RADIANTHEATER" };
+    IfcElectricApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" };
+    IfcElectricApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" };
+    IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" };
+    IfcElectricApplianceTypeEnum.TV = { type: 3, value: "TV" };
+    IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" };
+    IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" };
+    IfcElectricApplianceTypeEnum.WATERHEATER = { type: 3, value: "WATERHEATER" };
+    IfcElectricApplianceTypeEnum.WATERCOOLER = { type: 3, value: "WATERCOOLER" };
+    IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;
+    class IfcElectricCurrentEnum {
+    }
+    IfcElectricCurrentEnum.ALTERNATING = { type: 3, value: "ALTERNATING" };
+    IfcElectricCurrentEnum.DIRECT = { type: 3, value: "DIRECT" };
+    IfcElectricCurrentEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElectricCurrentEnum = IfcElectricCurrentEnum;
+    class IfcElectricDistributionPointFunctionEnum {
+    }
+    IfcElectricDistributionPointFunctionEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" };
+    IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" };
+    IfcElectricDistributionPointFunctionEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" };
+    IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" };
+    IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL = { type: 3, value: "GASDETECTORPANEL" };
+    IfcElectricDistributionPointFunctionEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" };
+    IfcElectricDistributionPointFunctionEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" };
+    IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" };
+    IfcElectricDistributionPointFunctionEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" };
+    IfcElectricDistributionPointFunctionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricDistributionPointFunctionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElectricDistributionPointFunctionEnum = IfcElectricDistributionPointFunctionEnum;
+    class IfcElectricFlowStorageDeviceTypeEnum {
+    }
+    IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" };
+    IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" };
+    IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" };
+    IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" };
+    IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" };
+    IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;
+    class IfcElectricGeneratorTypeEnum {
+    }
+    IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;
+    class IfcElectricHeaterTypeEnum {
+    }
+    IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER = { type: 3, value: "ELECTRICPOINTHEATER" };
+    IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER = { type: 3, value: "ELECTRICCABLEHEATER" };
+    IfcElectricHeaterTypeEnum.ELECTRICMATHEATER = { type: 3, value: "ELECTRICMATHEATER" };
+    IfcElectricHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElectricHeaterTypeEnum = IfcElectricHeaterTypeEnum;
+    class IfcElectricMotorTypeEnum {
+    }
+    IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" };
+    IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" };
+    IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" };
+    IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" };
+    IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" };
+    IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;
+    class IfcElectricTimeControlTypeEnum {
+    }
+    IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" };
+    IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" };
+    IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" };
+    IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;
+    class IfcElementAssemblyTypeEnum {
+    }
+    IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" };
+    IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" };
+    IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" };
+    IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" };
+    IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" };
+    IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" };
+    IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" };
+    IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" };
+    IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" };
+    IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;
+    class IfcElementCompositionEnum {
+    }
+    IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" };
+    IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" };
+    IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" };
+    IFC2X32.IfcElementCompositionEnum = IfcElementCompositionEnum;
+    class IfcEnergySequenceEnum {
+    }
+    IfcEnergySequenceEnum.PRIMARY = { type: 3, value: "PRIMARY" };
+    IfcEnergySequenceEnum.SECONDARY = { type: 3, value: "SECONDARY" };
+    IfcEnergySequenceEnum.TERTIARY = { type: 3, value: "TERTIARY" };
+    IfcEnergySequenceEnum.AUXILIARY = { type: 3, value: "AUXILIARY" };
+    IfcEnergySequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEnergySequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcEnergySequenceEnum = IfcEnergySequenceEnum;
+    class IfcEnvironmentalImpactCategoryEnum {
+    }
+    IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE = { type: 3, value: "COMBINEDVALUE" };
+    IfcEnvironmentalImpactCategoryEnum.DISPOSAL = { type: 3, value: "DISPOSAL" };
+    IfcEnvironmentalImpactCategoryEnum.EXTRACTION = { type: 3, value: "EXTRACTION" };
+    IfcEnvironmentalImpactCategoryEnum.INSTALLATION = { type: 3, value: "INSTALLATION" };
+    IfcEnvironmentalImpactCategoryEnum.MANUFACTURE = { type: 3, value: "MANUFACTURE" };
+    IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION = { type: 3, value: "TRANSPORTATION" };
+    IfcEnvironmentalImpactCategoryEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEnvironmentalImpactCategoryEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcEnvironmentalImpactCategoryEnum = IfcEnvironmentalImpactCategoryEnum;
+    class IfcEvaporativeCoolerTypeEnum {
+    }
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" };
+    IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;
+    class IfcEvaporatorTypeEnum {
+    }
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" };
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" };
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" };
+    IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" };
+    IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" };
+    IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;
+    class IfcFanTypeEnum {
+    }
+    IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" };
+    IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" };
+    IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" };
+    IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" };
+    IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" };
+    IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" };
+    IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" };
+    IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcFanTypeEnum = IfcFanTypeEnum;
+    class IfcFilterTypeEnum {
+    }
+    IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" };
+    IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" };
+    IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" };
+    IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" };
+    IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" };
+    IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcFilterTypeEnum = IfcFilterTypeEnum;
+    class IfcFireSuppressionTerminalTypeEnum {
+    }
+    IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" };
+    IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" };
+    IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" };
+    IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" };
+    IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" };
+    IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;
+    class IfcFlowDirectionEnum {
+    }
+    IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" };
+    IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" };
+    IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" };
+    IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum;
+    class IfcFlowInstrumentTypeEnum {
+    }
+    IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" };
+    IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" };
+    IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" };
+    IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" };
+    IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" };
+    IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" };
+    IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" };
+    IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" };
+    IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;
+    class IfcFlowMeterTypeEnum {
+    }
+    IfcFlowMeterTypeEnum.ELECTRICMETER = { type: 3, value: "ELECTRICMETER" };
+    IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" };
+    IfcFlowMeterTypeEnum.FLOWMETER = { type: 3, value: "FLOWMETER" };
+    IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" };
+    IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" };
+    IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" };
+    IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;
+    class IfcFootingTypeEnum {
+    }
+    IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" };
+    IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" };
+    IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" };
+    IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" };
+    IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcFootingTypeEnum = IfcFootingTypeEnum;
+    class IfcGasTerminalTypeEnum {
+    }
+    IfcGasTerminalTypeEnum.GASAPPLIANCE = { type: 3, value: "GASAPPLIANCE" };
+    IfcGasTerminalTypeEnum.GASBOOSTER = { type: 3, value: "GASBOOSTER" };
+    IfcGasTerminalTypeEnum.GASBURNER = { type: 3, value: "GASBURNER" };
+    IfcGasTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGasTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcGasTerminalTypeEnum = IfcGasTerminalTypeEnum;
+    class IfcGeometricProjectionEnum {
+    }
+    IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" };
+    IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" };
+    IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" };
+    IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" };
+    IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" };
+    IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" };
+    IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" };
+    IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;
+    class IfcGlobalOrLocalEnum {
+    }
+    IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" };
+    IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" };
+    IFC2X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;
+    class IfcHeatExchangerTypeEnum {
+    }
+    IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" };
+    IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" };
+    IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;
+    class IfcHumidifierTypeEnum {
+    }
+    IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" };
+    IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" };
+    IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" };
+    IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" };
+    IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" };
+    IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" };
+    IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" };
+    IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" };
+    IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" };
+    IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" };
+    IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" };
+    IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" };
+    IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" };
+    IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;
+    class IfcInternalOrExternalEnum {
+    }
+    IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" };
+    IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;
+    class IfcInventoryTypeEnum {
+    }
+    IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" };
+    IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" };
+    IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" };
+    IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum;
+    class IfcJunctionBoxTypeEnum {
+    }
+    IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;
+    class IfcLampTypeEnum {
+    }
+    IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" };
+    IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" };
+    IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" };
+    IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" };
+    IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" };
+    IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" };
+    IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcLampTypeEnum = IfcLampTypeEnum;
+    class IfcLayerSetDirectionEnum {
+    }
+    IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" };
+    IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" };
+    IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" };
+    IFC2X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;
+    class IfcLightDistributionCurveEnum {
+    }
+    IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" };
+    IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" };
+    IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" };
+    IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;
+    class IfcLightEmissionSourceEnum {
+    }
+    IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" };
+    IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" };
+    IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" };
+    IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" };
+    IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" };
+    IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" };
+    IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" };
+    IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" };
+    IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" };
+    IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" };
+    IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;
+    class IfcLightFixtureTypeEnum {
+    }
+    IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" };
+    IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" };
+    IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;
+    class IfcLoadGroupTypeEnum {
+    }
+    IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" };
+    IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" };
+    IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP = { type: 3, value: "LOAD_COMBINATION_GROUP" };
+    IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" };
+    IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;
+    class IfcLogicalOperatorEnum {
+    }
+    IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" };
+    IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" };
+    IFC2X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;
+    class IfcMemberTypeEnum {
+    }
+    IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" };
+    IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" };
+    IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" };
+    IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" };
+    IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" };
+    IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" };
+    IfcMemberTypeEnum.POST = { type: 3, value: "POST" };
+    IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" };
+    IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" };
+    IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" };
+    IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" };
+    IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" };
+    IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcMemberTypeEnum = IfcMemberTypeEnum;
+    class IfcMotorConnectionTypeEnum {
+    }
+    IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" };
+    IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" };
+    IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" };
+    IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;
+    class IfcNullStyle {
+    }
+    IfcNullStyle.NULL = { type: 3, value: "NULL" };
+    IFC2X32.IfcNullStyle = IfcNullStyle;
+    class IfcObjectTypeEnum {
+    }
+    IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" };
+    IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" };
+    IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" };
+    IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" };
+    IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" };
+    IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" };
+    IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" };
+    IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcObjectTypeEnum = IfcObjectTypeEnum;
+    class IfcObjectiveEnum {
+    }
+    IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" };
+    IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" };
+    IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" };
+    IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" };
+    IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" };
+    IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" };
+    IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcObjectiveEnum = IfcObjectiveEnum;
+    class IfcOccupantTypeEnum {
+    }
+    IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" };
+    IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" };
+    IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" };
+    IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" };
+    IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" };
+    IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" };
+    IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" };
+    IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum;
+    class IfcOutletTypeEnum {
+    }
+    IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" };
+    IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" };
+    IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" };
+    IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcOutletTypeEnum = IfcOutletTypeEnum;
+    class IfcPermeableCoveringOperationEnum {
+    }
+    IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" };
+    IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" };
+    IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" };
+    IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;
+    class IfcPhysicalOrVirtualEnum {
+    }
+    IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" };
+    IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" };
+    IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;
+    class IfcPileConstructionEnum {
+    }
+    IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" };
+    IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" };
+    IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" };
+    IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" };
+    IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcPileConstructionEnum = IfcPileConstructionEnum;
+    class IfcPileTypeEnum {
+    }
+    IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" };
+    IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" };
+    IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" };
+    IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcPileTypeEnum = IfcPileTypeEnum;
+    class IfcPipeFittingTypeEnum {
+    }
+    IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" };
+    IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" };
+    IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" };
+    IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;
+    class IfcPipeSegmentTypeEnum {
+    }
+    IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" };
+    IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" };
+    IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" };
+    IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" };
+    IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;
+    class IfcPlateTypeEnum {
+    }
+    IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" };
+    IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" };
+    IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcPlateTypeEnum = IfcPlateTypeEnum;
+    class IfcProcedureTypeEnum {
+    }
+    IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" };
+    IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" };
+    IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" };
+    IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" };
+    IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" };
+    IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" };
+    IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" };
+    IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum;
+    class IfcProfileTypeEnum {
+    }
+    IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" };
+    IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" };
+    IFC2X32.IfcProfileTypeEnum = IfcProfileTypeEnum;
+    class IfcProjectOrderRecordTypeEnum {
+    }
+    IfcProjectOrderRecordTypeEnum.CHANGE = { type: 3, value: "CHANGE" };
+    IfcProjectOrderRecordTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" };
+    IfcProjectOrderRecordTypeEnum.MOVE = { type: 3, value: "MOVE" };
+    IfcProjectOrderRecordTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" };
+    IfcProjectOrderRecordTypeEnum.WORK = { type: 3, value: "WORK" };
+    IfcProjectOrderRecordTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProjectOrderRecordTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcProjectOrderRecordTypeEnum = IfcProjectOrderRecordTypeEnum;
+    class IfcProjectOrderTypeEnum {
+    }
+    IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" };
+    IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" };
+    IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" };
+    IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" };
+    IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" };
+    IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;
+    class IfcProjectedOrTrueLengthEnum {
+    }
+    IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" };
+    IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" };
+    IFC2X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;
+    class IfcPropertySourceEnum {
+    }
+    IfcPropertySourceEnum.DESIGN = { type: 3, value: "DESIGN" };
+    IfcPropertySourceEnum.DESIGNMAXIMUM = { type: 3, value: "DESIGNMAXIMUM" };
+    IfcPropertySourceEnum.DESIGNMINIMUM = { type: 3, value: "DESIGNMINIMUM" };
+    IfcPropertySourceEnum.SIMULATED = { type: 3, value: "SIMULATED" };
+    IfcPropertySourceEnum.ASBUILT = { type: 3, value: "ASBUILT" };
+    IfcPropertySourceEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" };
+    IfcPropertySourceEnum.MEASURED = { type: 3, value: "MEASURED" };
+    IfcPropertySourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPropertySourceEnum.NOTKNOWN = { type: 3, value: "NOTKNOWN" };
+    IFC2X32.IfcPropertySourceEnum = IfcPropertySourceEnum;
+    class IfcProtectiveDeviceTypeEnum {
+    }
+    IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" };
+    IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" };
+    IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE = { type: 3, value: "EARTHFAILUREDEVICE" };
+    IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" };
+    IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" };
+    IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" };
+    IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;
+    class IfcPumpTypeEnum {
+    }
+    IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" };
+    IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" };
+    IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" };
+    IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" };
+    IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" };
+    IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcPumpTypeEnum = IfcPumpTypeEnum;
+    class IfcRailingTypeEnum {
+    }
+    IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" };
+    IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" };
+    IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" };
+    IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcRailingTypeEnum = IfcRailingTypeEnum;
+    class IfcRampFlightTypeEnum {
+    }
+    IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" };
+    IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" };
+    IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;
+    class IfcRampTypeEnum {
+    }
+    IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" };
+    IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" };
+    IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" };
+    IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" };
+    IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" };
+    IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" };
+    IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcRampTypeEnum = IfcRampTypeEnum;
+    class IfcReflectanceMethodEnum {
+    }
+    IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" };
+    IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" };
+    IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" };
+    IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" };
+    IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" };
+    IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" };
+    IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" };
+    IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" };
+    IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;
+    class IfcReinforcingBarRoleEnum {
+    }
+    IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" };
+    IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" };
+    IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" };
+    IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" };
+    IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" };
+    IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" };
+    IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" };
+    IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;
+    class IfcReinforcingBarSurfaceEnum {
+    }
+    IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" };
+    IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" };
+    IFC2X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;
+    class IfcResourceConsumptionEnum {
+    }
+    IfcResourceConsumptionEnum.CONSUMED = { type: 3, value: "CONSUMED" };
+    IfcResourceConsumptionEnum.PARTIALLYCONSUMED = { type: 3, value: "PARTIALLYCONSUMED" };
+    IfcResourceConsumptionEnum.NOTCONSUMED = { type: 3, value: "NOTCONSUMED" };
+    IfcResourceConsumptionEnum.OCCUPIED = { type: 3, value: "OCCUPIED" };
+    IfcResourceConsumptionEnum.PARTIALLYOCCUPIED = { type: 3, value: "PARTIALLYOCCUPIED" };
+    IfcResourceConsumptionEnum.NOTOCCUPIED = { type: 3, value: "NOTOCCUPIED" };
+    IfcResourceConsumptionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcResourceConsumptionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcResourceConsumptionEnum = IfcResourceConsumptionEnum;
+    class IfcRibPlateDirectionEnum {
+    }
+    IfcRibPlateDirectionEnum.DIRECTION_X = { type: 3, value: "DIRECTION_X" };
+    IfcRibPlateDirectionEnum.DIRECTION_Y = { type: 3, value: "DIRECTION_Y" };
+    IFC2X32.IfcRibPlateDirectionEnum = IfcRibPlateDirectionEnum;
+    class IfcRoleEnum {
+    }
+    IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" };
+    IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" };
+    IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" };
+    IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" };
+    IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" };
+    IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" };
+    IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" };
+    IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" };
+    IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" };
+    IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" };
+    IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" };
+    IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" };
+    IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" };
+    IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" };
+    IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" };
+    IfcRoleEnum.COMISSIONINGENGINEER = { type: 3, value: "COMISSIONINGENGINEER" };
+    IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" };
+    IfcRoleEnum.OWNER = { type: 3, value: "OWNER" };
+    IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" };
+    IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" };
+    IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" };
+    IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" };
+    IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC2X32.IfcRoleEnum = IfcRoleEnum;
+    class IfcRoofTypeEnum {
+    }
+    IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" };
+    IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" };
+    IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" };
+    IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" };
+    IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" };
+    IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" };
+    IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" };
+    IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" };
+    IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" };
+    IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" };
+    IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" };
+    IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" };
+    IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" };
+    IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcRoofTypeEnum = IfcRoofTypeEnum;
+    class IfcSIPrefix {
+    }
+    IfcSIPrefix.EXA = { type: 3, value: "EXA" };
+    IfcSIPrefix.PETA = { type: 3, value: "PETA" };
+    IfcSIPrefix.TERA = { type: 3, value: "TERA" };
+    IfcSIPrefix.GIGA = { type: 3, value: "GIGA" };
+    IfcSIPrefix.MEGA = { type: 3, value: "MEGA" };
+    IfcSIPrefix.KILO = { type: 3, value: "KILO" };
+    IfcSIPrefix.HECTO = { type: 3, value: "HECTO" };
+    IfcSIPrefix.DECA = { type: 3, value: "DECA" };
+    IfcSIPrefix.DECI = { type: 3, value: "DECI" };
+    IfcSIPrefix.CENTI = { type: 3, value: "CENTI" };
+    IfcSIPrefix.MILLI = { type: 3, value: "MILLI" };
+    IfcSIPrefix.MICRO = { type: 3, value: "MICRO" };
+    IfcSIPrefix.NANO = { type: 3, value: "NANO" };
+    IfcSIPrefix.PICO = { type: 3, value: "PICO" };
+    IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" };
+    IfcSIPrefix.ATTO = { type: 3, value: "ATTO" };
+    IFC2X32.IfcSIPrefix = IfcSIPrefix;
+    class IfcSIUnitName {
+    }
+    IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" };
+    IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" };
+    IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" };
+    IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" };
+    IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" };
+    IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" };
+    IfcSIUnitName.FARAD = { type: 3, value: "FARAD" };
+    IfcSIUnitName.GRAM = { type: 3, value: "GRAM" };
+    IfcSIUnitName.GRAY = { type: 3, value: "GRAY" };
+    IfcSIUnitName.HENRY = { type: 3, value: "HENRY" };
+    IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" };
+    IfcSIUnitName.JOULE = { type: 3, value: "JOULE" };
+    IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" };
+    IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" };
+    IfcSIUnitName.LUX = { type: 3, value: "LUX" };
+    IfcSIUnitName.METRE = { type: 3, value: "METRE" };
+    IfcSIUnitName.MOLE = { type: 3, value: "MOLE" };
+    IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" };
+    IfcSIUnitName.OHM = { type: 3, value: "OHM" };
+    IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" };
+    IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" };
+    IfcSIUnitName.SECOND = { type: 3, value: "SECOND" };
+    IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" };
+    IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" };
+    IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" };
+    IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" };
+    IfcSIUnitName.TESLA = { type: 3, value: "TESLA" };
+    IfcSIUnitName.VOLT = { type: 3, value: "VOLT" };
+    IfcSIUnitName.WATT = { type: 3, value: "WATT" };
+    IfcSIUnitName.WEBER = { type: 3, value: "WEBER" };
+    IFC2X32.IfcSIUnitName = IfcSIUnitName;
+    class IfcSanitaryTerminalTypeEnum {
+    }
+    IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" };
+    IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" };
+    IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" };
+    IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" };
+    IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" };
+    IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" };
+    IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" };
+    IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" };
+    IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" };
+    IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" };
+    IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;
+    class IfcSectionTypeEnum {
+    }
+    IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" };
+    IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" };
+    IFC2X32.IfcSectionTypeEnum = IfcSectionTypeEnum;
+    class IfcSensorTypeEnum {
+    }
+    IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" };
+    IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" };
+    IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" };
+    IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" };
+    IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" };
+    IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" };
+    IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" };
+    IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" };
+    IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" };
+    IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" };
+    IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" };
+    IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" };
+    IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" };
+    IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSensorTypeEnum = IfcSensorTypeEnum;
+    class IfcSequenceEnum {
+    }
+    IfcSequenceEnum.START_START = { type: 3, value: "START_START" };
+    IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" };
+    IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" };
+    IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" };
+    IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSequenceEnum = IfcSequenceEnum;
+    class IfcServiceLifeFactorTypeEnum {
+    }
+    IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS = { type: 3, value: "A_QUALITYOFCOMPONENTS" };
+    IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL = { type: 3, value: "B_DESIGNLEVEL" };
+    IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL = { type: 3, value: "C_WORKEXECUTIONLEVEL" };
+    IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT = { type: 3, value: "D_INDOORENVIRONMENT" };
+    IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT = { type: 3, value: "E_OUTDOORENVIRONMENT" };
+    IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS = { type: 3, value: "F_INUSECONDITIONS" };
+    IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL = { type: 3, value: "G_MAINTENANCELEVEL" };
+    IfcServiceLifeFactorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcServiceLifeFactorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcServiceLifeFactorTypeEnum = IfcServiceLifeFactorTypeEnum;
+    class IfcServiceLifeTypeEnum {
+    }
+    IfcServiceLifeTypeEnum.ACTUALSERVICELIFE = { type: 3, value: "ACTUALSERVICELIFE" };
+    IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE = { type: 3, value: "EXPECTEDSERVICELIFE" };
+    IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE = { type: 3, value: "OPTIMISTICREFERENCESERVICELIFE" };
+    IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE = { type: 3, value: "PESSIMISTICREFERENCESERVICELIFE" };
+    IfcServiceLifeTypeEnum.REFERENCESERVICELIFE = { type: 3, value: "REFERENCESERVICELIFE" };
+    IFC2X32.IfcServiceLifeTypeEnum = IfcServiceLifeTypeEnum;
+    class IfcSlabTypeEnum {
+    }
+    IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" };
+    IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" };
+    IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" };
+    IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" };
+    IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSlabTypeEnum = IfcSlabTypeEnum;
+    class IfcSoundScaleEnum {
+    }
+    IfcSoundScaleEnum.DBA = { type: 3, value: "DBA" };
+    IfcSoundScaleEnum.DBB = { type: 3, value: "DBB" };
+    IfcSoundScaleEnum.DBC = { type: 3, value: "DBC" };
+    IfcSoundScaleEnum.NC = { type: 3, value: "NC" };
+    IfcSoundScaleEnum.NR = { type: 3, value: "NR" };
+    IfcSoundScaleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSoundScaleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSoundScaleEnum = IfcSoundScaleEnum;
+    class IfcSpaceHeaterTypeEnum {
+    }
+    IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR = { type: 3, value: "SECTIONALRADIATOR" };
+    IfcSpaceHeaterTypeEnum.PANELRADIATOR = { type: 3, value: "PANELRADIATOR" };
+    IfcSpaceHeaterTypeEnum.TUBULARRADIATOR = { type: 3, value: "TUBULARRADIATOR" };
+    IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" };
+    IfcSpaceHeaterTypeEnum.BASEBOARDHEATER = { type: 3, value: "BASEBOARDHEATER" };
+    IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT = { type: 3, value: "FINNEDTUBEUNIT" };
+    IfcSpaceHeaterTypeEnum.UNITHEATER = { type: 3, value: "UNITHEATER" };
+    IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;
+    class IfcSpaceTypeEnum {
+    }
+    IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum;
+    class IfcStackTerminalTypeEnum {
+    }
+    IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" };
+    IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" };
+    IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" };
+    IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;
+    class IfcStairFlightTypeEnum {
+    }
+    IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" };
+    IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" };
+    IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" };
+    IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" };
+    IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" };
+    IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;
+    class IfcStairTypeEnum {
+    }
+    IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" };
+    IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" };
+    IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" };
+    IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" };
+    IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" };
+    IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" };
+    IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" };
+    IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" };
+    IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcStairTypeEnum = IfcStairTypeEnum;
+    class IfcStateEnum {
+    }
+    IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" };
+    IfcStateEnum.READONLY = { type: 3, value: "READONLY" };
+    IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" };
+    IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" };
+    IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" };
+    IFC2X32.IfcStateEnum = IfcStateEnum;
+    class IfcStructuralCurveTypeEnum {
+    }
+    IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" };
+    IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" };
+    IfcStructuralCurveTypeEnum.CABLE = { type: 3, value: "CABLE" };
+    IfcStructuralCurveTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" };
+    IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" };
+    IfcStructuralCurveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralCurveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcStructuralCurveTypeEnum = IfcStructuralCurveTypeEnum;
+    class IfcStructuralSurfaceTypeEnum {
+    }
+    IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" };
+    IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" };
+    IfcStructuralSurfaceTypeEnum.SHELL = { type: 3, value: "SHELL" };
+    IfcStructuralSurfaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralSurfaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcStructuralSurfaceTypeEnum = IfcStructuralSurfaceTypeEnum;
+    class IfcSurfaceSide {
+    }
+    IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" };
+    IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" };
+    IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" };
+    IFC2X32.IfcSurfaceSide = IfcSurfaceSide;
+    class IfcSurfaceTextureEnum {
+    }
+    IfcSurfaceTextureEnum.BUMP = { type: 3, value: "BUMP" };
+    IfcSurfaceTextureEnum.OPACITY = { type: 3, value: "OPACITY" };
+    IfcSurfaceTextureEnum.REFLECTION = { type: 3, value: "REFLECTION" };
+    IfcSurfaceTextureEnum.SELFILLUMINATION = { type: 3, value: "SELFILLUMINATION" };
+    IfcSurfaceTextureEnum.SHININESS = { type: 3, value: "SHININESS" };
+    IfcSurfaceTextureEnum.SPECULAR = { type: 3, value: "SPECULAR" };
+    IfcSurfaceTextureEnum.TEXTURE = { type: 3, value: "TEXTURE" };
+    IfcSurfaceTextureEnum.TRANSPARENCYMAP = { type: 3, value: "TRANSPARENCYMAP" };
+    IfcSurfaceTextureEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSurfaceTextureEnum = IfcSurfaceTextureEnum;
+    class IfcSwitchingDeviceTypeEnum {
+    }
+    IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" };
+    IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" };
+    IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" };
+    IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" };
+    IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" };
+    IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;
+    class IfcTankTypeEnum {
+    }
+    IfcTankTypeEnum.PREFORMED = { type: 3, value: "PREFORMED" };
+    IfcTankTypeEnum.SECTIONAL = { type: 3, value: "SECTIONAL" };
+    IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" };
+    IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" };
+    IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcTankTypeEnum = IfcTankTypeEnum;
+    class IfcTendonTypeEnum {
+    }
+    IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" };
+    IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" };
+    IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" };
+    IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" };
+    IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcTendonTypeEnum = IfcTendonTypeEnum;
+    class IfcTextPath {
+    }
+    IfcTextPath.LEFT = { type: 3, value: "LEFT" };
+    IfcTextPath.RIGHT = { type: 3, value: "RIGHT" };
+    IfcTextPath.UP = { type: 3, value: "UP" };
+    IfcTextPath.DOWN = { type: 3, value: "DOWN" };
+    IFC2X32.IfcTextPath = IfcTextPath;
+    class IfcThermalLoadSourceEnum {
+    }
+    IfcThermalLoadSourceEnum.PEOPLE = { type: 3, value: "PEOPLE" };
+    IfcThermalLoadSourceEnum.LIGHTING = { type: 3, value: "LIGHTING" };
+    IfcThermalLoadSourceEnum.EQUIPMENT = { type: 3, value: "EQUIPMENT" };
+    IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR = { type: 3, value: "VENTILATIONINDOORAIR" };
+    IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR = { type: 3, value: "VENTILATIONOUTSIDEAIR" };
+    IfcThermalLoadSourceEnum.RECIRCULATEDAIR = { type: 3, value: "RECIRCULATEDAIR" };
+    IfcThermalLoadSourceEnum.EXHAUSTAIR = { type: 3, value: "EXHAUSTAIR" };
+    IfcThermalLoadSourceEnum.AIREXCHANGERATE = { type: 3, value: "AIREXCHANGERATE" };
+    IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE = { type: 3, value: "DRYBULBTEMPERATURE" };
+    IfcThermalLoadSourceEnum.RELATIVEHUMIDITY = { type: 3, value: "RELATIVEHUMIDITY" };
+    IfcThermalLoadSourceEnum.INFILTRATION = { type: 3, value: "INFILTRATION" };
+    IfcThermalLoadSourceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcThermalLoadSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcThermalLoadSourceEnum = IfcThermalLoadSourceEnum;
+    class IfcThermalLoadTypeEnum {
+    }
+    IfcThermalLoadTypeEnum.SENSIBLE = { type: 3, value: "SENSIBLE" };
+    IfcThermalLoadTypeEnum.LATENT = { type: 3, value: "LATENT" };
+    IfcThermalLoadTypeEnum.RADIANT = { type: 3, value: "RADIANT" };
+    IfcThermalLoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcThermalLoadTypeEnum = IfcThermalLoadTypeEnum;
+    class IfcTimeSeriesDataTypeEnum {
+    }
+    IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" };
+    IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" };
+    IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" };
+    IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;
+    class IfcTimeSeriesScheduleTypeEnum {
+    }
+    IfcTimeSeriesScheduleTypeEnum.ANNUAL = { type: 3, value: "ANNUAL" };
+    IfcTimeSeriesScheduleTypeEnum.MONTHLY = { type: 3, value: "MONTHLY" };
+    IfcTimeSeriesScheduleTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" };
+    IfcTimeSeriesScheduleTypeEnum.DAILY = { type: 3, value: "DAILY" };
+    IfcTimeSeriesScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTimeSeriesScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcTimeSeriesScheduleTypeEnum = IfcTimeSeriesScheduleTypeEnum;
+    class IfcTransformerTypeEnum {
+    }
+    IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" };
+    IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" };
+    IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" };
+    IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum;
+    class IfcTransitionCode {
+    }
+    IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" };
+    IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" };
+    IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" };
+    IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" };
+    IFC2X32.IfcTransitionCode = IfcTransitionCode;
+    class IfcTransportElementTypeEnum {
+    }
+    IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" };
+    IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" };
+    IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" };
+    IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;
+    class IfcTrimmingPreference {
+    }
+    IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" };
+    IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" };
+    IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC2X32.IfcTrimmingPreference = IfcTrimmingPreference;
+    class IfcTubeBundleTypeEnum {
+    }
+    IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" };
+    IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;
+    class IfcUnitEnum {
+    }
+    IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" };
+    IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" };
+    IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" };
+    IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" };
+    IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" };
+    IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" };
+    IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" };
+    IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" };
+    IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" };
+    IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" };
+    IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" };
+    IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" };
+    IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" };
+    IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" };
+    IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" };
+    IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" };
+    IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" };
+    IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" };
+    IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" };
+    IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" };
+    IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" };
+    IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" };
+    IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" };
+    IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" };
+    IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" };
+    IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" };
+    IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" };
+    IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" };
+    IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" };
+    IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC2X32.IfcUnitEnum = IfcUnitEnum;
+    class IfcUnitaryEquipmentTypeEnum {
+    }
+    IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" };
+    IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" };
+    IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" };
+    IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" };
+    IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;
+    class IfcValveTypeEnum {
+    }
+    IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" };
+    IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" };
+    IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" };
+    IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" };
+    IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" };
+    IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" };
+    IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" };
+    IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" };
+    IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" };
+    IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" };
+    IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" };
+    IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" };
+    IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" };
+    IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" };
+    IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" };
+    IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" };
+    IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" };
+    IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" };
+    IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" };
+    IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" };
+    IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" };
+    IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcValveTypeEnum = IfcValveTypeEnum;
+    class IfcVibrationIsolatorTypeEnum {
+    }
+    IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" };
+    IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" };
+    IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;
+    class IfcWallTypeEnum {
+    }
+    IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" };
+    IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" };
+    IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" };
+    IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" };
+    IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" };
+    IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcWallTypeEnum = IfcWallTypeEnum;
+    class IfcWasteTerminalTypeEnum {
+    }
+    IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" };
+    IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" };
+    IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" };
+    IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" };
+    IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR = { type: 3, value: "GREASEINTERCEPTOR" };
+    IfcWasteTerminalTypeEnum.OILINTERCEPTOR = { type: 3, value: "OILINTERCEPTOR" };
+    IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR = { type: 3, value: "PETROLINTERCEPTOR" };
+    IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" };
+    IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" };
+    IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" };
+    IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;
+    class IfcWindowPanelOperationEnum {
+    }
+    IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" };
+    IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" };
+    IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" };
+    IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" };
+    IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" };
+    IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" };
+    IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" };
+    IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" };
+    IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" };
+    IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" };
+    IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" };
+    IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" };
+    IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" };
+    IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;
+    class IfcWindowPanelPositionEnum {
+    }
+    IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" };
+    IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" };
+    IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" };
+    IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" };
+    IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" };
+    IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;
+    class IfcWindowStyleConstructionEnum {
+    }
+    IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" };
+    IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" };
+    IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" };
+    IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" };
+    IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" };
+    IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" };
+    IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;
+    class IfcWindowStyleOperationEnum {
+    }
+    IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" };
+    IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" };
+    IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" };
+    IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;
+    class IfcWorkControlTypeEnum {
+    }
+    IfcWorkControlTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" };
+    IfcWorkControlTypeEnum.BASELINE = { type: 3, value: "BASELINE" };
+    IfcWorkControlTypeEnum.PLANNED = { type: 3, value: "PLANNED" };
+    IfcWorkControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWorkControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC2X32.IfcWorkControlTypeEnum = IfcWorkControlTypeEnum;
+    class IfcActorRole extends IfcLineObject {
+      constructor(Role, UserDefinedRole, Description) {
+        super();
+        this.Role = Role;
+        this.UserDefinedRole = UserDefinedRole;
+        this.Description = Description;
+        this.type = 3630933823;
+      }
+    }
+    IFC2X32.IfcActorRole = IfcActorRole;
+    class IfcAddress extends IfcLineObject {
+      constructor(Purpose, Description, UserDefinedPurpose) {
+        super();
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.type = 618182010;
+      }
+    }
+    IFC2X32.IfcAddress = IfcAddress;
+    class IfcApplication extends IfcLineObject {
+      constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {
+        super();
+        this.ApplicationDeveloper = ApplicationDeveloper;
+        this.Version = Version;
+        this.ApplicationFullName = ApplicationFullName;
+        this.ApplicationIdentifier = ApplicationIdentifier;
+        this.type = 639542469;
+      }
+    }
+    IFC2X32.IfcApplication = IfcApplication;
+    class IfcAppliedValue extends IfcLineObject {
+      constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.AppliedValue = AppliedValue;
+        this.UnitBasis = UnitBasis;
+        this.ApplicableDate = ApplicableDate;
+        this.FixedUntilDate = FixedUntilDate;
+        this.type = 411424972;
+      }
+    }
+    IFC2X32.IfcAppliedValue = IfcAppliedValue;
+    class IfcAppliedValueRelationship extends IfcLineObject {
+      constructor(ComponentOfTotal, Components, ArithmeticOperator, Name, Description) {
+        super();
+        this.ComponentOfTotal = ComponentOfTotal;
+        this.Components = Components;
+        this.ArithmeticOperator = ArithmeticOperator;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 1110488051;
+      }
+    }
+    IFC2X32.IfcAppliedValueRelationship = IfcAppliedValueRelationship;
+    class IfcApproval extends IfcLineObject {
+      constructor(Description, ApprovalDateTime, ApprovalStatus, ApprovalLevel, ApprovalQualifier, Name, Identifier) {
+        super();
+        this.Description = Description;
+        this.ApprovalDateTime = ApprovalDateTime;
+        this.ApprovalStatus = ApprovalStatus;
+        this.ApprovalLevel = ApprovalLevel;
+        this.ApprovalQualifier = ApprovalQualifier;
+        this.Name = Name;
+        this.Identifier = Identifier;
+        this.type = 130549933;
+      }
+    }
+    IFC2X32.IfcApproval = IfcApproval;
+    class IfcApprovalActorRelationship extends IfcLineObject {
+      constructor(Actor, Approval, Role) {
+        super();
+        this.Actor = Actor;
+        this.Approval = Approval;
+        this.Role = Role;
+        this.type = 2080292479;
+      }
+    }
+    IFC2X32.IfcApprovalActorRelationship = IfcApprovalActorRelationship;
+    class IfcApprovalPropertyRelationship extends IfcLineObject {
+      constructor(ApprovedProperties, Approval) {
+        super();
+        this.ApprovedProperties = ApprovedProperties;
+        this.Approval = Approval;
+        this.type = 390851274;
+      }
+    }
+    IFC2X32.IfcApprovalPropertyRelationship = IfcApprovalPropertyRelationship;
+    class IfcApprovalRelationship extends IfcLineObject {
+      constructor(RelatedApproval, RelatingApproval, Description, Name) {
+        super();
+        this.RelatedApproval = RelatedApproval;
+        this.RelatingApproval = RelatingApproval;
+        this.Description = Description;
+        this.Name = Name;
+        this.type = 3869604511;
+      }
+    }
+    IFC2X32.IfcApprovalRelationship = IfcApprovalRelationship;
+    class IfcBoundaryCondition extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 4037036970;
+      }
+    }
+    IFC2X32.IfcBoundaryCondition = IfcBoundaryCondition;
+    class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {
+      constructor(Name, LinearStiffnessByLengthX, LinearStiffnessByLengthY, LinearStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {
+        super(Name);
+        this.Name = Name;
+        this.LinearStiffnessByLengthX = LinearStiffnessByLengthX;
+        this.LinearStiffnessByLengthY = LinearStiffnessByLengthY;
+        this.LinearStiffnessByLengthZ = LinearStiffnessByLengthZ;
+        this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;
+        this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;
+        this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;
+        this.type = 1560379544;
+      }
+    }
+    IFC2X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;
+    class IfcBoundaryFaceCondition extends IfcBoundaryCondition {
+      constructor(Name, LinearStiffnessByAreaX, LinearStiffnessByAreaY, LinearStiffnessByAreaZ) {
+        super(Name);
+        this.Name = Name;
+        this.LinearStiffnessByAreaX = LinearStiffnessByAreaX;
+        this.LinearStiffnessByAreaY = LinearStiffnessByAreaY;
+        this.LinearStiffnessByAreaZ = LinearStiffnessByAreaZ;
+        this.type = 3367102660;
+      }
+    }
+    IFC2X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;
+    class IfcBoundaryNodeCondition extends IfcBoundaryCondition {
+      constructor(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {
+        super(Name);
+        this.Name = Name;
+        this.LinearStiffnessX = LinearStiffnessX;
+        this.LinearStiffnessY = LinearStiffnessY;
+        this.LinearStiffnessZ = LinearStiffnessZ;
+        this.RotationalStiffnessX = RotationalStiffnessX;
+        this.RotationalStiffnessY = RotationalStiffnessY;
+        this.RotationalStiffnessZ = RotationalStiffnessZ;
+        this.type = 1387855156;
+      }
+    }
+    IFC2X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;
+    class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {
+      constructor(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {
+        super(Name, LinearStiffnessX, LinearStiffnessY, LinearStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);
+        this.Name = Name;
+        this.LinearStiffnessX = LinearStiffnessX;
+        this.LinearStiffnessY = LinearStiffnessY;
+        this.LinearStiffnessZ = LinearStiffnessZ;
+        this.RotationalStiffnessX = RotationalStiffnessX;
+        this.RotationalStiffnessY = RotationalStiffnessY;
+        this.RotationalStiffnessZ = RotationalStiffnessZ;
+        this.WarpingStiffness = WarpingStiffness;
+        this.type = 2069777674;
+      }
+    }
+    IFC2X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;
+    class IfcCalendarDate extends IfcLineObject {
+      constructor(DayComponent, MonthComponent, YearComponent) {
+        super();
+        this.DayComponent = DayComponent;
+        this.MonthComponent = MonthComponent;
+        this.YearComponent = YearComponent;
+        this.type = 622194075;
+      }
+    }
+    IFC2X32.IfcCalendarDate = IfcCalendarDate;
+    class IfcClassification extends IfcLineObject {
+      constructor(Source, Edition, EditionDate, Name) {
+        super();
+        this.Source = Source;
+        this.Edition = Edition;
+        this.EditionDate = EditionDate;
+        this.Name = Name;
+        this.type = 747523909;
+      }
+    }
+    IFC2X32.IfcClassification = IfcClassification;
+    class IfcClassificationItem extends IfcLineObject {
+      constructor(Notation, ItemOf, Title) {
+        super();
+        this.Notation = Notation;
+        this.ItemOf = ItemOf;
+        this.Title = Title;
+        this.type = 1767535486;
+      }
+    }
+    IFC2X32.IfcClassificationItem = IfcClassificationItem;
+    class IfcClassificationItemRelationship extends IfcLineObject {
+      constructor(RelatingItem, RelatedItems) {
+        super();
+        this.RelatingItem = RelatingItem;
+        this.RelatedItems = RelatedItems;
+        this.type = 1098599126;
+      }
+    }
+    IFC2X32.IfcClassificationItemRelationship = IfcClassificationItemRelationship;
+    class IfcClassificationNotation extends IfcLineObject {
+      constructor(NotationFacets) {
+        super();
+        this.NotationFacets = NotationFacets;
+        this.type = 938368621;
+      }
+    }
+    IFC2X32.IfcClassificationNotation = IfcClassificationNotation;
+    class IfcClassificationNotationFacet extends IfcLineObject {
+      constructor(NotationValue) {
+        super();
+        this.NotationValue = NotationValue;
+        this.type = 3639012971;
+      }
+    }
+    IFC2X32.IfcClassificationNotationFacet = IfcClassificationNotationFacet;
+    class IfcColourSpecification extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3264961684;
+      }
+    }
+    IFC2X32.IfcColourSpecification = IfcColourSpecification;
+    class IfcConnectionGeometry extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 2859738748;
+      }
+    }
+    IFC2X32.IfcConnectionGeometry = IfcConnectionGeometry;
+    class IfcConnectionPointGeometry extends IfcConnectionGeometry {
+      constructor(PointOnRelatingElement, PointOnRelatedElement) {
+        super();
+        this.PointOnRelatingElement = PointOnRelatingElement;
+        this.PointOnRelatedElement = PointOnRelatedElement;
+        this.type = 2614616156;
+      }
+    }
+    IFC2X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry;
+    class IfcConnectionPortGeometry extends IfcConnectionGeometry {
+      constructor(LocationAtRelatingElement, LocationAtRelatedElement, ProfileOfPort) {
+        super();
+        this.LocationAtRelatingElement = LocationAtRelatingElement;
+        this.LocationAtRelatedElement = LocationAtRelatedElement;
+        this.ProfileOfPort = ProfileOfPort;
+        this.type = 4257277454;
+      }
+    }
+    IFC2X32.IfcConnectionPortGeometry = IfcConnectionPortGeometry;
+    class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {
+      constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) {
+        super();
+        this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;
+        this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;
+        this.type = 2732653382;
+      }
+    }
+    IFC2X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;
+    class IfcConstraint extends IfcLineObject {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.type = 1959218052;
+      }
+    }
+    IFC2X32.IfcConstraint = IfcConstraint;
+    class IfcConstraintAggregationRelationship extends IfcLineObject {
+      constructor(Name, Description, RelatingConstraint, RelatedConstraints, LogicalAggregator) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingConstraint = RelatingConstraint;
+        this.RelatedConstraints = RelatedConstraints;
+        this.LogicalAggregator = LogicalAggregator;
+        this.type = 1658513725;
+      }
+    }
+    IFC2X32.IfcConstraintAggregationRelationship = IfcConstraintAggregationRelationship;
+    class IfcConstraintClassificationRelationship extends IfcLineObject {
+      constructor(ClassifiedConstraint, RelatedClassifications) {
+        super();
+        this.ClassifiedConstraint = ClassifiedConstraint;
+        this.RelatedClassifications = RelatedClassifications;
+        this.type = 613356794;
+      }
+    }
+    IFC2X32.IfcConstraintClassificationRelationship = IfcConstraintClassificationRelationship;
+    class IfcConstraintRelationship extends IfcLineObject {
+      constructor(Name, Description, RelatingConstraint, RelatedConstraints) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingConstraint = RelatingConstraint;
+        this.RelatedConstraints = RelatedConstraints;
+        this.type = 347226245;
+      }
+    }
+    IFC2X32.IfcConstraintRelationship = IfcConstraintRelationship;
+    class IfcCoordinatedUniversalTimeOffset extends IfcLineObject {
+      constructor(HourOffset, MinuteOffset, Sense) {
+        super();
+        this.HourOffset = HourOffset;
+        this.MinuteOffset = MinuteOffset;
+        this.Sense = Sense;
+        this.type = 1065062679;
+      }
+    }
+    IFC2X32.IfcCoordinatedUniversalTimeOffset = IfcCoordinatedUniversalTimeOffset;
+    class IfcCostValue extends IfcAppliedValue {
+      constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, CostType, Condition) {
+        super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate);
+        this.Name = Name;
+        this.Description = Description;
+        this.AppliedValue = AppliedValue;
+        this.UnitBasis = UnitBasis;
+        this.ApplicableDate = ApplicableDate;
+        this.FixedUntilDate = FixedUntilDate;
+        this.CostType = CostType;
+        this.Condition = Condition;
+        this.type = 602808272;
+      }
+    }
+    IFC2X32.IfcCostValue = IfcCostValue;
+    class IfcCurrencyRelationship extends IfcLineObject {
+      constructor(RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {
+        super();
+        this.RelatingMonetaryUnit = RelatingMonetaryUnit;
+        this.RelatedMonetaryUnit = RelatedMonetaryUnit;
+        this.ExchangeRate = ExchangeRate;
+        this.RateDateTime = RateDateTime;
+        this.RateSource = RateSource;
+        this.type = 539742890;
+      }
+    }
+    IFC2X32.IfcCurrencyRelationship = IfcCurrencyRelationship;
+    class IfcCurveStyleFont extends IfcLineObject {
+      constructor(Name, PatternList) {
+        super();
+        this.Name = Name;
+        this.PatternList = PatternList;
+        this.type = 1105321065;
+      }
+    }
+    IFC2X32.IfcCurveStyleFont = IfcCurveStyleFont;
+    class IfcCurveStyleFontAndScaling extends IfcLineObject {
+      constructor(Name, CurveFont, CurveFontScaling) {
+        super();
+        this.Name = Name;
+        this.CurveFont = CurveFont;
+        this.CurveFontScaling = CurveFontScaling;
+        this.type = 2367409068;
+      }
+    }
+    IFC2X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;
+    class IfcCurveStyleFontPattern extends IfcLineObject {
+      constructor(VisibleSegmentLength, InvisibleSegmentLength) {
+        super();
+        this.VisibleSegmentLength = VisibleSegmentLength;
+        this.InvisibleSegmentLength = InvisibleSegmentLength;
+        this.type = 3510044353;
+      }
+    }
+    IFC2X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;
+    class IfcDateAndTime extends IfcLineObject {
+      constructor(DateComponent, TimeComponent) {
+        super();
+        this.DateComponent = DateComponent;
+        this.TimeComponent = TimeComponent;
+        this.type = 1072939445;
+      }
+    }
+    IFC2X32.IfcDateAndTime = IfcDateAndTime;
+    class IfcDerivedUnit extends IfcLineObject {
+      constructor(Elements, UnitType, UserDefinedType) {
+        super();
+        this.Elements = Elements;
+        this.UnitType = UnitType;
+        this.UserDefinedType = UserDefinedType;
+        this.type = 1765591967;
+      }
+    }
+    IFC2X32.IfcDerivedUnit = IfcDerivedUnit;
+    class IfcDerivedUnitElement extends IfcLineObject {
+      constructor(Unit, Exponent) {
+        super();
+        this.Unit = Unit;
+        this.Exponent = Exponent;
+        this.type = 1045800335;
+      }
+    }
+    IFC2X32.IfcDerivedUnitElement = IfcDerivedUnitElement;
+    class IfcDimensionalExponents extends IfcLineObject {
+      constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {
+        super();
+        this.LengthExponent = LengthExponent;
+        this.MassExponent = MassExponent;
+        this.TimeExponent = TimeExponent;
+        this.ElectricCurrentExponent = ElectricCurrentExponent;
+        this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;
+        this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;
+        this.LuminousIntensityExponent = LuminousIntensityExponent;
+        this.type = 2949456006;
+      }
+    }
+    IFC2X32.IfcDimensionalExponents = IfcDimensionalExponents;
+    class IfcDocumentElectronicFormat extends IfcLineObject {
+      constructor(FileExtension, MimeContentType, MimeSubtype) {
+        super();
+        this.FileExtension = FileExtension;
+        this.MimeContentType = MimeContentType;
+        this.MimeSubtype = MimeSubtype;
+        this.type = 1376555844;
+      }
+    }
+    IFC2X32.IfcDocumentElectronicFormat = IfcDocumentElectronicFormat;
+    class IfcDocumentInformation extends IfcLineObject {
+      constructor(DocumentId, Name, Description, DocumentReferences, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {
+        super();
+        this.DocumentId = DocumentId;
+        this.Name = Name;
+        this.Description = Description;
+        this.DocumentReferences = DocumentReferences;
+        this.Purpose = Purpose;
+        this.IntendedUse = IntendedUse;
+        this.Scope = Scope;
+        this.Revision = Revision;
+        this.DocumentOwner = DocumentOwner;
+        this.Editors = Editors;
+        this.CreationTime = CreationTime;
+        this.LastRevisionTime = LastRevisionTime;
+        this.ElectronicFormat = ElectronicFormat;
+        this.ValidFrom = ValidFrom;
+        this.ValidUntil = ValidUntil;
+        this.Confidentiality = Confidentiality;
+        this.Status = Status;
+        this.type = 1154170062;
+      }
+    }
+    IFC2X32.IfcDocumentInformation = IfcDocumentInformation;
+    class IfcDocumentInformationRelationship extends IfcLineObject {
+      constructor(RelatingDocument, RelatedDocuments, RelationshipType) {
+        super();
+        this.RelatingDocument = RelatingDocument;
+        this.RelatedDocuments = RelatedDocuments;
+        this.RelationshipType = RelationshipType;
+        this.type = 770865208;
+      }
+    }
+    IFC2X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;
+    class IfcDraughtingCalloutRelationship extends IfcLineObject {
+      constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingDraughtingCallout = RelatingDraughtingCallout;
+        this.RelatedDraughtingCallout = RelatedDraughtingCallout;
+        this.type = 3796139169;
+      }
+    }
+    IFC2X32.IfcDraughtingCalloutRelationship = IfcDraughtingCalloutRelationship;
+    class IfcEnvironmentalImpactValue extends IfcAppliedValue {
+      constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, ImpactType, Category, UserDefinedCategory) {
+        super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate);
+        this.Name = Name;
+        this.Description = Description;
+        this.AppliedValue = AppliedValue;
+        this.UnitBasis = UnitBasis;
+        this.ApplicableDate = ApplicableDate;
+        this.FixedUntilDate = FixedUntilDate;
+        this.ImpactType = ImpactType;
+        this.Category = Category;
+        this.UserDefinedCategory = UserDefinedCategory;
+        this.type = 1648886627;
+      }
+    }
+    IFC2X32.IfcEnvironmentalImpactValue = IfcEnvironmentalImpactValue;
+    class IfcExternalReference extends IfcLineObject {
+      constructor(Location, ItemReference, Name) {
+        super();
+        this.Location = Location;
+        this.ItemReference = ItemReference;
+        this.Name = Name;
+        this.type = 3200245327;
+      }
+    }
+    IFC2X32.IfcExternalReference = IfcExternalReference;
+    class IfcExternallyDefinedHatchStyle extends IfcExternalReference {
+      constructor(Location, ItemReference, Name) {
+        super(Location, ItemReference, Name);
+        this.Location = Location;
+        this.ItemReference = ItemReference;
+        this.Name = Name;
+        this.type = 2242383968;
+      }
+    }
+    IFC2X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;
+    class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {
+      constructor(Location, ItemReference, Name) {
+        super(Location, ItemReference, Name);
+        this.Location = Location;
+        this.ItemReference = ItemReference;
+        this.Name = Name;
+        this.type = 1040185647;
+      }
+    }
+    IFC2X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;
+    class IfcExternallyDefinedSymbol extends IfcExternalReference {
+      constructor(Location, ItemReference, Name) {
+        super(Location, ItemReference, Name);
+        this.Location = Location;
+        this.ItemReference = ItemReference;
+        this.Name = Name;
+        this.type = 3207319532;
+      }
+    }
+    IFC2X32.IfcExternallyDefinedSymbol = IfcExternallyDefinedSymbol;
+    class IfcExternallyDefinedTextFont extends IfcExternalReference {
+      constructor(Location, ItemReference, Name) {
+        super(Location, ItemReference, Name);
+        this.Location = Location;
+        this.ItemReference = ItemReference;
+        this.Name = Name;
+        this.type = 3548104201;
+      }
+    }
+    IFC2X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;
+    class IfcGridAxis extends IfcLineObject {
+      constructor(AxisTag, AxisCurve, SameSense) {
+        super();
+        this.AxisTag = AxisTag;
+        this.AxisCurve = AxisCurve;
+        this.SameSense = SameSense;
+        this.type = 852622518;
+      }
+    }
+    IFC2X32.IfcGridAxis = IfcGridAxis;
+    class IfcIrregularTimeSeriesValue extends IfcLineObject {
+      constructor(TimeStamp, ListValues) {
+        super();
+        this.TimeStamp = TimeStamp;
+        this.ListValues = ListValues;
+        this.type = 3020489413;
+      }
+    }
+    IFC2X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;
+    class IfcLibraryInformation extends IfcLineObject {
+      constructor(Name, Version, Publisher, VersionDate, LibraryReference) {
+        super();
+        this.Name = Name;
+        this.Version = Version;
+        this.Publisher = Publisher;
+        this.VersionDate = VersionDate;
+        this.LibraryReference = LibraryReference;
+        this.type = 2655187982;
+      }
+    }
+    IFC2X32.IfcLibraryInformation = IfcLibraryInformation;
+    class IfcLibraryReference extends IfcExternalReference {
+      constructor(Location, ItemReference, Name) {
+        super(Location, ItemReference, Name);
+        this.Location = Location;
+        this.ItemReference = ItemReference;
+        this.Name = Name;
+        this.type = 3452421091;
+      }
+    }
+    IFC2X32.IfcLibraryReference = IfcLibraryReference;
+    class IfcLightDistributionData extends IfcLineObject {
+      constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {
+        super();
+        this.MainPlaneAngle = MainPlaneAngle;
+        this.SecondaryPlaneAngle = SecondaryPlaneAngle;
+        this.LuminousIntensity = LuminousIntensity;
+        this.type = 4162380809;
+      }
+    }
+    IFC2X32.IfcLightDistributionData = IfcLightDistributionData;
+    class IfcLightIntensityDistribution extends IfcLineObject {
+      constructor(LightDistributionCurve, DistributionData) {
+        super();
+        this.LightDistributionCurve = LightDistributionCurve;
+        this.DistributionData = DistributionData;
+        this.type = 1566485204;
+      }
+    }
+    IFC2X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution;
+    class IfcLocalTime extends IfcLineObject {
+      constructor(HourComponent, MinuteComponent, SecondComponent, Zone, DaylightSavingOffset) {
+        super();
+        this.HourComponent = HourComponent;
+        this.MinuteComponent = MinuteComponent;
+        this.SecondComponent = SecondComponent;
+        this.Zone = Zone;
+        this.DaylightSavingOffset = DaylightSavingOffset;
+        this.type = 30780891;
+      }
+    }
+    IFC2X32.IfcLocalTime = IfcLocalTime;
+    class IfcMaterial extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 1838606355;
+      }
+    }
+    IFC2X32.IfcMaterial = IfcMaterial;
+    class IfcMaterialClassificationRelationship extends IfcLineObject {
+      constructor(MaterialClassifications, ClassifiedMaterial) {
+        super();
+        this.MaterialClassifications = MaterialClassifications;
+        this.ClassifiedMaterial = ClassifiedMaterial;
+        this.type = 1847130766;
+      }
+    }
+    IFC2X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;
+    class IfcMaterialLayer extends IfcLineObject {
+      constructor(Material, LayerThickness, IsVentilated) {
+        super();
+        this.Material = Material;
+        this.LayerThickness = LayerThickness;
+        this.IsVentilated = IsVentilated;
+        this.type = 248100487;
+      }
+    }
+    IFC2X32.IfcMaterialLayer = IfcMaterialLayer;
+    class IfcMaterialLayerSet extends IfcLineObject {
+      constructor(MaterialLayers, LayerSetName) {
+        super();
+        this.MaterialLayers = MaterialLayers;
+        this.LayerSetName = LayerSetName;
+        this.type = 3303938423;
+      }
+    }
+    IFC2X32.IfcMaterialLayerSet = IfcMaterialLayerSet;
+    class IfcMaterialLayerSetUsage extends IfcLineObject {
+      constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine) {
+        super();
+        this.ForLayerSet = ForLayerSet;
+        this.LayerSetDirection = LayerSetDirection;
+        this.DirectionSense = DirectionSense;
+        this.OffsetFromReferenceLine = OffsetFromReferenceLine;
+        this.type = 1303795690;
+      }
+    }
+    IFC2X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;
+    class IfcMaterialList extends IfcLineObject {
+      constructor(Materials) {
+        super();
+        this.Materials = Materials;
+        this.type = 2199411900;
+      }
+    }
+    IFC2X32.IfcMaterialList = IfcMaterialList;
+    class IfcMaterialProperties extends IfcLineObject {
+      constructor(Material) {
+        super();
+        this.Material = Material;
+        this.type = 3265635763;
+      }
+    }
+    IFC2X32.IfcMaterialProperties = IfcMaterialProperties;
+    class IfcMeasureWithUnit extends IfcLineObject {
+      constructor(ValueComponent, UnitComponent) {
+        super();
+        this.ValueComponent = ValueComponent;
+        this.UnitComponent = UnitComponent;
+        this.type = 2597039031;
+      }
+    }
+    IFC2X32.IfcMeasureWithUnit = IfcMeasureWithUnit;
+    class IfcMechanicalMaterialProperties extends IfcMaterialProperties {
+      constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient) {
+        super(Material);
+        this.Material = Material;
+        this.DynamicViscosity = DynamicViscosity;
+        this.YoungModulus = YoungModulus;
+        this.ShearModulus = ShearModulus;
+        this.PoissonRatio = PoissonRatio;
+        this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;
+        this.type = 4256014907;
+      }
+    }
+    IFC2X32.IfcMechanicalMaterialProperties = IfcMechanicalMaterialProperties;
+    class IfcMechanicalSteelMaterialProperties extends IfcMechanicalMaterialProperties {
+      constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, YieldStress, UltimateStress, UltimateStrain, HardeningModule, ProportionalStress, PlasticStrain, Relaxations) {
+        super(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient);
+        this.Material = Material;
+        this.DynamicViscosity = DynamicViscosity;
+        this.YoungModulus = YoungModulus;
+        this.ShearModulus = ShearModulus;
+        this.PoissonRatio = PoissonRatio;
+        this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;
+        this.YieldStress = YieldStress;
+        this.UltimateStress = UltimateStress;
+        this.UltimateStrain = UltimateStrain;
+        this.HardeningModule = HardeningModule;
+        this.ProportionalStress = ProportionalStress;
+        this.PlasticStrain = PlasticStrain;
+        this.Relaxations = Relaxations;
+        this.type = 677618848;
+      }
+    }
+    IFC2X32.IfcMechanicalSteelMaterialProperties = IfcMechanicalSteelMaterialProperties;
+    class IfcMetric extends IfcConstraint {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue) {
+        super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.Benchmark = Benchmark;
+        this.ValueSource = ValueSource;
+        this.DataValue = DataValue;
+        this.type = 3368373690;
+      }
+    }
+    IFC2X32.IfcMetric = IfcMetric;
+    class IfcMonetaryUnit extends IfcLineObject {
+      constructor(Currency) {
+        super();
+        this.Currency = Currency;
+        this.type = 2706619895;
+      }
+    }
+    IFC2X32.IfcMonetaryUnit = IfcMonetaryUnit;
+    class IfcNamedUnit extends IfcLineObject {
+      constructor(Dimensions, UnitType) {
+        super();
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.type = 1918398963;
+      }
+    }
+    IFC2X32.IfcNamedUnit = IfcNamedUnit;
+    class IfcObjectPlacement extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 3701648758;
+      }
+    }
+    IFC2X32.IfcObjectPlacement = IfcObjectPlacement;
+    class IfcObjective extends IfcConstraint {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, ResultValues, ObjectiveQualifier, UserDefinedQualifier) {
+        super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.BenchmarkValues = BenchmarkValues;
+        this.ResultValues = ResultValues;
+        this.ObjectiveQualifier = ObjectiveQualifier;
+        this.UserDefinedQualifier = UserDefinedQualifier;
+        this.type = 2251480897;
+      }
+    }
+    IFC2X32.IfcObjective = IfcObjective;
+    class IfcOpticalMaterialProperties extends IfcMaterialProperties {
+      constructor(Material, VisibleTransmittance, SolarTransmittance, ThermalIrTransmittance, ThermalIrEmissivityBack, ThermalIrEmissivityFront, VisibleReflectanceBack, VisibleReflectanceFront, SolarReflectanceFront, SolarReflectanceBack) {
+        super(Material);
+        this.Material = Material;
+        this.VisibleTransmittance = VisibleTransmittance;
+        this.SolarTransmittance = SolarTransmittance;
+        this.ThermalIrTransmittance = ThermalIrTransmittance;
+        this.ThermalIrEmissivityBack = ThermalIrEmissivityBack;
+        this.ThermalIrEmissivityFront = ThermalIrEmissivityFront;
+        this.VisibleReflectanceBack = VisibleReflectanceBack;
+        this.VisibleReflectanceFront = VisibleReflectanceFront;
+        this.SolarReflectanceFront = SolarReflectanceFront;
+        this.SolarReflectanceBack = SolarReflectanceBack;
+        this.type = 1227763645;
+      }
+    }
+    IFC2X32.IfcOpticalMaterialProperties = IfcOpticalMaterialProperties;
+    class IfcOrganization extends IfcLineObject {
+      constructor(Id, Name, Description, Roles, Addresses) {
+        super();
+        this.Id = Id;
+        this.Name = Name;
+        this.Description = Description;
+        this.Roles = Roles;
+        this.Addresses = Addresses;
+        this.type = 4251960020;
+      }
+    }
+    IFC2X32.IfcOrganization = IfcOrganization;
+    class IfcOrganizationRelationship extends IfcLineObject {
+      constructor(Name, Description, RelatingOrganization, RelatedOrganizations) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingOrganization = RelatingOrganization;
+        this.RelatedOrganizations = RelatedOrganizations;
+        this.type = 1411181986;
+      }
+    }
+    IFC2X32.IfcOrganizationRelationship = IfcOrganizationRelationship;
+    class IfcOwnerHistory extends IfcLineObject {
+      constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {
+        super();
+        this.OwningUser = OwningUser;
+        this.OwningApplication = OwningApplication;
+        this.State = State;
+        this.ChangeAction = ChangeAction;
+        this.LastModifiedDate = LastModifiedDate;
+        this.LastModifyingUser = LastModifyingUser;
+        this.LastModifyingApplication = LastModifyingApplication;
+        this.CreationDate = CreationDate;
+        this.type = 1207048766;
+      }
+    }
+    IFC2X32.IfcOwnerHistory = IfcOwnerHistory;
+    class IfcPerson extends IfcLineObject {
+      constructor(Id, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {
+        super();
+        this.Id = Id;
+        this.FamilyName = FamilyName;
+        this.GivenName = GivenName;
+        this.MiddleNames = MiddleNames;
+        this.PrefixTitles = PrefixTitles;
+        this.SuffixTitles = SuffixTitles;
+        this.Roles = Roles;
+        this.Addresses = Addresses;
+        this.type = 2077209135;
+      }
+    }
+    IFC2X32.IfcPerson = IfcPerson;
+    class IfcPersonAndOrganization extends IfcLineObject {
+      constructor(ThePerson, TheOrganization, Roles) {
+        super();
+        this.ThePerson = ThePerson;
+        this.TheOrganization = TheOrganization;
+        this.Roles = Roles;
+        this.type = 101040310;
+      }
+    }
+    IFC2X32.IfcPersonAndOrganization = IfcPersonAndOrganization;
+    class IfcPhysicalQuantity extends IfcLineObject {
+      constructor(Name, Description) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2483315170;
+      }
+    }
+    IFC2X32.IfcPhysicalQuantity = IfcPhysicalQuantity;
+    class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {
+      constructor(Name, Description, Unit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.type = 2226359599;
+      }
+    }
+    IFC2X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;
+    class IfcPostalAddress extends IfcAddress {
+      constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {
+        super(Purpose, Description, UserDefinedPurpose);
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.InternalLocation = InternalLocation;
+        this.AddressLines = AddressLines;
+        this.PostalBox = PostalBox;
+        this.Town = Town;
+        this.Region = Region;
+        this.PostalCode = PostalCode;
+        this.Country = Country;
+        this.type = 3355820592;
+      }
+    }
+    IFC2X32.IfcPostalAddress = IfcPostalAddress;
+    class IfcPreDefinedItem extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3727388367;
+      }
+    }
+    IFC2X32.IfcPreDefinedItem = IfcPreDefinedItem;
+    class IfcPreDefinedSymbol extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 990879717;
+      }
+    }
+    IFC2X32.IfcPreDefinedSymbol = IfcPreDefinedSymbol;
+    class IfcPreDefinedTerminatorSymbol extends IfcPreDefinedSymbol {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 3213052703;
+      }
+    }
+    IFC2X32.IfcPreDefinedTerminatorSymbol = IfcPreDefinedTerminatorSymbol;
+    class IfcPreDefinedTextFont extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 1775413392;
+      }
+    }
+    IFC2X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont;
+    class IfcPresentationLayerAssignment extends IfcLineObject {
+      constructor(Name, Description, AssignedItems, Identifier) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.AssignedItems = AssignedItems;
+        this.Identifier = Identifier;
+        this.type = 2022622350;
+      }
+    }
+    IFC2X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;
+    class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {
+      constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {
+        super(Name, Description, AssignedItems, Identifier);
+        this.Name = Name;
+        this.Description = Description;
+        this.AssignedItems = AssignedItems;
+        this.Identifier = Identifier;
+        this.LayerOn = LayerOn;
+        this.LayerFrozen = LayerFrozen;
+        this.LayerBlocked = LayerBlocked;
+        this.LayerStyles = LayerStyles;
+        this.type = 1304840413;
+      }
+    }
+    IFC2X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;
+    class IfcPresentationStyle extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3119450353;
+      }
+    }
+    IFC2X32.IfcPresentationStyle = IfcPresentationStyle;
+    class IfcPresentationStyleAssignment extends IfcLineObject {
+      constructor(Styles) {
+        super();
+        this.Styles = Styles;
+        this.type = 2417041796;
+      }
+    }
+    IFC2X32.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment;
+    class IfcProductRepresentation extends IfcLineObject {
+      constructor(Name, Description, Representations) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.type = 2095639259;
+      }
+    }
+    IFC2X32.IfcProductRepresentation = IfcProductRepresentation;
+    class IfcProductsOfCombustionProperties extends IfcMaterialProperties {
+      constructor(Material, SpecificHeatCapacity, N20Content, COContent, CO2Content) {
+        super(Material);
+        this.Material = Material;
+        this.SpecificHeatCapacity = SpecificHeatCapacity;
+        this.N20Content = N20Content;
+        this.COContent = COContent;
+        this.CO2Content = CO2Content;
+        this.type = 2267347899;
+      }
+    }
+    IFC2X32.IfcProductsOfCombustionProperties = IfcProductsOfCombustionProperties;
+    class IfcProfileDef extends IfcLineObject {
+      constructor(ProfileType, ProfileName) {
+        super();
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.type = 3958567839;
+      }
+    }
+    IFC2X32.IfcProfileDef = IfcProfileDef;
+    class IfcProfileProperties extends IfcLineObject {
+      constructor(ProfileName, ProfileDefinition) {
+        super();
+        this.ProfileName = ProfileName;
+        this.ProfileDefinition = ProfileDefinition;
+        this.type = 2802850158;
+      }
+    }
+    IFC2X32.IfcProfileProperties = IfcProfileProperties;
+    class IfcProperty extends IfcLineObject {
+      constructor(Name, Description) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2598011224;
+      }
+    }
+    IFC2X32.IfcProperty = IfcProperty;
+    class IfcPropertyConstraintRelationship extends IfcLineObject {
+      constructor(RelatingConstraint, RelatedProperties, Name, Description) {
+        super();
+        this.RelatingConstraint = RelatingConstraint;
+        this.RelatedProperties = RelatedProperties;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3896028662;
+      }
+    }
+    IFC2X32.IfcPropertyConstraintRelationship = IfcPropertyConstraintRelationship;
+    class IfcPropertyDependencyRelationship extends IfcLineObject {
+      constructor(DependingProperty, DependantProperty, Name, Description, Expression) {
+        super();
+        this.DependingProperty = DependingProperty;
+        this.DependantProperty = DependantProperty;
+        this.Name = Name;
+        this.Description = Description;
+        this.Expression = Expression;
+        this.type = 148025276;
+      }
+    }
+    IFC2X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;
+    class IfcPropertyEnumeration extends IfcLineObject {
+      constructor(Name, EnumerationValues, Unit) {
+        super();
+        this.Name = Name;
+        this.EnumerationValues = EnumerationValues;
+        this.Unit = Unit;
+        this.type = 3710013099;
+      }
+    }
+    IFC2X32.IfcPropertyEnumeration = IfcPropertyEnumeration;
+    class IfcQuantityArea extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, AreaValue) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.AreaValue = AreaValue;
+        this.type = 2044713172;
+      }
+    }
+    IFC2X32.IfcQuantityArea = IfcQuantityArea;
+    class IfcQuantityCount extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, CountValue) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.CountValue = CountValue;
+        this.type = 2093928680;
+      }
+    }
+    IFC2X32.IfcQuantityCount = IfcQuantityCount;
+    class IfcQuantityLength extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, LengthValue) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.LengthValue = LengthValue;
+        this.type = 931644368;
+      }
+    }
+    IFC2X32.IfcQuantityLength = IfcQuantityLength;
+    class IfcQuantityTime extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, TimeValue) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.TimeValue = TimeValue;
+        this.type = 3252649465;
+      }
+    }
+    IFC2X32.IfcQuantityTime = IfcQuantityTime;
+    class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, VolumeValue) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.VolumeValue = VolumeValue;
+        this.type = 2405470396;
+      }
+    }
+    IFC2X32.IfcQuantityVolume = IfcQuantityVolume;
+    class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, WeightValue) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.WeightValue = WeightValue;
+        this.type = 825690147;
+      }
+    }
+    IFC2X32.IfcQuantityWeight = IfcQuantityWeight;
+    class IfcReferencesValueDocument extends IfcLineObject {
+      constructor(ReferencedDocument, ReferencingValues, Name, Description) {
+        super();
+        this.ReferencedDocument = ReferencedDocument;
+        this.ReferencingValues = ReferencingValues;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2692823254;
+      }
+    }
+    IFC2X32.IfcReferencesValueDocument = IfcReferencesValueDocument;
+    class IfcReinforcementBarProperties extends IfcLineObject {
+      constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {
+        super();
+        this.TotalCrossSectionArea = TotalCrossSectionArea;
+        this.SteelGrade = SteelGrade;
+        this.BarSurface = BarSurface;
+        this.EffectiveDepth = EffectiveDepth;
+        this.NominalBarDiameter = NominalBarDiameter;
+        this.BarCount = BarCount;
+        this.type = 1580146022;
+      }
+    }
+    IFC2X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties;
+    class IfcRelaxation extends IfcLineObject {
+      constructor(RelaxationValue, InitialStress) {
+        super();
+        this.RelaxationValue = RelaxationValue;
+        this.InitialStress = InitialStress;
+        this.type = 1222501353;
+      }
+    }
+    IFC2X32.IfcRelaxation = IfcRelaxation;
+    class IfcRepresentation extends IfcLineObject {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super();
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 1076942058;
+      }
+    }
+    IFC2X32.IfcRepresentation = IfcRepresentation;
+    class IfcRepresentationContext extends IfcLineObject {
+      constructor(ContextIdentifier, ContextType) {
+        super();
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.type = 3377609919;
+      }
+    }
+    IFC2X32.IfcRepresentationContext = IfcRepresentationContext;
+    class IfcRepresentationItem extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 3008791417;
+      }
+    }
+    IFC2X32.IfcRepresentationItem = IfcRepresentationItem;
+    class IfcRepresentationMap extends IfcLineObject {
+      constructor(MappingOrigin, MappedRepresentation) {
+        super();
+        this.MappingOrigin = MappingOrigin;
+        this.MappedRepresentation = MappedRepresentation;
+        this.type = 1660063152;
+      }
+    }
+    IFC2X32.IfcRepresentationMap = IfcRepresentationMap;
+    class IfcRibPlateProfileProperties extends IfcProfileProperties {
+      constructor(ProfileName, ProfileDefinition, Thickness, RibHeight, RibWidth, RibSpacing, Direction) {
+        super(ProfileName, ProfileDefinition);
+        this.ProfileName = ProfileName;
+        this.ProfileDefinition = ProfileDefinition;
+        this.Thickness = Thickness;
+        this.RibHeight = RibHeight;
+        this.RibWidth = RibWidth;
+        this.RibSpacing = RibSpacing;
+        this.Direction = Direction;
+        this.type = 3679540991;
+      }
+    }
+    IFC2X32.IfcRibPlateProfileProperties = IfcRibPlateProfileProperties;
+    class IfcRoot extends IfcLineObject {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super();
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2341007311;
+      }
+    }
+    IFC2X32.IfcRoot = IfcRoot;
+    class IfcSIUnit extends IfcNamedUnit {
+      constructor(UnitType, Prefix, Name) {
+        super(new Handle(0), UnitType);
+        this.UnitType = UnitType;
+        this.Prefix = Prefix;
+        this.Name = Name;
+        this.type = 448429030;
+      }
+    }
+    IFC2X32.IfcSIUnit = IfcSIUnit;
+    class IfcSectionProperties extends IfcLineObject {
+      constructor(SectionType, StartProfile, EndProfile) {
+        super();
+        this.SectionType = SectionType;
+        this.StartProfile = StartProfile;
+        this.EndProfile = EndProfile;
+        this.type = 2042790032;
+      }
+    }
+    IFC2X32.IfcSectionProperties = IfcSectionProperties;
+    class IfcSectionReinforcementProperties extends IfcLineObject {
+      constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {
+        super();
+        this.LongitudinalStartPosition = LongitudinalStartPosition;
+        this.LongitudinalEndPosition = LongitudinalEndPosition;
+        this.TransversePosition = TransversePosition;
+        this.ReinforcementRole = ReinforcementRole;
+        this.SectionDefinition = SectionDefinition;
+        this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;
+        this.type = 4165799628;
+      }
+    }
+    IFC2X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;
+    class IfcShapeAspect extends IfcLineObject {
+      constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {
+        super();
+        this.ShapeRepresentations = ShapeRepresentations;
+        this.Name = Name;
+        this.Description = Description;
+        this.ProductDefinitional = ProductDefinitional;
+        this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;
+        this.type = 867548509;
+      }
+    }
+    IFC2X32.IfcShapeAspect = IfcShapeAspect;
+    class IfcShapeModel extends IfcRepresentation {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 3982875396;
+      }
+    }
+    IFC2X32.IfcShapeModel = IfcShapeModel;
+    class IfcShapeRepresentation extends IfcShapeModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 4240577450;
+      }
+    }
+    IFC2X32.IfcShapeRepresentation = IfcShapeRepresentation;
+    class IfcSimpleProperty extends IfcProperty {
+      constructor(Name, Description) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3692461612;
+      }
+    }
+    IFC2X32.IfcSimpleProperty = IfcSimpleProperty;
+    class IfcStructuralConnectionCondition extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 2273995522;
+      }
+    }
+    IFC2X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;
+    class IfcStructuralLoad extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 2162789131;
+      }
+    }
+    IFC2X32.IfcStructuralLoad = IfcStructuralLoad;
+    class IfcStructuralLoadStatic extends IfcStructuralLoad {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 2525727697;
+      }
+    }
+    IFC2X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic;
+    class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {
+      constructor(Name, DeltaT_Constant, DeltaT_Y, DeltaT_Z) {
+        super(Name);
+        this.Name = Name;
+        this.DeltaT_Constant = DeltaT_Constant;
+        this.DeltaT_Y = DeltaT_Y;
+        this.DeltaT_Z = DeltaT_Z;
+        this.type = 3408363356;
+      }
+    }
+    IFC2X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;
+    class IfcStyleModel extends IfcRepresentation {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 2830218821;
+      }
+    }
+    IFC2X32.IfcStyleModel = IfcStyleModel;
+    class IfcStyledItem extends IfcRepresentationItem {
+      constructor(Item, Styles, Name) {
+        super();
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 3958052878;
+      }
+    }
+    IFC2X32.IfcStyledItem = IfcStyledItem;
+    class IfcStyledRepresentation extends IfcStyleModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 3049322572;
+      }
+    }
+    IFC2X32.IfcStyledRepresentation = IfcStyledRepresentation;
+    class IfcSurfaceStyle extends IfcPresentationStyle {
+      constructor(Name, Side, Styles) {
+        super(Name);
+        this.Name = Name;
+        this.Side = Side;
+        this.Styles = Styles;
+        this.type = 1300840506;
+      }
+    }
+    IFC2X32.IfcSurfaceStyle = IfcSurfaceStyle;
+    class IfcSurfaceStyleLighting extends IfcLineObject {
+      constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {
+        super();
+        this.DiffuseTransmissionColour = DiffuseTransmissionColour;
+        this.DiffuseReflectionColour = DiffuseReflectionColour;
+        this.TransmissionColour = TransmissionColour;
+        this.ReflectanceColour = ReflectanceColour;
+        this.type = 3303107099;
+      }
+    }
+    IFC2X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;
+    class IfcSurfaceStyleRefraction extends IfcLineObject {
+      constructor(RefractionIndex, DispersionFactor) {
+        super();
+        this.RefractionIndex = RefractionIndex;
+        this.DispersionFactor = DispersionFactor;
+        this.type = 1607154358;
+      }
+    }
+    IFC2X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;
+    class IfcSurfaceStyleShading extends IfcLineObject {
+      constructor(SurfaceColour) {
+        super();
+        this.SurfaceColour = SurfaceColour;
+        this.type = 846575682;
+      }
+    }
+    IFC2X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading;
+    class IfcSurfaceStyleWithTextures extends IfcLineObject {
+      constructor(Textures) {
+        super();
+        this.Textures = Textures;
+        this.type = 1351298697;
+      }
+    }
+    IFC2X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;
+    class IfcSurfaceTexture extends IfcLineObject {
+      constructor(RepeatS, RepeatT, TextureType, TextureTransform) {
+        super();
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.TextureType = TextureType;
+        this.TextureTransform = TextureTransform;
+        this.type = 626085974;
+      }
+    }
+    IFC2X32.IfcSurfaceTexture = IfcSurfaceTexture;
+    class IfcSymbolStyle extends IfcPresentationStyle {
+      constructor(Name, StyleOfSymbol) {
+        super(Name);
+        this.Name = Name;
+        this.StyleOfSymbol = StyleOfSymbol;
+        this.type = 1290481447;
+      }
+    }
+    IFC2X32.IfcSymbolStyle = IfcSymbolStyle;
+    class IfcTable extends IfcLineObject {
+      constructor(Name, Rows) {
+        super();
+        this.Name = Name;
+        this.Rows = Rows;
+        this.type = 985171141;
+      }
+    }
+    IFC2X32.IfcTable = IfcTable;
+    class IfcTableRow extends IfcLineObject {
+      constructor(RowCells, IsHeading) {
+        super();
+        this.RowCells = RowCells;
+        this.IsHeading = IsHeading;
+        this.type = 531007025;
+      }
+    }
+    IFC2X32.IfcTableRow = IfcTableRow;
+    class IfcTelecomAddress extends IfcAddress {
+      constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL) {
+        super(Purpose, Description, UserDefinedPurpose);
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.TelephoneNumbers = TelephoneNumbers;
+        this.FacsimileNumbers = FacsimileNumbers;
+        this.PagerNumber = PagerNumber;
+        this.ElectronicMailAddresses = ElectronicMailAddresses;
+        this.WWWHomePageURL = WWWHomePageURL;
+        this.type = 912023232;
+      }
+    }
+    IFC2X32.IfcTelecomAddress = IfcTelecomAddress;
+    class IfcTextStyle extends IfcPresentationStyle {
+      constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle) {
+        super(Name);
+        this.Name = Name;
+        this.TextCharacterAppearance = TextCharacterAppearance;
+        this.TextStyle = TextStyle;
+        this.TextFontStyle = TextFontStyle;
+        this.type = 1447204868;
+      }
+    }
+    IFC2X32.IfcTextStyle = IfcTextStyle;
+    class IfcTextStyleFontModel extends IfcPreDefinedTextFont {
+      constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {
+        super(Name);
+        this.Name = Name;
+        this.FontFamily = FontFamily;
+        this.FontStyle = FontStyle;
+        this.FontVariant = FontVariant;
+        this.FontWeight = FontWeight;
+        this.FontSize = FontSize;
+        this.type = 1983826977;
+      }
+    }
+    IFC2X32.IfcTextStyleFontModel = IfcTextStyleFontModel;
+    class IfcTextStyleForDefinedFont extends IfcLineObject {
+      constructor(Colour, BackgroundColour) {
+        super();
+        this.Colour = Colour;
+        this.BackgroundColour = BackgroundColour;
+        this.type = 2636378356;
+      }
+    }
+    IFC2X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;
+    class IfcTextStyleTextModel extends IfcLineObject {
+      constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {
+        super();
+        this.TextIndent = TextIndent;
+        this.TextAlign = TextAlign;
+        this.TextDecoration = TextDecoration;
+        this.LetterSpacing = LetterSpacing;
+        this.WordSpacing = WordSpacing;
+        this.TextTransform = TextTransform;
+        this.LineHeight = LineHeight;
+        this.type = 1640371178;
+      }
+    }
+    IFC2X32.IfcTextStyleTextModel = IfcTextStyleTextModel;
+    class IfcTextStyleWithBoxCharacteristics extends IfcLineObject {
+      constructor(BoxHeight, BoxWidth, BoxSlantAngle, BoxRotateAngle, CharacterSpacing) {
+        super();
+        this.BoxHeight = BoxHeight;
+        this.BoxWidth = BoxWidth;
+        this.BoxSlantAngle = BoxSlantAngle;
+        this.BoxRotateAngle = BoxRotateAngle;
+        this.CharacterSpacing = CharacterSpacing;
+        this.type = 1484833681;
+      }
+    }
+    IFC2X32.IfcTextStyleWithBoxCharacteristics = IfcTextStyleWithBoxCharacteristics;
+    class IfcTextureCoordinate extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 280115917;
+      }
+    }
+    IFC2X32.IfcTextureCoordinate = IfcTextureCoordinate;
+    class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {
+      constructor(Mode, Parameter) {
+        super();
+        this.Mode = Mode;
+        this.Parameter = Parameter;
+        this.type = 1742049831;
+      }
+    }
+    IFC2X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;
+    class IfcTextureMap extends IfcTextureCoordinate {
+      constructor(TextureMaps) {
+        super();
+        this.TextureMaps = TextureMaps;
+        this.type = 2552916305;
+      }
+    }
+    IFC2X32.IfcTextureMap = IfcTextureMap;
+    class IfcTextureVertex extends IfcLineObject {
+      constructor(Coordinates) {
+        super();
+        this.Coordinates = Coordinates;
+        this.type = 1210645708;
+      }
+    }
+    IFC2X32.IfcTextureVertex = IfcTextureVertex;
+    class IfcThermalMaterialProperties extends IfcMaterialProperties {
+      constructor(Material, SpecificHeatCapacity, BoilingPoint, FreezingPoint, ThermalConductivity) {
+        super(Material);
+        this.Material = Material;
+        this.SpecificHeatCapacity = SpecificHeatCapacity;
+        this.BoilingPoint = BoilingPoint;
+        this.FreezingPoint = FreezingPoint;
+        this.ThermalConductivity = ThermalConductivity;
+        this.type = 3317419933;
+      }
+    }
+    IFC2X32.IfcThermalMaterialProperties = IfcThermalMaterialProperties;
+    class IfcTimeSeries extends IfcLineObject {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.type = 3101149627;
+      }
+    }
+    IFC2X32.IfcTimeSeries = IfcTimeSeries;
+    class IfcTimeSeriesReferenceRelationship extends IfcLineObject {
+      constructor(ReferencedTimeSeries, TimeSeriesReferences) {
+        super();
+        this.ReferencedTimeSeries = ReferencedTimeSeries;
+        this.TimeSeriesReferences = TimeSeriesReferences;
+        this.type = 1718945513;
+      }
+    }
+    IFC2X32.IfcTimeSeriesReferenceRelationship = IfcTimeSeriesReferenceRelationship;
+    class IfcTimeSeriesValue extends IfcLineObject {
+      constructor(ListValues) {
+        super();
+        this.ListValues = ListValues;
+        this.type = 581633288;
+      }
+    }
+    IFC2X32.IfcTimeSeriesValue = IfcTimeSeriesValue;
+    class IfcTopologicalRepresentationItem extends IfcRepresentationItem {
+      constructor() {
+        super();
+        this.type = 1377556343;
+      }
+    }
+    IFC2X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;
+    class IfcTopologyRepresentation extends IfcShapeModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 1735638870;
+      }
+    }
+    IFC2X32.IfcTopologyRepresentation = IfcTopologyRepresentation;
+    class IfcUnitAssignment extends IfcLineObject {
+      constructor(Units) {
+        super();
+        this.Units = Units;
+        this.type = 180925521;
+      }
+    }
+    IFC2X32.IfcUnitAssignment = IfcUnitAssignment;
+    class IfcVertex extends IfcTopologicalRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2799835756;
+      }
+    }
+    IFC2X32.IfcVertex = IfcVertex;
+    class IfcVertexBasedTextureMap extends IfcLineObject {
+      constructor(TextureVertices, TexturePoints) {
+        super();
+        this.TextureVertices = TextureVertices;
+        this.TexturePoints = TexturePoints;
+        this.type = 3304826586;
+      }
+    }
+    IFC2X32.IfcVertexBasedTextureMap = IfcVertexBasedTextureMap;
+    class IfcVertexPoint extends IfcVertex {
+      constructor(VertexGeometry) {
+        super();
+        this.VertexGeometry = VertexGeometry;
+        this.type = 1907098498;
+      }
+    }
+    IFC2X32.IfcVertexPoint = IfcVertexPoint;
+    class IfcVirtualGridIntersection extends IfcLineObject {
+      constructor(IntersectingAxes, OffsetDistances) {
+        super();
+        this.IntersectingAxes = IntersectingAxes;
+        this.OffsetDistances = OffsetDistances;
+        this.type = 891718957;
+      }
+    }
+    IFC2X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection;
+    class IfcWaterProperties extends IfcMaterialProperties {
+      constructor(Material, IsPotable, Hardness, AlkalinityConcentration, AcidityConcentration, ImpuritiesContent, PHLevel, DissolvedSolidsContent) {
+        super(Material);
+        this.Material = Material;
+        this.IsPotable = IsPotable;
+        this.Hardness = Hardness;
+        this.AlkalinityConcentration = AlkalinityConcentration;
+        this.AcidityConcentration = AcidityConcentration;
+        this.ImpuritiesContent = ImpuritiesContent;
+        this.PHLevel = PHLevel;
+        this.DissolvedSolidsContent = DissolvedSolidsContent;
+        this.type = 1065908215;
+      }
+    }
+    IFC2X32.IfcWaterProperties = IfcWaterProperties;
+    class IfcAnnotationOccurrence extends IfcStyledItem {
+      constructor(Item, Styles, Name) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 2442683028;
+      }
+    }
+    IFC2X32.IfcAnnotationOccurrence = IfcAnnotationOccurrence;
+    class IfcAnnotationSurfaceOccurrence extends IfcAnnotationOccurrence {
+      constructor(Item, Styles, Name) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 962685235;
+      }
+    }
+    IFC2X32.IfcAnnotationSurfaceOccurrence = IfcAnnotationSurfaceOccurrence;
+    class IfcAnnotationSymbolOccurrence extends IfcAnnotationOccurrence {
+      constructor(Item, Styles, Name) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 3612888222;
+      }
+    }
+    IFC2X32.IfcAnnotationSymbolOccurrence = IfcAnnotationSymbolOccurrence;
+    class IfcAnnotationTextOccurrence extends IfcAnnotationOccurrence {
+      constructor(Item, Styles, Name) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 2297822566;
+      }
+    }
+    IFC2X32.IfcAnnotationTextOccurrence = IfcAnnotationTextOccurrence;
+    class IfcArbitraryClosedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, OuterCurve) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.OuterCurve = OuterCurve;
+        this.type = 3798115385;
+      }
+    }
+    IFC2X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;
+    class IfcArbitraryOpenProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Curve) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Curve = Curve;
+        this.type = 1310608509;
+      }
+    }
+    IFC2X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;
+    class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {
+      constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) {
+        super(ProfileType, ProfileName, OuterCurve);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.OuterCurve = OuterCurve;
+        this.InnerCurves = InnerCurves;
+        this.type = 2705031697;
+      }
+    }
+    IFC2X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;
+    class IfcBlobTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, TextureType, TextureTransform, RasterFormat, RasterCode) {
+        super(RepeatS, RepeatT, TextureType, TextureTransform);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.TextureType = TextureType;
+        this.TextureTransform = TextureTransform;
+        this.RasterFormat = RasterFormat;
+        this.RasterCode = RasterCode;
+        this.type = 616511568;
+      }
+    }
+    IFC2X32.IfcBlobTexture = IfcBlobTexture;
+    class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {
+      constructor(ProfileType, ProfileName, Curve, Thickness) {
+        super(ProfileType, ProfileName, Curve);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Curve = Curve;
+        this.Thickness = Thickness;
+        this.type = 3150382593;
+      }
+    }
+    IFC2X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef;
+    class IfcClassificationReference extends IfcExternalReference {
+      constructor(Location, ItemReference, Name, ReferencedSource) {
+        super(Location, ItemReference, Name);
+        this.Location = Location;
+        this.ItemReference = ItemReference;
+        this.Name = Name;
+        this.ReferencedSource = ReferencedSource;
+        this.type = 647927063;
+      }
+    }
+    IFC2X32.IfcClassificationReference = IfcClassificationReference;
+    class IfcColourRgb extends IfcColourSpecification {
+      constructor(Name, Red, Green, Blue) {
+        super(Name);
+        this.Name = Name;
+        this.Red = Red;
+        this.Green = Green;
+        this.Blue = Blue;
+        this.type = 776857604;
+      }
+    }
+    IFC2X32.IfcColourRgb = IfcColourRgb;
+    class IfcComplexProperty extends IfcProperty {
+      constructor(Name, Description, UsageName, HasProperties) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.UsageName = UsageName;
+        this.HasProperties = HasProperties;
+        this.type = 2542286263;
+      }
+    }
+    IFC2X32.IfcComplexProperty = IfcComplexProperty;
+    class IfcCompositeProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Profiles, Label) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Profiles = Profiles;
+        this.Label = Label;
+        this.type = 1485152156;
+      }
+    }
+    IFC2X32.IfcCompositeProfileDef = IfcCompositeProfileDef;
+    class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {
+      constructor(CfsFaces) {
+        super();
+        this.CfsFaces = CfsFaces;
+        this.type = 370225590;
+      }
+    }
+    IFC2X32.IfcConnectedFaceSet = IfcConnectedFaceSet;
+    class IfcConnectionCurveGeometry extends IfcConnectionGeometry {
+      constructor(CurveOnRelatingElement, CurveOnRelatedElement) {
+        super();
+        this.CurveOnRelatingElement = CurveOnRelatingElement;
+        this.CurveOnRelatedElement = CurveOnRelatedElement;
+        this.type = 1981873012;
+      }
+    }
+    IFC2X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;
+    class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {
+      constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {
+        super(PointOnRelatingElement, PointOnRelatedElement);
+        this.PointOnRelatingElement = PointOnRelatingElement;
+        this.PointOnRelatedElement = PointOnRelatedElement;
+        this.EccentricityInX = EccentricityInX;
+        this.EccentricityInY = EccentricityInY;
+        this.EccentricityInZ = EccentricityInZ;
+        this.type = 45288368;
+      }
+    }
+    IFC2X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;
+    class IfcContextDependentUnit extends IfcNamedUnit {
+      constructor(Dimensions, UnitType, Name) {
+        super(Dimensions, UnitType);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Name = Name;
+        this.type = 3050246964;
+      }
+    }
+    IFC2X32.IfcContextDependentUnit = IfcContextDependentUnit;
+    class IfcConversionBasedUnit extends IfcNamedUnit {
+      constructor(Dimensions, UnitType, Name, ConversionFactor) {
+        super(Dimensions, UnitType);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Name = Name;
+        this.ConversionFactor = ConversionFactor;
+        this.type = 2889183280;
+      }
+    }
+    IFC2X32.IfcConversionBasedUnit = IfcConversionBasedUnit;
+    class IfcCurveStyle extends IfcPresentationStyle {
+      constructor(Name, CurveFont, CurveWidth, CurveColour) {
+        super(Name);
+        this.Name = Name;
+        this.CurveFont = CurveFont;
+        this.CurveWidth = CurveWidth;
+        this.CurveColour = CurveColour;
+        this.type = 3800577675;
+      }
+    }
+    IFC2X32.IfcCurveStyle = IfcCurveStyle;
+    class IfcDerivedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.ParentProfile = ParentProfile;
+        this.Operator = Operator;
+        this.Label = Label;
+        this.type = 3632507154;
+      }
+    }
+    IFC2X32.IfcDerivedProfileDef = IfcDerivedProfileDef;
+    class IfcDimensionCalloutRelationship extends IfcDraughtingCalloutRelationship {
+      constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {
+        super(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingDraughtingCallout = RelatingDraughtingCallout;
+        this.RelatedDraughtingCallout = RelatedDraughtingCallout;
+        this.type = 2273265877;
+      }
+    }
+    IFC2X32.IfcDimensionCalloutRelationship = IfcDimensionCalloutRelationship;
+    class IfcDimensionPair extends IfcDraughtingCalloutRelationship {
+      constructor(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout) {
+        super(Name, Description, RelatingDraughtingCallout, RelatedDraughtingCallout);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingDraughtingCallout = RelatingDraughtingCallout;
+        this.RelatedDraughtingCallout = RelatedDraughtingCallout;
+        this.type = 1694125774;
+      }
+    }
+    IFC2X32.IfcDimensionPair = IfcDimensionPair;
+    class IfcDocumentReference extends IfcExternalReference {
+      constructor(Location, ItemReference, Name) {
+        super(Location, ItemReference, Name);
+        this.Location = Location;
+        this.ItemReference = ItemReference;
+        this.Name = Name;
+        this.type = 3732053477;
+      }
+    }
+    IFC2X32.IfcDocumentReference = IfcDocumentReference;
+    class IfcDraughtingPreDefinedTextFont extends IfcPreDefinedTextFont {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 4170525392;
+      }
+    }
+    IFC2X32.IfcDraughtingPreDefinedTextFont = IfcDraughtingPreDefinedTextFont;
+    class IfcEdge extends IfcTopologicalRepresentationItem {
+      constructor(EdgeStart, EdgeEnd) {
+        super();
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.type = 3900360178;
+      }
+    }
+    IFC2X32.IfcEdge = IfcEdge;
+    class IfcEdgeCurve extends IfcEdge {
+      constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {
+        super(EdgeStart, EdgeEnd);
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.EdgeGeometry = EdgeGeometry;
+        this.SameSense = SameSense;
+        this.type = 476780140;
+      }
+    }
+    IFC2X32.IfcEdgeCurve = IfcEdgeCurve;
+    class IfcExtendedMaterialProperties extends IfcMaterialProperties {
+      constructor(Material, ExtendedProperties, Description, Name) {
+        super(Material);
+        this.Material = Material;
+        this.ExtendedProperties = ExtendedProperties;
+        this.Description = Description;
+        this.Name = Name;
+        this.type = 1860660968;
+      }
+    }
+    IFC2X32.IfcExtendedMaterialProperties = IfcExtendedMaterialProperties;
+    class IfcFace extends IfcTopologicalRepresentationItem {
+      constructor(Bounds) {
+        super();
+        this.Bounds = Bounds;
+        this.type = 2556980723;
+      }
+    }
+    IFC2X32.IfcFace = IfcFace;
+    class IfcFaceBound extends IfcTopologicalRepresentationItem {
+      constructor(Bound, Orientation) {
+        super();
+        this.Bound = Bound;
+        this.Orientation = Orientation;
+        this.type = 1809719519;
+      }
+    }
+    IFC2X32.IfcFaceBound = IfcFaceBound;
+    class IfcFaceOuterBound extends IfcFaceBound {
+      constructor(Bound, Orientation) {
+        super(Bound, Orientation);
+        this.Bound = Bound;
+        this.Orientation = Orientation;
+        this.type = 803316827;
+      }
+    }
+    IFC2X32.IfcFaceOuterBound = IfcFaceOuterBound;
+    class IfcFaceSurface extends IfcFace {
+      constructor(Bounds, FaceSurface, SameSense) {
+        super(Bounds);
+        this.Bounds = Bounds;
+        this.FaceSurface = FaceSurface;
+        this.SameSense = SameSense;
+        this.type = 3008276851;
+      }
+    }
+    IFC2X32.IfcFaceSurface = IfcFaceSurface;
+    class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {
+      constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {
+        super(Name);
+        this.Name = Name;
+        this.TensionFailureX = TensionFailureX;
+        this.TensionFailureY = TensionFailureY;
+        this.TensionFailureZ = TensionFailureZ;
+        this.CompressionFailureX = CompressionFailureX;
+        this.CompressionFailureY = CompressionFailureY;
+        this.CompressionFailureZ = CompressionFailureZ;
+        this.type = 4219587988;
+      }
+    }
+    IFC2X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition;
+    class IfcFillAreaStyle extends IfcPresentationStyle {
+      constructor(Name, FillStyles) {
+        super(Name);
+        this.Name = Name;
+        this.FillStyles = FillStyles;
+        this.type = 738692330;
+      }
+    }
+    IFC2X32.IfcFillAreaStyle = IfcFillAreaStyle;
+    class IfcFuelProperties extends IfcMaterialProperties {
+      constructor(Material, CombustionTemperature, CarbonContent, LowerHeatingValue, HigherHeatingValue) {
+        super(Material);
+        this.Material = Material;
+        this.CombustionTemperature = CombustionTemperature;
+        this.CarbonContent = CarbonContent;
+        this.LowerHeatingValue = LowerHeatingValue;
+        this.HigherHeatingValue = HigherHeatingValue;
+        this.type = 3857492461;
+      }
+    }
+    IFC2X32.IfcFuelProperties = IfcFuelProperties;
+    class IfcGeneralMaterialProperties extends IfcMaterialProperties {
+      constructor(Material, MolecularWeight, Porosity, MassDensity) {
+        super(Material);
+        this.Material = Material;
+        this.MolecularWeight = MolecularWeight;
+        this.Porosity = Porosity;
+        this.MassDensity = MassDensity;
+        this.type = 803998398;
+      }
+    }
+    IFC2X32.IfcGeneralMaterialProperties = IfcGeneralMaterialProperties;
+    class IfcGeneralProfileProperties extends IfcProfileProperties {
+      constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea) {
+        super(ProfileName, ProfileDefinition);
+        this.ProfileName = ProfileName;
+        this.ProfileDefinition = ProfileDefinition;
+        this.PhysicalWeight = PhysicalWeight;
+        this.Perimeter = Perimeter;
+        this.MinimumPlateThickness = MinimumPlateThickness;
+        this.MaximumPlateThickness = MaximumPlateThickness;
+        this.CrossSectionArea = CrossSectionArea;
+        this.type = 1446786286;
+      }
+    }
+    IFC2X32.IfcGeneralProfileProperties = IfcGeneralProfileProperties;
+    class IfcGeometricRepresentationContext extends IfcRepresentationContext {
+      constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {
+        super(ContextIdentifier, ContextType);
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.CoordinateSpaceDimension = CoordinateSpaceDimension;
+        this.Precision = Precision;
+        this.WorldCoordinateSystem = WorldCoordinateSystem;
+        this.TrueNorth = TrueNorth;
+        this.type = 3448662350;
+      }
+    }
+    IFC2X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;
+    class IfcGeometricRepresentationItem extends IfcRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2453401579;
+      }
+    }
+    IFC2X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;
+    class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {
+      constructor(ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {
+        super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null);
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.ParentContext = ParentContext;
+        this.TargetScale = TargetScale;
+        this.TargetView = TargetView;
+        this.UserDefinedTargetView = UserDefinedTargetView;
+        this.type = 4142052618;
+      }
+    }
+    IFC2X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;
+    class IfcGeometricSet extends IfcGeometricRepresentationItem {
+      constructor(Elements) {
+        super();
+        this.Elements = Elements;
+        this.type = 3590301190;
+      }
+    }
+    IFC2X32.IfcGeometricSet = IfcGeometricSet;
+    class IfcGridPlacement extends IfcObjectPlacement {
+      constructor(PlacementLocation, PlacementRefDirection) {
+        super();
+        this.PlacementLocation = PlacementLocation;
+        this.PlacementRefDirection = PlacementRefDirection;
+        this.type = 178086475;
+      }
+    }
+    IFC2X32.IfcGridPlacement = IfcGridPlacement;
+    class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {
+      constructor(BaseSurface, AgreementFlag) {
+        super();
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.type = 812098782;
+      }
+    }
+    IFC2X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid;
+    class IfcHygroscopicMaterialProperties extends IfcMaterialProperties {
+      constructor(Material, UpperVaporResistanceFactor, LowerVaporResistanceFactor, IsothermalMoistureCapacity, VaporPermeability, MoistureDiffusivity) {
+        super(Material);
+        this.Material = Material;
+        this.UpperVaporResistanceFactor = UpperVaporResistanceFactor;
+        this.LowerVaporResistanceFactor = LowerVaporResistanceFactor;
+        this.IsothermalMoistureCapacity = IsothermalMoistureCapacity;
+        this.VaporPermeability = VaporPermeability;
+        this.MoistureDiffusivity = MoistureDiffusivity;
+        this.type = 2445078500;
+      }
+    }
+    IFC2X32.IfcHygroscopicMaterialProperties = IfcHygroscopicMaterialProperties;
+    class IfcImageTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, TextureType, TextureTransform, UrlReference) {
+        super(RepeatS, RepeatT, TextureType, TextureTransform);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.TextureType = TextureType;
+        this.TextureTransform = TextureTransform;
+        this.UrlReference = UrlReference;
+        this.type = 3905492369;
+      }
+    }
+    IFC2X32.IfcImageTexture = IfcImageTexture;
+    class IfcIrregularTimeSeries extends IfcTimeSeries {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {
+        super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.Values = Values;
+        this.type = 3741457305;
+      }
+    }
+    IFC2X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries;
+    class IfcLightSource extends IfcGeometricRepresentationItem {
+      constructor(Name, LightColour, AmbientIntensity, Intensity) {
+        super();
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.type = 1402838566;
+      }
+    }
+    IFC2X32.IfcLightSource = IfcLightSource;
+    class IfcLightSourceAmbient extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.type = 125510826;
+      }
+    }
+    IFC2X32.IfcLightSourceAmbient = IfcLightSourceAmbient;
+    class IfcLightSourceDirectional extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Orientation = Orientation;
+        this.type = 2604431987;
+      }
+    }
+    IFC2X32.IfcLightSourceDirectional = IfcLightSourceDirectional;
+    class IfcLightSourceGoniometric extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.ColourAppearance = ColourAppearance;
+        this.ColourTemperature = ColourTemperature;
+        this.LuminousFlux = LuminousFlux;
+        this.LightEmissionSource = LightEmissionSource;
+        this.LightDistributionDataSource = LightDistributionDataSource;
+        this.type = 4266656042;
+      }
+    }
+    IFC2X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric;
+    class IfcLightSourcePositional extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.ConstantAttenuation = ConstantAttenuation;
+        this.DistanceAttenuation = DistanceAttenuation;
+        this.QuadricAttenuation = QuadricAttenuation;
+        this.type = 1520743889;
+      }
+    }
+    IFC2X32.IfcLightSourcePositional = IfcLightSourcePositional;
+    class IfcLightSourceSpot extends IfcLightSourcePositional {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {
+        super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.ConstantAttenuation = ConstantAttenuation;
+        this.DistanceAttenuation = DistanceAttenuation;
+        this.QuadricAttenuation = QuadricAttenuation;
+        this.Orientation = Orientation;
+        this.ConcentrationExponent = ConcentrationExponent;
+        this.SpreadAngle = SpreadAngle;
+        this.BeamWidthAngle = BeamWidthAngle;
+        this.type = 3422422726;
+      }
+    }
+    IFC2X32.IfcLightSourceSpot = IfcLightSourceSpot;
+    class IfcLocalPlacement extends IfcObjectPlacement {
+      constructor(PlacementRelTo, RelativePlacement) {
+        super();
+        this.PlacementRelTo = PlacementRelTo;
+        this.RelativePlacement = RelativePlacement;
+        this.type = 2624227202;
+      }
+    }
+    IFC2X32.IfcLocalPlacement = IfcLocalPlacement;
+    class IfcLoop extends IfcTopologicalRepresentationItem {
+      constructor() {
+        super();
+        this.type = 1008929658;
+      }
+    }
+    IFC2X32.IfcLoop = IfcLoop;
+    class IfcMappedItem extends IfcRepresentationItem {
+      constructor(MappingSource, MappingTarget) {
+        super();
+        this.MappingSource = MappingSource;
+        this.MappingTarget = MappingTarget;
+        this.type = 2347385850;
+      }
+    }
+    IFC2X32.IfcMappedItem = IfcMappedItem;
+    class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {
+      constructor(Name, Description, Representations, RepresentedMaterial) {
+        super(Name, Description, Representations);
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.RepresentedMaterial = RepresentedMaterial;
+        this.type = 2022407955;
+      }
+    }
+    IFC2X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;
+    class IfcMechanicalConcreteMaterialProperties extends IfcMechanicalMaterialProperties {
+      constructor(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient, CompressiveStrength, MaxAggregateSize, AdmixturesDescription, Workability, ProtectivePoreRatio, WaterImpermeability) {
+        super(Material, DynamicViscosity, YoungModulus, ShearModulus, PoissonRatio, ThermalExpansionCoefficient);
+        this.Material = Material;
+        this.DynamicViscosity = DynamicViscosity;
+        this.YoungModulus = YoungModulus;
+        this.ShearModulus = ShearModulus;
+        this.PoissonRatio = PoissonRatio;
+        this.ThermalExpansionCoefficient = ThermalExpansionCoefficient;
+        this.CompressiveStrength = CompressiveStrength;
+        this.MaxAggregateSize = MaxAggregateSize;
+        this.AdmixturesDescription = AdmixturesDescription;
+        this.Workability = Workability;
+        this.ProtectivePoreRatio = ProtectivePoreRatio;
+        this.WaterImpermeability = WaterImpermeability;
+        this.type = 1430189142;
+      }
+    }
+    IFC2X32.IfcMechanicalConcreteMaterialProperties = IfcMechanicalConcreteMaterialProperties;
+    class IfcObjectDefinition extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 219451334;
+      }
+    }
+    IFC2X32.IfcObjectDefinition = IfcObjectDefinition;
+    class IfcOneDirectionRepeatFactor extends IfcGeometricRepresentationItem {
+      constructor(RepeatFactor) {
+        super();
+        this.RepeatFactor = RepeatFactor;
+        this.type = 2833995503;
+      }
+    }
+    IFC2X32.IfcOneDirectionRepeatFactor = IfcOneDirectionRepeatFactor;
+    class IfcOpenShell extends IfcConnectedFaceSet {
+      constructor(CfsFaces) {
+        super(CfsFaces);
+        this.CfsFaces = CfsFaces;
+        this.type = 2665983363;
+      }
+    }
+    IFC2X32.IfcOpenShell = IfcOpenShell;
+    class IfcOrientedEdge extends IfcEdge {
+      constructor(EdgeElement, Orientation) {
+        super(new Handle(0), new Handle(0));
+        this.EdgeElement = EdgeElement;
+        this.Orientation = Orientation;
+        this.type = 1029017970;
+      }
+    }
+    IFC2X32.IfcOrientedEdge = IfcOrientedEdge;
+    class IfcParameterizedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Position) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.type = 2529465313;
+      }
+    }
+    IFC2X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef;
+    class IfcPath extends IfcTopologicalRepresentationItem {
+      constructor(EdgeList) {
+        super();
+        this.EdgeList = EdgeList;
+        this.type = 2519244187;
+      }
+    }
+    IFC2X32.IfcPath = IfcPath;
+    class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {
+      constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.HasQuantities = HasQuantities;
+        this.Discrimination = Discrimination;
+        this.Quality = Quality;
+        this.Usage = Usage;
+        this.type = 3021840470;
+      }
+    }
+    IFC2X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;
+    class IfcPixelTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, TextureType, TextureTransform, Width, Height, ColourComponents, Pixel) {
+        super(RepeatS, RepeatT, TextureType, TextureTransform);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.TextureType = TextureType;
+        this.TextureTransform = TextureTransform;
+        this.Width = Width;
+        this.Height = Height;
+        this.ColourComponents = ColourComponents;
+        this.Pixel = Pixel;
+        this.type = 597895409;
+      }
+    }
+    IFC2X32.IfcPixelTexture = IfcPixelTexture;
+    class IfcPlacement extends IfcGeometricRepresentationItem {
+      constructor(Location) {
+        super();
+        this.Location = Location;
+        this.type = 2004835150;
+      }
+    }
+    IFC2X32.IfcPlacement = IfcPlacement;
+    class IfcPlanarExtent extends IfcGeometricRepresentationItem {
+      constructor(SizeInX, SizeInY) {
+        super();
+        this.SizeInX = SizeInX;
+        this.SizeInY = SizeInY;
+        this.type = 1663979128;
+      }
+    }
+    IFC2X32.IfcPlanarExtent = IfcPlanarExtent;
+    class IfcPoint extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2067069095;
+      }
+    }
+    IFC2X32.IfcPoint = IfcPoint;
+    class IfcPointOnCurve extends IfcPoint {
+      constructor(BasisCurve, PointParameter) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.PointParameter = PointParameter;
+        this.type = 4022376103;
+      }
+    }
+    IFC2X32.IfcPointOnCurve = IfcPointOnCurve;
+    class IfcPointOnSurface extends IfcPoint {
+      constructor(BasisSurface, PointParameterU, PointParameterV) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.PointParameterU = PointParameterU;
+        this.PointParameterV = PointParameterV;
+        this.type = 1423911732;
+      }
+    }
+    IFC2X32.IfcPointOnSurface = IfcPointOnSurface;
+    class IfcPolyLoop extends IfcLoop {
+      constructor(Polygon) {
+        super();
+        this.Polygon = Polygon;
+        this.type = 2924175390;
+      }
+    }
+    IFC2X32.IfcPolyLoop = IfcPolyLoop;
+    class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {
+      constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) {
+        super(BaseSurface, AgreementFlag);
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.Position = Position;
+        this.PolygonalBoundary = PolygonalBoundary;
+        this.type = 2775532180;
+      }
+    }
+    IFC2X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;
+    class IfcPreDefinedColour extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 759155922;
+      }
+    }
+    IFC2X32.IfcPreDefinedColour = IfcPreDefinedColour;
+    class IfcPreDefinedCurveFont extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 2559016684;
+      }
+    }
+    IFC2X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;
+    class IfcPreDefinedDimensionSymbol extends IfcPreDefinedSymbol {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 433424934;
+      }
+    }
+    IFC2X32.IfcPreDefinedDimensionSymbol = IfcPreDefinedDimensionSymbol;
+    class IfcPreDefinedPointMarkerSymbol extends IfcPreDefinedSymbol {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 179317114;
+      }
+    }
+    IFC2X32.IfcPreDefinedPointMarkerSymbol = IfcPreDefinedPointMarkerSymbol;
+    class IfcProductDefinitionShape extends IfcProductRepresentation {
+      constructor(Name, Description, Representations) {
+        super(Name, Description, Representations);
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.type = 673634403;
+      }
+    }
+    IFC2X32.IfcProductDefinitionShape = IfcProductDefinitionShape;
+    class IfcPropertyBoundedValue extends IfcSimpleProperty {
+      constructor(Name, Description, UpperBoundValue, LowerBoundValue, Unit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.UpperBoundValue = UpperBoundValue;
+        this.LowerBoundValue = LowerBoundValue;
+        this.Unit = Unit;
+        this.type = 871118103;
+      }
+    }
+    IFC2X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue;
+    class IfcPropertyDefinition extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 1680319473;
+      }
+    }
+    IFC2X32.IfcPropertyDefinition = IfcPropertyDefinition;
+    class IfcPropertyEnumeratedValue extends IfcSimpleProperty {
+      constructor(Name, Description, EnumerationValues, EnumerationReference) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.EnumerationValues = EnumerationValues;
+        this.EnumerationReference = EnumerationReference;
+        this.type = 4166981789;
+      }
+    }
+    IFC2X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;
+    class IfcPropertyListValue extends IfcSimpleProperty {
+      constructor(Name, Description, ListValues, Unit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.ListValues = ListValues;
+        this.Unit = Unit;
+        this.type = 2752243245;
+      }
+    }
+    IFC2X32.IfcPropertyListValue = IfcPropertyListValue;
+    class IfcPropertyReferenceValue extends IfcSimpleProperty {
+      constructor(Name, Description, UsageName, PropertyReference) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.UsageName = UsageName;
+        this.PropertyReference = PropertyReference;
+        this.type = 941946838;
+      }
+    }
+    IFC2X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue;
+    class IfcPropertySetDefinition extends IfcPropertyDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3357820518;
+      }
+    }
+    IFC2X32.IfcPropertySetDefinition = IfcPropertySetDefinition;
+    class IfcPropertySingleValue extends IfcSimpleProperty {
+      constructor(Name, Description, NominalValue, Unit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.NominalValue = NominalValue;
+        this.Unit = Unit;
+        this.type = 3650150729;
+      }
+    }
+    IFC2X32.IfcPropertySingleValue = IfcPropertySingleValue;
+    class IfcPropertyTableValue extends IfcSimpleProperty {
+      constructor(Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.DefiningValues = DefiningValues;
+        this.DefinedValues = DefinedValues;
+        this.Expression = Expression;
+        this.DefiningUnit = DefiningUnit;
+        this.DefinedUnit = DefinedUnit;
+        this.type = 110355661;
+      }
+    }
+    IFC2X32.IfcPropertyTableValue = IfcPropertyTableValue;
+    class IfcRectangleProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.type = 3615266464;
+      }
+    }
+    IFC2X32.IfcRectangleProfileDef = IfcRectangleProfileDef;
+    class IfcRegularTimeSeries extends IfcTimeSeries {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {
+        super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.TimeStep = TimeStep;
+        this.Values = Values;
+        this.type = 3413951693;
+      }
+    }
+    IFC2X32.IfcRegularTimeSeries = IfcRegularTimeSeries;
+    class IfcReinforcementDefinitionProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.DefinitionType = DefinitionType;
+        this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;
+        this.type = 3765753017;
+      }
+    }
+    IFC2X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;
+    class IfcRelationship extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 478536968;
+      }
+    }
+    IFC2X32.IfcRelationship = IfcRelationship;
+    class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {
+        super(ProfileType, ProfileName, Position, XDim, YDim);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.RoundingRadius = RoundingRadius;
+        this.type = 2778083089;
+      }
+    }
+    IFC2X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;
+    class IfcSectionedSpine extends IfcGeometricRepresentationItem {
+      constructor(SpineCurve, CrossSections, CrossSectionPositions) {
+        super();
+        this.SpineCurve = SpineCurve;
+        this.CrossSections = CrossSections;
+        this.CrossSectionPositions = CrossSectionPositions;
+        this.type = 1509187699;
+      }
+    }
+    IFC2X32.IfcSectionedSpine = IfcSectionedSpine;
+    class IfcServiceLifeFactor extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, PredefinedType, UpperValue, MostUsedValue, LowerValue) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.PredefinedType = PredefinedType;
+        this.UpperValue = UpperValue;
+        this.MostUsedValue = MostUsedValue;
+        this.LowerValue = LowerValue;
+        this.type = 2411513650;
+      }
+    }
+    IFC2X32.IfcServiceLifeFactor = IfcServiceLifeFactor;
+    class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {
+      constructor(SbsmBoundary) {
+        super();
+        this.SbsmBoundary = SbsmBoundary;
+        this.type = 4124623270;
+      }
+    }
+    IFC2X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;
+    class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {
+      constructor(Name, SlippageX, SlippageY, SlippageZ) {
+        super(Name);
+        this.Name = Name;
+        this.SlippageX = SlippageX;
+        this.SlippageY = SlippageY;
+        this.SlippageZ = SlippageZ;
+        this.type = 2609359061;
+      }
+    }
+    IFC2X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;
+    class IfcSolidModel extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 723233188;
+      }
+    }
+    IFC2X32.IfcSolidModel = IfcSolidModel;
+    class IfcSoundProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, IsAttenuating, SoundScale, SoundValues) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.IsAttenuating = IsAttenuating;
+        this.SoundScale = SoundScale;
+        this.SoundValues = SoundValues;
+        this.type = 2485662743;
+      }
+    }
+    IFC2X32.IfcSoundProperties = IfcSoundProperties;
+    class IfcSoundValue extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, SoundLevelTimeSeries, Frequency, SoundLevelSingleValue) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.SoundLevelTimeSeries = SoundLevelTimeSeries;
+        this.Frequency = Frequency;
+        this.SoundLevelSingleValue = SoundLevelSingleValue;
+        this.type = 1202362311;
+      }
+    }
+    IFC2X32.IfcSoundValue = IfcSoundValue;
+    class IfcSpaceThermalLoadProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableValueRatio, ThermalLoadSource, PropertySource, SourceDescription, MaximumValue, MinimumValue, ThermalLoadTimeSeriesValues, UserDefinedThermalLoadSource, UserDefinedPropertySource, ThermalLoadType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableValueRatio = ApplicableValueRatio;
+        this.ThermalLoadSource = ThermalLoadSource;
+        this.PropertySource = PropertySource;
+        this.SourceDescription = SourceDescription;
+        this.MaximumValue = MaximumValue;
+        this.MinimumValue = MinimumValue;
+        this.ThermalLoadTimeSeriesValues = ThermalLoadTimeSeriesValues;
+        this.UserDefinedThermalLoadSource = UserDefinedThermalLoadSource;
+        this.UserDefinedPropertySource = UserDefinedPropertySource;
+        this.ThermalLoadType = ThermalLoadType;
+        this.type = 390701378;
+      }
+    }
+    IFC2X32.IfcSpaceThermalLoadProperties = IfcSpaceThermalLoadProperties;
+    class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {
+      constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {
+        super(Name);
+        this.Name = Name;
+        this.LinearForceX = LinearForceX;
+        this.LinearForceY = LinearForceY;
+        this.LinearForceZ = LinearForceZ;
+        this.LinearMomentX = LinearMomentX;
+        this.LinearMomentY = LinearMomentY;
+        this.LinearMomentZ = LinearMomentZ;
+        this.type = 1595516126;
+      }
+    }
+    IFC2X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;
+    class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {
+      constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) {
+        super(Name);
+        this.Name = Name;
+        this.PlanarForceX = PlanarForceX;
+        this.PlanarForceY = PlanarForceY;
+        this.PlanarForceZ = PlanarForceZ;
+        this.type = 2668620305;
+      }
+    }
+    IFC2X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;
+    class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {
+      constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {
+        super(Name);
+        this.Name = Name;
+        this.DisplacementX = DisplacementX;
+        this.DisplacementY = DisplacementY;
+        this.DisplacementZ = DisplacementZ;
+        this.RotationalDisplacementRX = RotationalDisplacementRX;
+        this.RotationalDisplacementRY = RotationalDisplacementRY;
+        this.RotationalDisplacementRZ = RotationalDisplacementRZ;
+        this.type = 2473145415;
+      }
+    }
+    IFC2X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;
+    class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {
+      constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {
+        super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);
+        this.Name = Name;
+        this.DisplacementX = DisplacementX;
+        this.DisplacementY = DisplacementY;
+        this.DisplacementZ = DisplacementZ;
+        this.RotationalDisplacementRX = RotationalDisplacementRX;
+        this.RotationalDisplacementRY = RotationalDisplacementRY;
+        this.RotationalDisplacementRZ = RotationalDisplacementRZ;
+        this.Distortion = Distortion;
+        this.type = 1973038258;
+      }
+    }
+    IFC2X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;
+    class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {
+      constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {
+        super(Name);
+        this.Name = Name;
+        this.ForceX = ForceX;
+        this.ForceY = ForceY;
+        this.ForceZ = ForceZ;
+        this.MomentX = MomentX;
+        this.MomentY = MomentY;
+        this.MomentZ = MomentZ;
+        this.type = 1597423693;
+      }
+    }
+    IFC2X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;
+    class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {
+      constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {
+        super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);
+        this.Name = Name;
+        this.ForceX = ForceX;
+        this.ForceY = ForceY;
+        this.ForceZ = ForceZ;
+        this.MomentX = MomentX;
+        this.MomentY = MomentY;
+        this.MomentZ = MomentZ;
+        this.WarpingMoment = WarpingMoment;
+        this.type = 1190533807;
+      }
+    }
+    IFC2X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;
+    class IfcStructuralProfileProperties extends IfcGeneralProfileProperties {
+      constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY) {
+        super(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea);
+        this.ProfileName = ProfileName;
+        this.ProfileDefinition = ProfileDefinition;
+        this.PhysicalWeight = PhysicalWeight;
+        this.Perimeter = Perimeter;
+        this.MinimumPlateThickness = MinimumPlateThickness;
+        this.MaximumPlateThickness = MaximumPlateThickness;
+        this.CrossSectionArea = CrossSectionArea;
+        this.TorsionalConstantX = TorsionalConstantX;
+        this.MomentOfInertiaYZ = MomentOfInertiaYZ;
+        this.MomentOfInertiaY = MomentOfInertiaY;
+        this.MomentOfInertiaZ = MomentOfInertiaZ;
+        this.WarpingConstant = WarpingConstant;
+        this.ShearCentreZ = ShearCentreZ;
+        this.ShearCentreY = ShearCentreY;
+        this.ShearDeformationAreaZ = ShearDeformationAreaZ;
+        this.ShearDeformationAreaY = ShearDeformationAreaY;
+        this.MaximumSectionModulusY = MaximumSectionModulusY;
+        this.MinimumSectionModulusY = MinimumSectionModulusY;
+        this.MaximumSectionModulusZ = MaximumSectionModulusZ;
+        this.MinimumSectionModulusZ = MinimumSectionModulusZ;
+        this.TorsionalSectionModulus = TorsionalSectionModulus;
+        this.CentreOfGravityInX = CentreOfGravityInX;
+        this.CentreOfGravityInY = CentreOfGravityInY;
+        this.type = 3843319758;
+      }
+    }
+    IFC2X32.IfcStructuralProfileProperties = IfcStructuralProfileProperties;
+    class IfcStructuralSteelProfileProperties extends IfcStructuralProfileProperties {
+      constructor(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY, ShearAreaZ, ShearAreaY, PlasticShapeFactorY, PlasticShapeFactorZ) {
+        super(ProfileName, ProfileDefinition, PhysicalWeight, Perimeter, MinimumPlateThickness, MaximumPlateThickness, CrossSectionArea, TorsionalConstantX, MomentOfInertiaYZ, MomentOfInertiaY, MomentOfInertiaZ, WarpingConstant, ShearCentreZ, ShearCentreY, ShearDeformationAreaZ, ShearDeformationAreaY, MaximumSectionModulusY, MinimumSectionModulusY, MaximumSectionModulusZ, MinimumSectionModulusZ, TorsionalSectionModulus, CentreOfGravityInX, CentreOfGravityInY);
+        this.ProfileName = ProfileName;
+        this.ProfileDefinition = ProfileDefinition;
+        this.PhysicalWeight = PhysicalWeight;
+        this.Perimeter = Perimeter;
+        this.MinimumPlateThickness = MinimumPlateThickness;
+        this.MaximumPlateThickness = MaximumPlateThickness;
+        this.CrossSectionArea = CrossSectionArea;
+        this.TorsionalConstantX = TorsionalConstantX;
+        this.MomentOfInertiaYZ = MomentOfInertiaYZ;
+        this.MomentOfInertiaY = MomentOfInertiaY;
+        this.MomentOfInertiaZ = MomentOfInertiaZ;
+        this.WarpingConstant = WarpingConstant;
+        this.ShearCentreZ = ShearCentreZ;
+        this.ShearCentreY = ShearCentreY;
+        this.ShearDeformationAreaZ = ShearDeformationAreaZ;
+        this.ShearDeformationAreaY = ShearDeformationAreaY;
+        this.MaximumSectionModulusY = MaximumSectionModulusY;
+        this.MinimumSectionModulusY = MinimumSectionModulusY;
+        this.MaximumSectionModulusZ = MaximumSectionModulusZ;
+        this.MinimumSectionModulusZ = MinimumSectionModulusZ;
+        this.TorsionalSectionModulus = TorsionalSectionModulus;
+        this.CentreOfGravityInX = CentreOfGravityInX;
+        this.CentreOfGravityInY = CentreOfGravityInY;
+        this.ShearAreaZ = ShearAreaZ;
+        this.ShearAreaY = ShearAreaY;
+        this.PlasticShapeFactorY = PlasticShapeFactorY;
+        this.PlasticShapeFactorZ = PlasticShapeFactorZ;
+        this.type = 3653947884;
+      }
+    }
+    IFC2X32.IfcStructuralSteelProfileProperties = IfcStructuralSteelProfileProperties;
+    class IfcSubedge extends IfcEdge {
+      constructor(EdgeStart, EdgeEnd, ParentEdge) {
+        super(EdgeStart, EdgeEnd);
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.ParentEdge = ParentEdge;
+        this.type = 2233826070;
+      }
+    }
+    IFC2X32.IfcSubedge = IfcSubedge;
+    class IfcSurface extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2513912981;
+      }
+    }
+    IFC2X32.IfcSurface = IfcSurface;
+    class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {
+      constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {
+        super(SurfaceColour);
+        this.SurfaceColour = SurfaceColour;
+        this.Transparency = Transparency;
+        this.DiffuseColour = DiffuseColour;
+        this.TransmissionColour = TransmissionColour;
+        this.DiffuseTransmissionColour = DiffuseTransmissionColour;
+        this.ReflectionColour = ReflectionColour;
+        this.SpecularColour = SpecularColour;
+        this.SpecularHighlight = SpecularHighlight;
+        this.ReflectanceMethod = ReflectanceMethod;
+        this.type = 1878645084;
+      }
+    }
+    IFC2X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;
+    class IfcSweptAreaSolid extends IfcSolidModel {
+      constructor(SweptArea, Position) {
+        super();
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.type = 2247615214;
+      }
+    }
+    IFC2X32.IfcSweptAreaSolid = IfcSweptAreaSolid;
+    class IfcSweptDiskSolid extends IfcSolidModel {
+      constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) {
+        super();
+        this.Directrix = Directrix;
+        this.Radius = Radius;
+        this.InnerRadius = InnerRadius;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.type = 1260650574;
+      }
+    }
+    IFC2X32.IfcSweptDiskSolid = IfcSweptDiskSolid;
+    class IfcSweptSurface extends IfcSurface {
+      constructor(SweptCurve, Position) {
+        super();
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.type = 230924584;
+      }
+    }
+    IFC2X32.IfcSweptSurface = IfcSweptSurface;
+    class IfcTShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope, CentreOfGravityInY) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.FlangeEdgeRadius = FlangeEdgeRadius;
+        this.WebEdgeRadius = WebEdgeRadius;
+        this.WebSlope = WebSlope;
+        this.FlangeSlope = FlangeSlope;
+        this.CentreOfGravityInY = CentreOfGravityInY;
+        this.type = 3071757647;
+      }
+    }
+    IFC2X32.IfcTShapeProfileDef = IfcTShapeProfileDef;
+    class IfcTerminatorSymbol extends IfcAnnotationSymbolOccurrence {
+      constructor(Item, Styles, Name, AnnotatedCurve) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.AnnotatedCurve = AnnotatedCurve;
+        this.type = 3028897424;
+      }
+    }
+    IFC2X32.IfcTerminatorSymbol = IfcTerminatorSymbol;
+    class IfcTextLiteral extends IfcGeometricRepresentationItem {
+      constructor(Literal, Placement, Path) {
+        super();
+        this.Literal = Literal;
+        this.Placement = Placement;
+        this.Path = Path;
+        this.type = 4282788508;
+      }
+    }
+    IFC2X32.IfcTextLiteral = IfcTextLiteral;
+    class IfcTextLiteralWithExtent extends IfcTextLiteral {
+      constructor(Literal, Placement, Path, Extent, BoxAlignment) {
+        super(Literal, Placement, Path);
+        this.Literal = Literal;
+        this.Placement = Placement;
+        this.Path = Path;
+        this.Extent = Extent;
+        this.BoxAlignment = BoxAlignment;
+        this.type = 3124975700;
+      }
+    }
+    IFC2X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;
+    class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.BottomXDim = BottomXDim;
+        this.TopXDim = TopXDim;
+        this.YDim = YDim;
+        this.TopXOffset = TopXOffset;
+        this.type = 2715220739;
+      }
+    }
+    IFC2X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;
+    class IfcTwoDirectionRepeatFactor extends IfcOneDirectionRepeatFactor {
+      constructor(RepeatFactor, SecondRepeatFactor) {
+        super(RepeatFactor);
+        this.RepeatFactor = RepeatFactor;
+        this.SecondRepeatFactor = SecondRepeatFactor;
+        this.type = 1345879162;
+      }
+    }
+    IFC2X32.IfcTwoDirectionRepeatFactor = IfcTwoDirectionRepeatFactor;
+    class IfcTypeObject extends IfcObjectDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.type = 1628702193;
+      }
+    }
+    IFC2X32.IfcTypeObject = IfcTypeObject;
+    class IfcTypeProduct extends IfcTypeObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.type = 2347495698;
+      }
+    }
+    IFC2X32.IfcTypeProduct = IfcTypeProduct;
+    class IfcUShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope, CentreOfGravityInX) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.FlangeSlope = FlangeSlope;
+        this.CentreOfGravityInX = CentreOfGravityInX;
+        this.type = 427810014;
+      }
+    }
+    IFC2X32.IfcUShapeProfileDef = IfcUShapeProfileDef;
+    class IfcVector extends IfcGeometricRepresentationItem {
+      constructor(Orientation, Magnitude) {
+        super();
+        this.Orientation = Orientation;
+        this.Magnitude = Magnitude;
+        this.type = 1417489154;
+      }
+    }
+    IFC2X32.IfcVector = IfcVector;
+    class IfcVertexLoop extends IfcLoop {
+      constructor(LoopVertex) {
+        super();
+        this.LoopVertex = LoopVertex;
+        this.type = 2759199220;
+      }
+    }
+    IFC2X32.IfcVertexLoop = IfcVertexLoop;
+    class IfcWindowLiningProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.LiningDepth = LiningDepth;
+        this.LiningThickness = LiningThickness;
+        this.TransomThickness = TransomThickness;
+        this.MullionThickness = MullionThickness;
+        this.FirstTransomOffset = FirstTransomOffset;
+        this.SecondTransomOffset = SecondTransomOffset;
+        this.FirstMullionOffset = FirstMullionOffset;
+        this.SecondMullionOffset = SecondMullionOffset;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 336235671;
+      }
+    }
+    IFC2X32.IfcWindowLiningProperties = IfcWindowLiningProperties;
+    class IfcWindowPanelProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.OperationType = OperationType;
+        this.PanelPosition = PanelPosition;
+        this.FrameDepth = FrameDepth;
+        this.FrameThickness = FrameThickness;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 512836454;
+      }
+    }
+    IFC2X32.IfcWindowPanelProperties = IfcWindowPanelProperties;
+    class IfcWindowStyle extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ConstructionType = ConstructionType;
+        this.OperationType = OperationType;
+        this.ParameterTakesPrecedence = ParameterTakesPrecedence;
+        this.Sizeable = Sizeable;
+        this.type = 1299126871;
+      }
+    }
+    IFC2X32.IfcWindowStyle = IfcWindowStyle;
+    class IfcZShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.type = 2543172580;
+      }
+    }
+    IFC2X32.IfcZShapeProfileDef = IfcZShapeProfileDef;
+    class IfcAnnotationCurveOccurrence extends IfcAnnotationOccurrence {
+      constructor(Item, Styles, Name) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 3288037868;
+      }
+    }
+    IFC2X32.IfcAnnotationCurveOccurrence = IfcAnnotationCurveOccurrence;
+    class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {
+      constructor(OuterBoundary, InnerBoundaries) {
+        super();
+        this.OuterBoundary = OuterBoundary;
+        this.InnerBoundaries = InnerBoundaries;
+        this.type = 669184980;
+      }
+    }
+    IFC2X32.IfcAnnotationFillArea = IfcAnnotationFillArea;
+    class IfcAnnotationFillAreaOccurrence extends IfcAnnotationOccurrence {
+      constructor(Item, Styles, Name, FillStyleTarget, GlobalOrLocal) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.FillStyleTarget = FillStyleTarget;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 2265737646;
+      }
+    }
+    IFC2X32.IfcAnnotationFillAreaOccurrence = IfcAnnotationFillAreaOccurrence;
+    class IfcAnnotationSurface extends IfcGeometricRepresentationItem {
+      constructor(Item, TextureCoordinates) {
+        super();
+        this.Item = Item;
+        this.TextureCoordinates = TextureCoordinates;
+        this.type = 1302238472;
+      }
+    }
+    IFC2X32.IfcAnnotationSurface = IfcAnnotationSurface;
+    class IfcAxis1Placement extends IfcPlacement {
+      constructor(Location, Axis) {
+        super(Location);
+        this.Location = Location;
+        this.Axis = Axis;
+        this.type = 4261334040;
+      }
+    }
+    IFC2X32.IfcAxis1Placement = IfcAxis1Placement;
+    class IfcAxis2Placement2D extends IfcPlacement {
+      constructor(Location, RefDirection) {
+        super(Location);
+        this.Location = Location;
+        this.RefDirection = RefDirection;
+        this.type = 3125803723;
+      }
+    }
+    IFC2X32.IfcAxis2Placement2D = IfcAxis2Placement2D;
+    class IfcAxis2Placement3D extends IfcPlacement {
+      constructor(Location, Axis, RefDirection) {
+        super(Location);
+        this.Location = Location;
+        this.Axis = Axis;
+        this.RefDirection = RefDirection;
+        this.type = 2740243338;
+      }
+    }
+    IFC2X32.IfcAxis2Placement3D = IfcAxis2Placement3D;
+    class IfcBooleanResult extends IfcGeometricRepresentationItem {
+      constructor(Operator, FirstOperand, SecondOperand) {
+        super();
+        this.Operator = Operator;
+        this.FirstOperand = FirstOperand;
+        this.SecondOperand = SecondOperand;
+        this.type = 2736907675;
+      }
+    }
+    IFC2X32.IfcBooleanResult = IfcBooleanResult;
+    class IfcBoundedSurface extends IfcSurface {
+      constructor() {
+        super();
+        this.type = 4182860854;
+      }
+    }
+    IFC2X32.IfcBoundedSurface = IfcBoundedSurface;
+    class IfcBoundingBox extends IfcGeometricRepresentationItem {
+      constructor(Corner, XDim, YDim, ZDim) {
+        super();
+        this.Corner = Corner;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.ZDim = ZDim;
+        this.type = 2581212453;
+      }
+    }
+    IFC2X32.IfcBoundingBox = IfcBoundingBox;
+    class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {
+      constructor(BaseSurface, AgreementFlag, Enclosure) {
+        super(BaseSurface, AgreementFlag);
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.Enclosure = Enclosure;
+        this.type = 2713105998;
+      }
+    }
+    IFC2X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace;
+    class IfcCShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius, CentreOfGravityInX) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.Width = Width;
+        this.WallThickness = WallThickness;
+        this.Girth = Girth;
+        this.InternalFilletRadius = InternalFilletRadius;
+        this.CentreOfGravityInX = CentreOfGravityInX;
+        this.type = 2898889636;
+      }
+    }
+    IFC2X32.IfcCShapeProfileDef = IfcCShapeProfileDef;
+    class IfcCartesianPoint extends IfcPoint {
+      constructor(Coordinates) {
+        super();
+        this.Coordinates = Coordinates;
+        this.type = 1123145078;
+      }
+    }
+    IFC2X32.IfcCartesianPoint = IfcCartesianPoint;
+    class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {
+      constructor(Axis1, Axis2, LocalOrigin, Scale) {
+        super();
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.type = 59481748;
+      }
+    }
+    IFC2X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;
+    class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {
+      constructor(Axis1, Axis2, LocalOrigin, Scale) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.type = 3749851601;
+      }
+    }
+    IFC2X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;
+    class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Scale2 = Scale2;
+        this.type = 3486308946;
+      }
+    }
+    IFC2X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;
+    class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Axis3 = Axis3;
+        this.type = 3331915920;
+      }
+    }
+    IFC2X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;
+    class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {
+        super(Axis1, Axis2, LocalOrigin, Scale, Axis3);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Axis3 = Axis3;
+        this.Scale2 = Scale2;
+        this.Scale3 = Scale3;
+        this.type = 1416205885;
+      }
+    }
+    IFC2X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;
+    class IfcCircleProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Radius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 1383045692;
+      }
+    }
+    IFC2X32.IfcCircleProfileDef = IfcCircleProfileDef;
+    class IfcClosedShell extends IfcConnectedFaceSet {
+      constructor(CfsFaces) {
+        super(CfsFaces);
+        this.CfsFaces = CfsFaces;
+        this.type = 2205249479;
+      }
+    }
+    IFC2X32.IfcClosedShell = IfcClosedShell;
+    class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem {
+      constructor(Transition, SameSense, ParentCurve) {
+        super();
+        this.Transition = Transition;
+        this.SameSense = SameSense;
+        this.ParentCurve = ParentCurve;
+        this.type = 2485617015;
+      }
+    }
+    IFC2X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment;
+    class IfcCraneRailAShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, OverallHeight, BaseWidth2, Radius, HeadWidth, HeadDepth2, HeadDepth3, WebThickness, BaseWidth4, BaseDepth1, BaseDepth2, BaseDepth3, CentreOfGravityInY) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.OverallHeight = OverallHeight;
+        this.BaseWidth2 = BaseWidth2;
+        this.Radius = Radius;
+        this.HeadWidth = HeadWidth;
+        this.HeadDepth2 = HeadDepth2;
+        this.HeadDepth3 = HeadDepth3;
+        this.WebThickness = WebThickness;
+        this.BaseWidth4 = BaseWidth4;
+        this.BaseDepth1 = BaseDepth1;
+        this.BaseDepth2 = BaseDepth2;
+        this.BaseDepth3 = BaseDepth3;
+        this.CentreOfGravityInY = CentreOfGravityInY;
+        this.type = 4133800736;
+      }
+    }
+    IFC2X32.IfcCraneRailAShapeProfileDef = IfcCraneRailAShapeProfileDef;
+    class IfcCraneRailFShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, OverallHeight, HeadWidth, Radius, HeadDepth2, HeadDepth3, WebThickness, BaseDepth1, BaseDepth2, CentreOfGravityInY) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.OverallHeight = OverallHeight;
+        this.HeadWidth = HeadWidth;
+        this.Radius = Radius;
+        this.HeadDepth2 = HeadDepth2;
+        this.HeadDepth3 = HeadDepth3;
+        this.WebThickness = WebThickness;
+        this.BaseDepth1 = BaseDepth1;
+        this.BaseDepth2 = BaseDepth2;
+        this.CentreOfGravityInY = CentreOfGravityInY;
+        this.type = 194851669;
+      }
+    }
+    IFC2X32.IfcCraneRailFShapeProfileDef = IfcCraneRailFShapeProfileDef;
+    class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2506170314;
+      }
+    }
+    IFC2X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D;
+    class IfcCsgSolid extends IfcSolidModel {
+      constructor(TreeRootExpression) {
+        super();
+        this.TreeRootExpression = TreeRootExpression;
+        this.type = 2147822146;
+      }
+    }
+    IFC2X32.IfcCsgSolid = IfcCsgSolid;
+    class IfcCurve extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2601014836;
+      }
+    }
+    IFC2X32.IfcCurve = IfcCurve;
+    class IfcCurveBoundedPlane extends IfcBoundedSurface {
+      constructor(BasisSurface, OuterBoundary, InnerBoundaries) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.OuterBoundary = OuterBoundary;
+        this.InnerBoundaries = InnerBoundaries;
+        this.type = 2827736869;
+      }
+    }
+    IFC2X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane;
+    class IfcDefinedSymbol extends IfcGeometricRepresentationItem {
+      constructor(Definition, Target) {
+        super();
+        this.Definition = Definition;
+        this.Target = Target;
+        this.type = 693772133;
+      }
+    }
+    IFC2X32.IfcDefinedSymbol = IfcDefinedSymbol;
+    class IfcDimensionCurve extends IfcAnnotationCurveOccurrence {
+      constructor(Item, Styles, Name) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 606661476;
+      }
+    }
+    IFC2X32.IfcDimensionCurve = IfcDimensionCurve;
+    class IfcDimensionCurveTerminator extends IfcTerminatorSymbol {
+      constructor(Item, Styles, Name, AnnotatedCurve, Role) {
+        super(Item, Styles, Name, AnnotatedCurve);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.AnnotatedCurve = AnnotatedCurve;
+        this.Role = Role;
+        this.type = 4054601972;
+      }
+    }
+    IFC2X32.IfcDimensionCurveTerminator = IfcDimensionCurveTerminator;
+    class IfcDirection extends IfcGeometricRepresentationItem {
+      constructor(DirectionRatios) {
+        super();
+        this.DirectionRatios = DirectionRatios;
+        this.type = 32440307;
+      }
+    }
+    IFC2X32.IfcDirection = IfcDirection;
+    class IfcDoorLiningProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.LiningDepth = LiningDepth;
+        this.LiningThickness = LiningThickness;
+        this.ThresholdDepth = ThresholdDepth;
+        this.ThresholdThickness = ThresholdThickness;
+        this.TransomThickness = TransomThickness;
+        this.TransomOffset = TransomOffset;
+        this.LiningOffset = LiningOffset;
+        this.ThresholdOffset = ThresholdOffset;
+        this.CasingThickness = CasingThickness;
+        this.CasingDepth = CasingDepth;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 2963535650;
+      }
+    }
+    IFC2X32.IfcDoorLiningProperties = IfcDoorLiningProperties;
+    class IfcDoorPanelProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.PanelDepth = PanelDepth;
+        this.PanelOperation = PanelOperation;
+        this.PanelWidth = PanelWidth;
+        this.PanelPosition = PanelPosition;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 1714330368;
+      }
+    }
+    IFC2X32.IfcDoorPanelProperties = IfcDoorPanelProperties;
+    class IfcDoorStyle extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.OperationType = OperationType;
+        this.ConstructionType = ConstructionType;
+        this.ParameterTakesPrecedence = ParameterTakesPrecedence;
+        this.Sizeable = Sizeable;
+        this.type = 526551008;
+      }
+    }
+    IFC2X32.IfcDoorStyle = IfcDoorStyle;
+    class IfcDraughtingCallout extends IfcGeometricRepresentationItem {
+      constructor(Contents) {
+        super();
+        this.Contents = Contents;
+        this.type = 3073041342;
+      }
+    }
+    IFC2X32.IfcDraughtingCallout = IfcDraughtingCallout;
+    class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 445594917;
+      }
+    }
+    IFC2X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;
+    class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 4006246654;
+      }
+    }
+    IFC2X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;
+    class IfcEdgeLoop extends IfcLoop {
+      constructor(EdgeList) {
+        super();
+        this.EdgeList = EdgeList;
+        this.type = 1472233963;
+      }
+    }
+    IFC2X32.IfcEdgeLoop = IfcEdgeLoop;
+    class IfcElementQuantity extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.MethodOfMeasurement = MethodOfMeasurement;
+        this.Quantities = Quantities;
+        this.type = 1883228015;
+      }
+    }
+    IFC2X32.IfcElementQuantity = IfcElementQuantity;
+    class IfcElementType extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 339256511;
+      }
+    }
+    IFC2X32.IfcElementType = IfcElementType;
+    class IfcElementarySurface extends IfcSurface {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2777663545;
+      }
+    }
+    IFC2X32.IfcElementarySurface = IfcElementarySurface;
+    class IfcEllipseProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.SemiAxis1 = SemiAxis1;
+        this.SemiAxis2 = SemiAxis2;
+        this.type = 2835456948;
+      }
+    }
+    IFC2X32.IfcEllipseProfileDef = IfcEllipseProfileDef;
+    class IfcEnergyProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.EnergySequence = EnergySequence;
+        this.UserDefinedEnergySequence = UserDefinedEnergySequence;
+        this.type = 80994333;
+      }
+    }
+    IFC2X32.IfcEnergyProperties = IfcEnergyProperties;
+    class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, ExtrudedDirection, Depth) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.ExtrudedDirection = ExtrudedDirection;
+        this.Depth = Depth;
+        this.type = 477187591;
+      }
+    }
+    IFC2X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;
+    class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {
+      constructor(FbsmFaces) {
+        super();
+        this.FbsmFaces = FbsmFaces;
+        this.type = 2047409740;
+      }
+    }
+    IFC2X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;
+    class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {
+      constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {
+        super();
+        this.HatchLineAppearance = HatchLineAppearance;
+        this.StartOfNextHatchLine = StartOfNextHatchLine;
+        this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;
+        this.PatternStart = PatternStart;
+        this.HatchLineAngle = HatchLineAngle;
+        this.type = 374418227;
+      }
+    }
+    IFC2X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;
+    class IfcFillAreaStyleTileSymbolWithStyle extends IfcGeometricRepresentationItem {
+      constructor(Symbol2) {
+        super();
+        this.Symbol = Symbol2;
+        this.type = 4203026998;
+      }
+    }
+    IFC2X32.IfcFillAreaStyleTileSymbolWithStyle = IfcFillAreaStyleTileSymbolWithStyle;
+    class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {
+      constructor(TilingPattern, Tiles, TilingScale) {
+        super();
+        this.TilingPattern = TilingPattern;
+        this.Tiles = Tiles;
+        this.TilingScale = TilingScale;
+        this.type = 315944413;
+      }
+    }
+    IFC2X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;
+    class IfcFluidFlowProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, PropertySource, FlowConditionTimeSeries, VelocityTimeSeries, FlowrateTimeSeries, Fluid, PressureTimeSeries, UserDefinedPropertySource, TemperatureSingleValue, WetBulbTemperatureSingleValue, WetBulbTemperatureTimeSeries, TemperatureTimeSeries, FlowrateSingleValue, FlowConditionSingleValue, VelocitySingleValue, PressureSingleValue) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.PropertySource = PropertySource;
+        this.FlowConditionTimeSeries = FlowConditionTimeSeries;
+        this.VelocityTimeSeries = VelocityTimeSeries;
+        this.FlowrateTimeSeries = FlowrateTimeSeries;
+        this.Fluid = Fluid;
+        this.PressureTimeSeries = PressureTimeSeries;
+        this.UserDefinedPropertySource = UserDefinedPropertySource;
+        this.TemperatureSingleValue = TemperatureSingleValue;
+        this.WetBulbTemperatureSingleValue = WetBulbTemperatureSingleValue;
+        this.WetBulbTemperatureTimeSeries = WetBulbTemperatureTimeSeries;
+        this.TemperatureTimeSeries = TemperatureTimeSeries;
+        this.FlowrateSingleValue = FlowrateSingleValue;
+        this.FlowConditionSingleValue = FlowConditionSingleValue;
+        this.VelocitySingleValue = VelocitySingleValue;
+        this.PressureSingleValue = PressureSingleValue;
+        this.type = 3455213021;
+      }
+    }
+    IFC2X32.IfcFluidFlowProperties = IfcFluidFlowProperties;
+    class IfcFurnishingElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 4238390223;
+      }
+    }
+    IFC2X32.IfcFurnishingElementType = IfcFurnishingElementType;
+    class IfcFurnitureType extends IfcFurnishingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.AssemblyPlace = AssemblyPlace;
+        this.type = 1268542332;
+      }
+    }
+    IFC2X32.IfcFurnitureType = IfcFurnitureType;
+    class IfcGeometricCurveSet extends IfcGeometricSet {
+      constructor(Elements) {
+        super(Elements);
+        this.Elements = Elements;
+        this.type = 987898635;
+      }
+    }
+    IFC2X32.IfcGeometricCurveSet = IfcGeometricCurveSet;
+    class IfcIShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.OverallWidth = OverallWidth;
+        this.OverallDepth = OverallDepth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.type = 1484403080;
+      }
+    }
+    IFC2X32.IfcIShapeProfileDef = IfcIShapeProfileDef;
+    class IfcLShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope, CentreOfGravityInX, CentreOfGravityInY) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.Width = Width;
+        this.Thickness = Thickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.LegSlope = LegSlope;
+        this.CentreOfGravityInX = CentreOfGravityInX;
+        this.CentreOfGravityInY = CentreOfGravityInY;
+        this.type = 572779678;
+      }
+    }
+    IFC2X32.IfcLShapeProfileDef = IfcLShapeProfileDef;
+    class IfcLine extends IfcCurve {
+      constructor(Pnt, Dir) {
+        super();
+        this.Pnt = Pnt;
+        this.Dir = Dir;
+        this.type = 1281925730;
+      }
+    }
+    IFC2X32.IfcLine = IfcLine;
+    class IfcManifoldSolidBrep extends IfcSolidModel {
+      constructor(Outer) {
+        super();
+        this.Outer = Outer;
+        this.type = 1425443689;
+      }
+    }
+    IFC2X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep;
+    class IfcObject extends IfcObjectDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 3888040117;
+      }
+    }
+    IFC2X32.IfcObject = IfcObject;
+    class IfcOffsetCurve2D extends IfcCurve {
+      constructor(BasisCurve, Distance, SelfIntersect) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.Distance = Distance;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 3388369263;
+      }
+    }
+    IFC2X32.IfcOffsetCurve2D = IfcOffsetCurve2D;
+    class IfcOffsetCurve3D extends IfcCurve {
+      constructor(BasisCurve, Distance, SelfIntersect, RefDirection) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.Distance = Distance;
+        this.SelfIntersect = SelfIntersect;
+        this.RefDirection = RefDirection;
+        this.type = 3505215534;
+      }
+    }
+    IFC2X32.IfcOffsetCurve3D = IfcOffsetCurve3D;
+    class IfcPermeableCoveringProperties extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.OperationType = OperationType;
+        this.PanelPosition = PanelPosition;
+        this.FrameDepth = FrameDepth;
+        this.FrameThickness = FrameThickness;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 3566463478;
+      }
+    }
+    IFC2X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;
+    class IfcPlanarBox extends IfcPlanarExtent {
+      constructor(SizeInX, SizeInY, Placement) {
+        super(SizeInX, SizeInY);
+        this.SizeInX = SizeInX;
+        this.SizeInY = SizeInY;
+        this.Placement = Placement;
+        this.type = 603570806;
+      }
+    }
+    IFC2X32.IfcPlanarBox = IfcPlanarBox;
+    class IfcPlane extends IfcElementarySurface {
+      constructor(Position) {
+        super(Position);
+        this.Position = Position;
+        this.type = 220341763;
+      }
+    }
+    IFC2X32.IfcPlane = IfcPlane;
+    class IfcProcess extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2945172077;
+      }
+    }
+    IFC2X32.IfcProcess = IfcProcess;
+    class IfcProduct extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 4208778838;
+      }
+    }
+    IFC2X32.IfcProduct = IfcProduct;
+    class IfcProject extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.Phase = Phase;
+        this.RepresentationContexts = RepresentationContexts;
+        this.UnitsInContext = UnitsInContext;
+        this.type = 103090709;
+      }
+    }
+    IFC2X32.IfcProject = IfcProject;
+    class IfcProjectionCurve extends IfcAnnotationCurveOccurrence {
+      constructor(Item, Styles, Name) {
+        super(Item, Styles, Name);
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 4194566429;
+      }
+    }
+    IFC2X32.IfcProjectionCurve = IfcProjectionCurve;
+    class IfcPropertySet extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.HasProperties = HasProperties;
+        this.type = 1451395588;
+      }
+    }
+    IFC2X32.IfcPropertySet = IfcPropertySet;
+    class IfcProxy extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.ProxyType = ProxyType;
+        this.Tag = Tag;
+        this.type = 3219374653;
+      }
+    }
+    IFC2X32.IfcProxy = IfcProxy;
+    class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {
+        super(ProfileType, ProfileName, Position, XDim, YDim);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.WallThickness = WallThickness;
+        this.InnerFilletRadius = InnerFilletRadius;
+        this.OuterFilletRadius = OuterFilletRadius;
+        this.type = 2770003689;
+      }
+    }
+    IFC2X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;
+    class IfcRectangularPyramid extends IfcCsgPrimitive3D {
+      constructor(Position, XLength, YLength, Height) {
+        super(Position);
+        this.Position = Position;
+        this.XLength = XLength;
+        this.YLength = YLength;
+        this.Height = Height;
+        this.type = 2798486643;
+      }
+    }
+    IFC2X32.IfcRectangularPyramid = IfcRectangularPyramid;
+    class IfcRectangularTrimmedSurface extends IfcBoundedSurface {
+      constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.U1 = U1;
+        this.V1 = V1;
+        this.U2 = U2;
+        this.V2 = V2;
+        this.Usense = Usense;
+        this.Vsense = Vsense;
+        this.type = 3454111270;
+      }
+    }
+    IFC2X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;
+    class IfcRelAssigns extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.type = 3939117080;
+      }
+    }
+    IFC2X32.IfcRelAssigns = IfcRelAssigns;
+    class IfcRelAssignsToActor extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingActor = RelatingActor;
+        this.ActingRole = ActingRole;
+        this.type = 1683148259;
+      }
+    }
+    IFC2X32.IfcRelAssignsToActor = IfcRelAssignsToActor;
+    class IfcRelAssignsToControl extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingControl = RelatingControl;
+        this.type = 2495723537;
+      }
+    }
+    IFC2X32.IfcRelAssignsToControl = IfcRelAssignsToControl;
+    class IfcRelAssignsToGroup extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingGroup = RelatingGroup;
+        this.type = 1307041759;
+      }
+    }
+    IFC2X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup;
+    class IfcRelAssignsToProcess extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingProcess = RelatingProcess;
+        this.QuantityInProcess = QuantityInProcess;
+        this.type = 4278684876;
+      }
+    }
+    IFC2X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess;
+    class IfcRelAssignsToProduct extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingProduct = RelatingProduct;
+        this.type = 2857406711;
+      }
+    }
+    IFC2X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct;
+    class IfcRelAssignsToProjectOrder extends IfcRelAssignsToControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingControl = RelatingControl;
+        this.type = 3372526763;
+      }
+    }
+    IFC2X32.IfcRelAssignsToProjectOrder = IfcRelAssignsToProjectOrder;
+    class IfcRelAssignsToResource extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingResource = RelatingResource;
+        this.type = 205026976;
+      }
+    }
+    IFC2X32.IfcRelAssignsToResource = IfcRelAssignsToResource;
+    class IfcRelAssociates extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 1865459582;
+      }
+    }
+    IFC2X32.IfcRelAssociates = IfcRelAssociates;
+    class IfcRelAssociatesAppliedValue extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingAppliedValue) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingAppliedValue = RelatingAppliedValue;
+        this.type = 1327628568;
+      }
+    }
+    IFC2X32.IfcRelAssociatesAppliedValue = IfcRelAssociatesAppliedValue;
+    class IfcRelAssociatesApproval extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingApproval = RelatingApproval;
+        this.type = 4095574036;
+      }
+    }
+    IFC2X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval;
+    class IfcRelAssociatesClassification extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingClassification = RelatingClassification;
+        this.type = 919958153;
+      }
+    }
+    IFC2X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification;
+    class IfcRelAssociatesConstraint extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.Intent = Intent;
+        this.RelatingConstraint = RelatingConstraint;
+        this.type = 2728634034;
+      }
+    }
+    IFC2X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;
+    class IfcRelAssociatesDocument extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingDocument = RelatingDocument;
+        this.type = 982818633;
+      }
+    }
+    IFC2X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument;
+    class IfcRelAssociatesLibrary extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingLibrary = RelatingLibrary;
+        this.type = 3840914261;
+      }
+    }
+    IFC2X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;
+    class IfcRelAssociatesMaterial extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingMaterial = RelatingMaterial;
+        this.type = 2655215786;
+      }
+    }
+    IFC2X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;
+    class IfcRelAssociatesProfileProperties extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileProperties, ProfileSectionLocation, ProfileOrientation) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingProfileProperties = RelatingProfileProperties;
+        this.ProfileSectionLocation = ProfileSectionLocation;
+        this.ProfileOrientation = ProfileOrientation;
+        this.type = 2851387026;
+      }
+    }
+    IFC2X32.IfcRelAssociatesProfileProperties = IfcRelAssociatesProfileProperties;
+    class IfcRelConnects extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 826625072;
+      }
+    }
+    IFC2X32.IfcRelConnects = IfcRelConnects;
+    class IfcRelConnectsElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.type = 1204542856;
+      }
+    }
+    IFC2X32.IfcRelConnectsElements = IfcRelConnectsElements;
+    class IfcRelConnectsPathElements extends IfcRelConnectsElements {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.RelatingPriorities = RelatingPriorities;
+        this.RelatedPriorities = RelatedPriorities;
+        this.RelatedConnectionType = RelatedConnectionType;
+        this.RelatingConnectionType = RelatingConnectionType;
+        this.type = 3945020480;
+      }
+    }
+    IFC2X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements;
+    class IfcRelConnectsPortToElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingPort = RelatingPort;
+        this.RelatedElement = RelatedElement;
+        this.type = 4201705270;
+      }
+    }
+    IFC2X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;
+    class IfcRelConnectsPorts extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingPort = RelatingPort;
+        this.RelatedPort = RelatedPort;
+        this.RealizingElement = RealizingElement;
+        this.type = 3190031847;
+      }
+    }
+    IFC2X32.IfcRelConnectsPorts = IfcRelConnectsPorts;
+    class IfcRelConnectsStructuralActivity extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedStructuralActivity = RelatedStructuralActivity;
+        this.type = 2127690289;
+      }
+    }
+    IFC2X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;
+    class IfcRelConnectsStructuralElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralMember) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedStructuralMember = RelatedStructuralMember;
+        this.type = 3912681535;
+      }
+    }
+    IFC2X32.IfcRelConnectsStructuralElement = IfcRelConnectsStructuralElement;
+    class IfcRelConnectsStructuralMember extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingStructuralMember = RelatingStructuralMember;
+        this.RelatedStructuralConnection = RelatedStructuralConnection;
+        this.AppliedCondition = AppliedCondition;
+        this.AdditionalConditions = AdditionalConditions;
+        this.SupportedLength = SupportedLength;
+        this.ConditionCoordinateSystem = ConditionCoordinateSystem;
+        this.type = 1638771189;
+      }
+    }
+    IFC2X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;
+    class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingStructuralMember = RelatingStructuralMember;
+        this.RelatedStructuralConnection = RelatedStructuralConnection;
+        this.AppliedCondition = AppliedCondition;
+        this.AdditionalConditions = AdditionalConditions;
+        this.SupportedLength = SupportedLength;
+        this.ConditionCoordinateSystem = ConditionCoordinateSystem;
+        this.ConnectionConstraint = ConnectionConstraint;
+        this.type = 504942748;
+      }
+    }
+    IFC2X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;
+    class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.RealizingElements = RealizingElements;
+        this.ConnectionType = ConnectionType;
+        this.type = 3678494232;
+      }
+    }
+    IFC2X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;
+    class IfcRelContainedInSpatialStructure extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedElements = RelatedElements;
+        this.RelatingStructure = RelatingStructure;
+        this.type = 3242617779;
+      }
+    }
+    IFC2X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;
+    class IfcRelCoversBldgElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingBuildingElement = RelatingBuildingElement;
+        this.RelatedCoverings = RelatedCoverings;
+        this.type = 886880790;
+      }
+    }
+    IFC2X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements;
+    class IfcRelCoversSpaces extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedSpace, RelatedCoverings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedSpace = RelatedSpace;
+        this.RelatedCoverings = RelatedCoverings;
+        this.type = 2802773753;
+      }
+    }
+    IFC2X32.IfcRelCoversSpaces = IfcRelCoversSpaces;
+    class IfcRelDecomposes extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingObject = RelatingObject;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 2551354335;
+      }
+    }
+    IFC2X32.IfcRelDecomposes = IfcRelDecomposes;
+    class IfcRelDefines extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 693640335;
+      }
+    }
+    IFC2X32.IfcRelDefines = IfcRelDefines;
+    class IfcRelDefinesByProperties extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingPropertyDefinition = RelatingPropertyDefinition;
+        this.type = 4186316022;
+      }
+    }
+    IFC2X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties;
+    class IfcRelDefinesByType extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingType = RelatingType;
+        this.type = 781010003;
+      }
+    }
+    IFC2X32.IfcRelDefinesByType = IfcRelDefinesByType;
+    class IfcRelFillsElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingOpeningElement = RelatingOpeningElement;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.type = 3940055652;
+      }
+    }
+    IFC2X32.IfcRelFillsElement = IfcRelFillsElement;
+    class IfcRelFlowControlElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedControlElements = RelatedControlElements;
+        this.RelatingFlowElement = RelatingFlowElement;
+        this.type = 279856033;
+      }
+    }
+    IFC2X32.IfcRelFlowControlElements = IfcRelFlowControlElements;
+    class IfcRelInteractionRequirements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, DailyInteraction, ImportanceRating, LocationOfInteraction, RelatedSpaceProgram, RelatingSpaceProgram) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.DailyInteraction = DailyInteraction;
+        this.ImportanceRating = ImportanceRating;
+        this.LocationOfInteraction = LocationOfInteraction;
+        this.RelatedSpaceProgram = RelatedSpaceProgram;
+        this.RelatingSpaceProgram = RelatingSpaceProgram;
+        this.type = 4189434867;
+      }
+    }
+    IFC2X32.IfcRelInteractionRequirements = IfcRelInteractionRequirements;
+    class IfcRelNests extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingObject = RelatingObject;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 3268803585;
+      }
+    }
+    IFC2X32.IfcRelNests = IfcRelNests;
+    class IfcRelOccupiesSpaces extends IfcRelAssignsToActor {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingActor = RelatingActor;
+        this.ActingRole = ActingRole;
+        this.type = 2051452291;
+      }
+    }
+    IFC2X32.IfcRelOccupiesSpaces = IfcRelOccupiesSpaces;
+    class IfcRelOverridesProperties extends IfcRelDefinesByProperties {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition, OverridingProperties) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingPropertyDefinition = RelatingPropertyDefinition;
+        this.OverridingProperties = OverridingProperties;
+        this.type = 202636808;
+      }
+    }
+    IFC2X32.IfcRelOverridesProperties = IfcRelOverridesProperties;
+    class IfcRelProjectsElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedFeatureElement = RelatedFeatureElement;
+        this.type = 750771296;
+      }
+    }
+    IFC2X32.IfcRelProjectsElement = IfcRelProjectsElement;
+    class IfcRelReferencedInSpatialStructure extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedElements = RelatedElements;
+        this.RelatingStructure = RelatingStructure;
+        this.type = 1245217292;
+      }
+    }
+    IFC2X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;
+    class IfcRelSchedulesCostItems extends IfcRelAssignsToControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingControl = RelatingControl;
+        this.type = 1058617721;
+      }
+    }
+    IFC2X32.IfcRelSchedulesCostItems = IfcRelSchedulesCostItems;
+    class IfcRelSequence extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingProcess = RelatingProcess;
+        this.RelatedProcess = RelatedProcess;
+        this.TimeLag = TimeLag;
+        this.SequenceType = SequenceType;
+        this.type = 4122056220;
+      }
+    }
+    IFC2X32.IfcRelSequence = IfcRelSequence;
+    class IfcRelServicesBuildings extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSystem = RelatingSystem;
+        this.RelatedBuildings = RelatedBuildings;
+        this.type = 366585022;
+      }
+    }
+    IFC2X32.IfcRelServicesBuildings = IfcRelServicesBuildings;
+    class IfcRelSpaceBoundary extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;
+        this.InternalOrExternalBoundary = InternalOrExternalBoundary;
+        this.type = 3451746338;
+      }
+    }
+    IFC2X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary;
+    class IfcRelVoidsElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingBuildingElement = RelatingBuildingElement;
+        this.RelatedOpeningElement = RelatedOpeningElement;
+        this.type = 1401173127;
+      }
+    }
+    IFC2X32.IfcRelVoidsElement = IfcRelVoidsElement;
+    class IfcResource extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2914609552;
+      }
+    }
+    IFC2X32.IfcResource = IfcResource;
+    class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, Axis, Angle) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Axis = Axis;
+        this.Angle = Angle;
+        this.type = 1856042241;
+      }
+    }
+    IFC2X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;
+    class IfcRightCircularCone extends IfcCsgPrimitive3D {
+      constructor(Position, Height, BottomRadius) {
+        super(Position);
+        this.Position = Position;
+        this.Height = Height;
+        this.BottomRadius = BottomRadius;
+        this.type = 4158566097;
+      }
+    }
+    IFC2X32.IfcRightCircularCone = IfcRightCircularCone;
+    class IfcRightCircularCylinder extends IfcCsgPrimitive3D {
+      constructor(Position, Height, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Height = Height;
+        this.Radius = Radius;
+        this.type = 3626867408;
+      }
+    }
+    IFC2X32.IfcRightCircularCylinder = IfcRightCircularCylinder;
+    class IfcSpatialStructureElement extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.type = 2706606064;
+      }
+    }
+    IFC2X32.IfcSpatialStructureElement = IfcSpatialStructureElement;
+    class IfcSpatialStructureElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3893378262;
+      }
+    }
+    IFC2X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType;
+    class IfcSphere extends IfcCsgPrimitive3D {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 451544542;
+      }
+    }
+    IFC2X32.IfcSphere = IfcSphere;
+    class IfcStructuralActivity extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 3544373492;
+      }
+    }
+    IFC2X32.IfcStructuralActivity = IfcStructuralActivity;
+    class IfcStructuralItem extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 3136571912;
+      }
+    }
+    IFC2X32.IfcStructuralItem = IfcStructuralItem;
+    class IfcStructuralMember extends IfcStructuralItem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 530289379;
+      }
+    }
+    IFC2X32.IfcStructuralMember = IfcStructuralMember;
+    class IfcStructuralReaction extends IfcStructuralActivity {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 3689010777;
+      }
+    }
+    IFC2X32.IfcStructuralReaction = IfcStructuralReaction;
+    class IfcStructuralSurfaceMember extends IfcStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Thickness = Thickness;
+        this.type = 3979015343;
+      }
+    }
+    IFC2X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;
+    class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness, SubsequentThickness, VaryingThicknessLocation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Thickness = Thickness;
+        this.SubsequentThickness = SubsequentThickness;
+        this.VaryingThicknessLocation = VaryingThicknessLocation;
+        this.type = 2218152070;
+      }
+    }
+    IFC2X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;
+    class IfcStructuredDimensionCallout extends IfcDraughtingCallout {
+      constructor(Contents) {
+        super(Contents);
+        this.Contents = Contents;
+        this.type = 4070609034;
+      }
+    }
+    IFC2X32.IfcStructuredDimensionCallout = IfcStructuredDimensionCallout;
+    class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Directrix = Directrix;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.ReferenceSurface = ReferenceSurface;
+        this.type = 2028607225;
+      }
+    }
+    IFC2X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;
+    class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {
+      constructor(SweptCurve, Position, ExtrudedDirection, Depth) {
+        super(SweptCurve, Position);
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.ExtrudedDirection = ExtrudedDirection;
+        this.Depth = Depth;
+        this.type = 2809605785;
+      }
+    }
+    IFC2X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;
+    class IfcSurfaceOfRevolution extends IfcSweptSurface {
+      constructor(SweptCurve, Position, AxisPosition) {
+        super(SweptCurve, Position);
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.AxisPosition = AxisPosition;
+        this.type = 4124788165;
+      }
+    }
+    IFC2X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;
+    class IfcSystemFurnitureElementType extends IfcFurnishingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1580310250;
+      }
+    }
+    IFC2X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;
+    class IfcTask extends IfcProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TaskId = TaskId;
+        this.Status = Status;
+        this.WorkMethod = WorkMethod;
+        this.IsMilestone = IsMilestone;
+        this.Priority = Priority;
+        this.type = 3473067441;
+      }
+    }
+    IFC2X32.IfcTask = IfcTask;
+    class IfcTransportElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2097647324;
+      }
+    }
+    IFC2X32.IfcTransportElementType = IfcTransportElementType;
+    class IfcActor extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheActor = TheActor;
+        this.type = 2296667514;
+      }
+    }
+    IFC2X32.IfcActor = IfcActor;
+    class IfcAnnotation extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 1674181508;
+      }
+    }
+    IFC2X32.IfcAnnotation = IfcAnnotation;
+    class IfcAsymmetricIShapeProfileDef extends IfcIShapeProfileDef {
+      constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, CentreOfGravityInY) {
+        super(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.OverallWidth = OverallWidth;
+        this.OverallDepth = OverallDepth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.TopFlangeWidth = TopFlangeWidth;
+        this.TopFlangeThickness = TopFlangeThickness;
+        this.TopFlangeFilletRadius = TopFlangeFilletRadius;
+        this.CentreOfGravityInY = CentreOfGravityInY;
+        this.type = 3207858831;
+      }
+    }
+    IFC2X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;
+    class IfcBlock extends IfcCsgPrimitive3D {
+      constructor(Position, XLength, YLength, ZLength) {
+        super(Position);
+        this.Position = Position;
+        this.XLength = XLength;
+        this.YLength = YLength;
+        this.ZLength = ZLength;
+        this.type = 1334484129;
+      }
+    }
+    IFC2X32.IfcBlock = IfcBlock;
+    class IfcBooleanClippingResult extends IfcBooleanResult {
+      constructor(Operator, FirstOperand, SecondOperand) {
+        super(Operator, FirstOperand, SecondOperand);
+        this.Operator = Operator;
+        this.FirstOperand = FirstOperand;
+        this.SecondOperand = SecondOperand;
+        this.type = 3649129432;
+      }
+    }
+    IFC2X32.IfcBooleanClippingResult = IfcBooleanClippingResult;
+    class IfcBoundedCurve extends IfcCurve {
+      constructor() {
+        super();
+        this.type = 1260505505;
+      }
+    }
+    IFC2X32.IfcBoundedCurve = IfcBoundedCurve;
+    class IfcBuilding extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.ElevationOfRefHeight = ElevationOfRefHeight;
+        this.ElevationOfTerrain = ElevationOfTerrain;
+        this.BuildingAddress = BuildingAddress;
+        this.type = 4031249490;
+      }
+    }
+    IFC2X32.IfcBuilding = IfcBuilding;
+    class IfcBuildingElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1950629157;
+      }
+    }
+    IFC2X32.IfcBuildingElementType = IfcBuildingElementType;
+    class IfcBuildingStorey extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.Elevation = Elevation;
+        this.type = 3124254112;
+      }
+    }
+    IFC2X32.IfcBuildingStorey = IfcBuildingStorey;
+    class IfcCircleHollowProfileDef extends IfcCircleProfileDef {
+      constructor(ProfileType, ProfileName, Position, Radius, WallThickness) {
+        super(ProfileType, ProfileName, Position, Radius);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.WallThickness = WallThickness;
+        this.type = 2937912522;
+      }
+    }
+    IFC2X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;
+    class IfcColumnType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 300633059;
+      }
+    }
+    IFC2X32.IfcColumnType = IfcColumnType;
+    class IfcCompositeCurve extends IfcBoundedCurve {
+      constructor(Segments, SelfIntersect) {
+        super();
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 3732776249;
+      }
+    }
+    IFC2X32.IfcCompositeCurve = IfcCompositeCurve;
+    class IfcConic extends IfcCurve {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2510884976;
+      }
+    }
+    IFC2X32.IfcConic = IfcConic;
+    class IfcConstructionResource extends IfcResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ResourceIdentifier = ResourceIdentifier;
+        this.ResourceGroup = ResourceGroup;
+        this.ResourceConsumption = ResourceConsumption;
+        this.BaseQuantity = BaseQuantity;
+        this.type = 2559216714;
+      }
+    }
+    IFC2X32.IfcConstructionResource = IfcConstructionResource;
+    class IfcControl extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 3293443760;
+      }
+    }
+    IFC2X32.IfcControl = IfcControl;
+    class IfcCostItem extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 3895139033;
+      }
+    }
+    IFC2X32.IfcCostItem = IfcCostItem;
+    class IfcCostSchedule extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, SubmittedBy, PreparedBy, SubmittedOn, Status, TargetUsers, UpdateDate, ID, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.SubmittedBy = SubmittedBy;
+        this.PreparedBy = PreparedBy;
+        this.SubmittedOn = SubmittedOn;
+        this.Status = Status;
+        this.TargetUsers = TargetUsers;
+        this.UpdateDate = UpdateDate;
+        this.ID = ID;
+        this.PredefinedType = PredefinedType;
+        this.type = 1419761937;
+      }
+    }
+    IFC2X32.IfcCostSchedule = IfcCostSchedule;
+    class IfcCoveringType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1916426348;
+      }
+    }
+    IFC2X32.IfcCoveringType = IfcCoveringType;
+    class IfcCrewResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ResourceIdentifier = ResourceIdentifier;
+        this.ResourceGroup = ResourceGroup;
+        this.ResourceConsumption = ResourceConsumption;
+        this.BaseQuantity = BaseQuantity;
+        this.type = 3295246426;
+      }
+    }
+    IFC2X32.IfcCrewResource = IfcCrewResource;
+    class IfcCurtainWallType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1457835157;
+      }
+    }
+    IFC2X32.IfcCurtainWallType = IfcCurtainWallType;
+    class IfcDimensionCurveDirectedCallout extends IfcDraughtingCallout {
+      constructor(Contents) {
+        super(Contents);
+        this.Contents = Contents;
+        this.type = 681481545;
+      }
+    }
+    IFC2X32.IfcDimensionCurveDirectedCallout = IfcDimensionCurveDirectedCallout;
+    class IfcDistributionElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3256556792;
+      }
+    }
+    IFC2X32.IfcDistributionElementType = IfcDistributionElementType;
+    class IfcDistributionFlowElementType extends IfcDistributionElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3849074793;
+      }
+    }
+    IFC2X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType;
+    class IfcElectricalBaseProperties extends IfcEnergyProperties {
+      constructor(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence, ElectricCurrentType, InputVoltage, InputFrequency, FullLoadCurrent, MinimumCircuitCurrent, MaximumPowerInput, RatedPowerInput, InputPhase) {
+        super(GlobalId, OwnerHistory, Name, Description, EnergySequence, UserDefinedEnergySequence);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.EnergySequence = EnergySequence;
+        this.UserDefinedEnergySequence = UserDefinedEnergySequence;
+        this.ElectricCurrentType = ElectricCurrentType;
+        this.InputVoltage = InputVoltage;
+        this.InputFrequency = InputFrequency;
+        this.FullLoadCurrent = FullLoadCurrent;
+        this.MinimumCircuitCurrent = MinimumCircuitCurrent;
+        this.MaximumPowerInput = MaximumPowerInput;
+        this.RatedPowerInput = RatedPowerInput;
+        this.InputPhase = InputPhase;
+        this.type = 360485395;
+      }
+    }
+    IFC2X32.IfcElectricalBaseProperties = IfcElectricalBaseProperties;
+    class IfcElement extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1758889154;
+      }
+    }
+    IFC2X32.IfcElement = IfcElement;
+    class IfcElementAssembly extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.AssemblyPlace = AssemblyPlace;
+        this.PredefinedType = PredefinedType;
+        this.type = 4123344466;
+      }
+    }
+    IFC2X32.IfcElementAssembly = IfcElementAssembly;
+    class IfcElementComponent extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1623761950;
+      }
+    }
+    IFC2X32.IfcElementComponent = IfcElementComponent;
+    class IfcElementComponentType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2590856083;
+      }
+    }
+    IFC2X32.IfcElementComponentType = IfcElementComponentType;
+    class IfcEllipse extends IfcConic {
+      constructor(Position, SemiAxis1, SemiAxis2) {
+        super(Position);
+        this.Position = Position;
+        this.SemiAxis1 = SemiAxis1;
+        this.SemiAxis2 = SemiAxis2;
+        this.type = 1704287377;
+      }
+    }
+    IFC2X32.IfcEllipse = IfcEllipse;
+    class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2107101300;
+      }
+    }
+    IFC2X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;
+    class IfcEquipmentElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1962604670;
+      }
+    }
+    IFC2X32.IfcEquipmentElement = IfcEquipmentElement;
+    class IfcEquipmentStandard extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 3272907226;
+      }
+    }
+    IFC2X32.IfcEquipmentStandard = IfcEquipmentStandard;
+    class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3174744832;
+      }
+    }
+    IFC2X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;
+    class IfcEvaporatorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3390157468;
+      }
+    }
+    IFC2X32.IfcEvaporatorType = IfcEvaporatorType;
+    class IfcFacetedBrep extends IfcManifoldSolidBrep {
+      constructor(Outer) {
+        super(Outer);
+        this.Outer = Outer;
+        this.type = 807026263;
+      }
+    }
+    IFC2X32.IfcFacetedBrep = IfcFacetedBrep;
+    class IfcFacetedBrepWithVoids extends IfcManifoldSolidBrep {
+      constructor(Outer, Voids) {
+        super(Outer);
+        this.Outer = Outer;
+        this.Voids = Voids;
+        this.type = 3737207727;
+      }
+    }
+    IFC2X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;
+    class IfcFastener extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 647756555;
+      }
+    }
+    IFC2X32.IfcFastener = IfcFastener;
+    class IfcFastenerType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2489546625;
+      }
+    }
+    IFC2X32.IfcFastenerType = IfcFastenerType;
+    class IfcFeatureElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2827207264;
+      }
+    }
+    IFC2X32.IfcFeatureElement = IfcFeatureElement;
+    class IfcFeatureElementAddition extends IfcFeatureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2143335405;
+      }
+    }
+    IFC2X32.IfcFeatureElementAddition = IfcFeatureElementAddition;
+    class IfcFeatureElementSubtraction extends IfcFeatureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1287392070;
+      }
+    }
+    IFC2X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;
+    class IfcFlowControllerType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3907093117;
+      }
+    }
+    IFC2X32.IfcFlowControllerType = IfcFlowControllerType;
+    class IfcFlowFittingType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3198132628;
+      }
+    }
+    IFC2X32.IfcFlowFittingType = IfcFlowFittingType;
+    class IfcFlowMeterType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3815607619;
+      }
+    }
+    IFC2X32.IfcFlowMeterType = IfcFlowMeterType;
+    class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1482959167;
+      }
+    }
+    IFC2X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;
+    class IfcFlowSegmentType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1834744321;
+      }
+    }
+    IFC2X32.IfcFlowSegmentType = IfcFlowSegmentType;
+    class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1339347760;
+      }
+    }
+    IFC2X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;
+    class IfcFlowTerminalType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2297155007;
+      }
+    }
+    IFC2X32.IfcFlowTerminalType = IfcFlowTerminalType;
+    class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3009222698;
+      }
+    }
+    IFC2X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;
+    class IfcFurnishingElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 263784265;
+      }
+    }
+    IFC2X32.IfcFurnishingElement = IfcFurnishingElement;
+    class IfcFurnitureStandard extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 814719939;
+      }
+    }
+    IFC2X32.IfcFurnitureStandard = IfcFurnitureStandard;
+    class IfcGasTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 200128114;
+      }
+    }
+    IFC2X32.IfcGasTerminalType = IfcGasTerminalType;
+    class IfcGrid extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.UAxes = UAxes;
+        this.VAxes = VAxes;
+        this.WAxes = WAxes;
+        this.type = 3009204131;
+      }
+    }
+    IFC2X32.IfcGrid = IfcGrid;
+    class IfcGroup extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2706460486;
+      }
+    }
+    IFC2X32.IfcGroup = IfcGroup;
+    class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1251058090;
+      }
+    }
+    IFC2X32.IfcHeatExchangerType = IfcHeatExchangerType;
+    class IfcHumidifierType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1806887404;
+      }
+    }
+    IFC2X32.IfcHumidifierType = IfcHumidifierType;
+    class IfcInventory extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, InventoryType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.InventoryType = InventoryType;
+        this.Jurisdiction = Jurisdiction;
+        this.ResponsiblePersons = ResponsiblePersons;
+        this.LastUpdateDate = LastUpdateDate;
+        this.CurrentValue = CurrentValue;
+        this.OriginalValue = OriginalValue;
+        this.type = 2391368822;
+      }
+    }
+    IFC2X32.IfcInventory = IfcInventory;
+    class IfcJunctionBoxType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4288270099;
+      }
+    }
+    IFC2X32.IfcJunctionBoxType = IfcJunctionBoxType;
+    class IfcLaborResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SkillSet) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ResourceIdentifier = ResourceIdentifier;
+        this.ResourceGroup = ResourceGroup;
+        this.ResourceConsumption = ResourceConsumption;
+        this.BaseQuantity = BaseQuantity;
+        this.SkillSet = SkillSet;
+        this.type = 3827777499;
+      }
+    }
+    IFC2X32.IfcLaborResource = IfcLaborResource;
+    class IfcLampType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1051575348;
+      }
+    }
+    IFC2X32.IfcLampType = IfcLampType;
+    class IfcLightFixtureType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1161773419;
+      }
+    }
+    IFC2X32.IfcLightFixtureType = IfcLightFixtureType;
+    class IfcLinearDimension extends IfcDimensionCurveDirectedCallout {
+      constructor(Contents) {
+        super(Contents);
+        this.Contents = Contents;
+        this.type = 2506943328;
+      }
+    }
+    IFC2X32.IfcLinearDimension = IfcLinearDimension;
+    class IfcMechanicalFastener extends IfcFastener {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.NominalDiameter = NominalDiameter;
+        this.NominalLength = NominalLength;
+        this.type = 377706215;
+      }
+    }
+    IFC2X32.IfcMechanicalFastener = IfcMechanicalFastener;
+    class IfcMechanicalFastenerType extends IfcFastenerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2108223431;
+      }
+    }
+    IFC2X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType;
+    class IfcMemberType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3181161470;
+      }
+    }
+    IFC2X32.IfcMemberType = IfcMemberType;
+    class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 977012517;
+      }
+    }
+    IFC2X32.IfcMotorConnectionType = IfcMotorConnectionType;
+    class IfcMove extends IfcTask {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, MoveFrom, MoveTo, PunchList) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TaskId = TaskId;
+        this.Status = Status;
+        this.WorkMethod = WorkMethod;
+        this.IsMilestone = IsMilestone;
+        this.Priority = Priority;
+        this.MoveFrom = MoveFrom;
+        this.MoveTo = MoveTo;
+        this.PunchList = PunchList;
+        this.type = 1916936684;
+      }
+    }
+    IFC2X32.IfcMove = IfcMove;
+    class IfcOccupant extends IfcActor {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheActor = TheActor;
+        this.PredefinedType = PredefinedType;
+        this.type = 4143007308;
+      }
+    }
+    IFC2X32.IfcOccupant = IfcOccupant;
+    class IfcOpeningElement extends IfcFeatureElementSubtraction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3588315303;
+      }
+    }
+    IFC2X32.IfcOpeningElement = IfcOpeningElement;
+    class IfcOrderAction extends IfcTask {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority, ActionID) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, TaskId, Status, WorkMethod, IsMilestone, Priority);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TaskId = TaskId;
+        this.Status = Status;
+        this.WorkMethod = WorkMethod;
+        this.IsMilestone = IsMilestone;
+        this.Priority = Priority;
+        this.ActionID = ActionID;
+        this.type = 3425660407;
+      }
+    }
+    IFC2X32.IfcOrderAction = IfcOrderAction;
+    class IfcOutletType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2837617999;
+      }
+    }
+    IFC2X32.IfcOutletType = IfcOutletType;
+    class IfcPerformanceHistory extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LifeCyclePhase) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LifeCyclePhase = LifeCyclePhase;
+        this.type = 2382730787;
+      }
+    }
+    IFC2X32.IfcPerformanceHistory = IfcPerformanceHistory;
+    class IfcPermit extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PermitID) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PermitID = PermitID;
+        this.type = 3327091369;
+      }
+    }
+    IFC2X32.IfcPermit = IfcPermit;
+    class IfcPipeFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 804291784;
+      }
+    }
+    IFC2X32.IfcPipeFittingType = IfcPipeFittingType;
+    class IfcPipeSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4231323485;
+      }
+    }
+    IFC2X32.IfcPipeSegmentType = IfcPipeSegmentType;
+    class IfcPlateType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4017108033;
+      }
+    }
+    IFC2X32.IfcPlateType = IfcPlateType;
+    class IfcPolyline extends IfcBoundedCurve {
+      constructor(Points) {
+        super();
+        this.Points = Points;
+        this.type = 3724593414;
+      }
+    }
+    IFC2X32.IfcPolyline = IfcPolyline;
+    class IfcPort extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 3740093272;
+      }
+    }
+    IFC2X32.IfcPort = IfcPort;
+    class IfcProcedure extends IfcProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ProcedureID, ProcedureType, UserDefinedProcedureType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ProcedureID = ProcedureID;
+        this.ProcedureType = ProcedureType;
+        this.UserDefinedProcedureType = UserDefinedProcedureType;
+        this.type = 2744685151;
+      }
+    }
+    IFC2X32.IfcProcedure = IfcProcedure;
+    class IfcProjectOrder extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ID, PredefinedType, Status) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ID = ID;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.type = 2904328755;
+      }
+    }
+    IFC2X32.IfcProjectOrder = IfcProjectOrder;
+    class IfcProjectOrderRecord extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Records, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Records = Records;
+        this.PredefinedType = PredefinedType;
+        this.type = 3642467123;
+      }
+    }
+    IFC2X32.IfcProjectOrderRecord = IfcProjectOrderRecord;
+    class IfcProjectionElement extends IfcFeatureElementAddition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3651124850;
+      }
+    }
+    IFC2X32.IfcProjectionElement = IfcProjectionElement;
+    class IfcProtectiveDeviceType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1842657554;
+      }
+    }
+    IFC2X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType;
+    class IfcPumpType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2250791053;
+      }
+    }
+    IFC2X32.IfcPumpType = IfcPumpType;
+    class IfcRadiusDimension extends IfcDimensionCurveDirectedCallout {
+      constructor(Contents) {
+        super(Contents);
+        this.Contents = Contents;
+        this.type = 3248260540;
+      }
+    }
+    IFC2X32.IfcRadiusDimension = IfcRadiusDimension;
+    class IfcRailingType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2893384427;
+      }
+    }
+    IFC2X32.IfcRailingType = IfcRailingType;
+    class IfcRampFlightType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2324767716;
+      }
+    }
+    IFC2X32.IfcRampFlightType = IfcRampFlightType;
+    class IfcRelAggregates extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingObject = RelatingObject;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 160246688;
+      }
+    }
+    IFC2X32.IfcRelAggregates = IfcRelAggregates;
+    class IfcRelAssignsTasks extends IfcRelAssignsToControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl, TimeForTask) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingControl = RelatingControl;
+        this.TimeForTask = TimeForTask;
+        this.type = 2863920197;
+      }
+    }
+    IFC2X32.IfcRelAssignsTasks = IfcRelAssignsTasks;
+    class IfcSanitaryTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1768891740;
+      }
+    }
+    IFC2X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType;
+    class IfcScheduleTimeControl extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ActualStart, EarlyStart, LateStart, ScheduleStart, ActualFinish, EarlyFinish, LateFinish, ScheduleFinish, ScheduleDuration, ActualDuration, RemainingTime, FreeFloat, TotalFloat, IsCritical, StatusTime, StartFloat, FinishFloat, Completion) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ActualStart = ActualStart;
+        this.EarlyStart = EarlyStart;
+        this.LateStart = LateStart;
+        this.ScheduleStart = ScheduleStart;
+        this.ActualFinish = ActualFinish;
+        this.EarlyFinish = EarlyFinish;
+        this.LateFinish = LateFinish;
+        this.ScheduleFinish = ScheduleFinish;
+        this.ScheduleDuration = ScheduleDuration;
+        this.ActualDuration = ActualDuration;
+        this.RemainingTime = RemainingTime;
+        this.FreeFloat = FreeFloat;
+        this.TotalFloat = TotalFloat;
+        this.IsCritical = IsCritical;
+        this.StatusTime = StatusTime;
+        this.StartFloat = StartFloat;
+        this.FinishFloat = FinishFloat;
+        this.Completion = Completion;
+        this.type = 3517283431;
+      }
+    }
+    IFC2X32.IfcScheduleTimeControl = IfcScheduleTimeControl;
+    class IfcServiceLife extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ServiceLifeType, ServiceLifeDuration) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ServiceLifeType = ServiceLifeType;
+        this.ServiceLifeDuration = ServiceLifeDuration;
+        this.type = 4105383287;
+      }
+    }
+    IFC2X32.IfcServiceLife = IfcServiceLife;
+    class IfcSite extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.RefLatitude = RefLatitude;
+        this.RefLongitude = RefLongitude;
+        this.RefElevation = RefElevation;
+        this.LandTitleNumber = LandTitleNumber;
+        this.SiteAddress = SiteAddress;
+        this.type = 4097777520;
+      }
+    }
+    IFC2X32.IfcSite = IfcSite;
+    class IfcSlabType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2533589738;
+      }
+    }
+    IFC2X32.IfcSlabType = IfcSlabType;
+    class IfcSpace extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, InteriorOrExteriorSpace, ElevationWithFlooring) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.InteriorOrExteriorSpace = InteriorOrExteriorSpace;
+        this.ElevationWithFlooring = ElevationWithFlooring;
+        this.type = 3856911033;
+      }
+    }
+    IFC2X32.IfcSpace = IfcSpace;
+    class IfcSpaceHeaterType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1305183839;
+      }
+    }
+    IFC2X32.IfcSpaceHeaterType = IfcSpaceHeaterType;
+    class IfcSpaceProgram extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, SpaceProgramIdentifier, MaxRequiredArea, MinRequiredArea, RequestedLocation, StandardRequiredArea) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.SpaceProgramIdentifier = SpaceProgramIdentifier;
+        this.MaxRequiredArea = MaxRequiredArea;
+        this.MinRequiredArea = MinRequiredArea;
+        this.RequestedLocation = RequestedLocation;
+        this.StandardRequiredArea = StandardRequiredArea;
+        this.type = 652456506;
+      }
+    }
+    IFC2X32.IfcSpaceProgram = IfcSpaceProgram;
+    class IfcSpaceType extends IfcSpatialStructureElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3812236995;
+      }
+    }
+    IFC2X32.IfcSpaceType = IfcSpaceType;
+    class IfcStackTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3112655638;
+      }
+    }
+    IFC2X32.IfcStackTerminalType = IfcStackTerminalType;
+    class IfcStairFlightType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1039846685;
+      }
+    }
+    IFC2X32.IfcStairFlightType = IfcStairFlightType;
+    class IfcStructuralAction extends IfcStructuralActivity {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.CausedBy = CausedBy;
+        this.type = 682877961;
+      }
+    }
+    IFC2X32.IfcStructuralAction = IfcStructuralAction;
+    class IfcStructuralConnection extends IfcStructuralItem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.type = 1179482911;
+      }
+    }
+    IFC2X32.IfcStructuralConnection = IfcStructuralConnection;
+    class IfcStructuralCurveConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.type = 4243806635;
+      }
+    }
+    IFC2X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection;
+    class IfcStructuralCurveMember extends IfcStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.type = 214636428;
+      }
+    }
+    IFC2X32.IfcStructuralCurveMember = IfcStructuralCurveMember;
+    class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.type = 2445595289;
+      }
+    }
+    IFC2X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;
+    class IfcStructuralLinearAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.CausedBy = CausedBy;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.type = 1807405624;
+      }
+    }
+    IFC2X32.IfcStructuralLinearAction = IfcStructuralLinearAction;
+    class IfcStructuralLinearActionVarying extends IfcStructuralLinearAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.CausedBy = CausedBy;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation;
+        this.SubsequentAppliedLoads = SubsequentAppliedLoads;
+        this.type = 1721250024;
+      }
+    }
+    IFC2X32.IfcStructuralLinearActionVarying = IfcStructuralLinearActionVarying;
+    class IfcStructuralLoadGroup extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.ActionType = ActionType;
+        this.ActionSource = ActionSource;
+        this.Coefficient = Coefficient;
+        this.Purpose = Purpose;
+        this.type = 1252848954;
+      }
+    }
+    IFC2X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup;
+    class IfcStructuralPlanarAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.CausedBy = CausedBy;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.type = 1621171031;
+      }
+    }
+    IFC2X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction;
+    class IfcStructuralPlanarActionVarying extends IfcStructuralPlanarAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue, VaryingAppliedLoadLocation, SubsequentAppliedLoads) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy, ProjectedOrTrue);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.CausedBy = CausedBy;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.VaryingAppliedLoadLocation = VaryingAppliedLoadLocation;
+        this.SubsequentAppliedLoads = SubsequentAppliedLoads;
+        this.type = 3987759626;
+      }
+    }
+    IFC2X32.IfcStructuralPlanarActionVarying = IfcStructuralPlanarActionVarying;
+    class IfcStructuralPointAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, CausedBy);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.CausedBy = CausedBy;
+        this.type = 2082059205;
+      }
+    }
+    IFC2X32.IfcStructuralPointAction = IfcStructuralPointAction;
+    class IfcStructuralPointConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.type = 734778138;
+      }
+    }
+    IFC2X32.IfcStructuralPointConnection = IfcStructuralPointConnection;
+    class IfcStructuralPointReaction extends IfcStructuralReaction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 1235345126;
+      }
+    }
+    IFC2X32.IfcStructuralPointReaction = IfcStructuralPointReaction;
+    class IfcStructuralResultGroup extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheoryType = TheoryType;
+        this.ResultForLoadGroup = ResultForLoadGroup;
+        this.IsLinear = IsLinear;
+        this.type = 2986769608;
+      }
+    }
+    IFC2X32.IfcStructuralResultGroup = IfcStructuralResultGroup;
+    class IfcStructuralSurfaceConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.type = 1975003073;
+      }
+    }
+    IFC2X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;
+    class IfcSubContractResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, SubContractor, JobDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ResourceIdentifier = ResourceIdentifier;
+        this.ResourceGroup = ResourceGroup;
+        this.ResourceConsumption = ResourceConsumption;
+        this.BaseQuantity = BaseQuantity;
+        this.SubContractor = SubContractor;
+        this.JobDescription = JobDescription;
+        this.type = 148013059;
+      }
+    }
+    IFC2X32.IfcSubContractResource = IfcSubContractResource;
+    class IfcSwitchingDeviceType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2315554128;
+      }
+    }
+    IFC2X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType;
+    class IfcSystem extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2254336722;
+      }
+    }
+    IFC2X32.IfcSystem = IfcSystem;
+    class IfcTankType extends IfcFlowStorageDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 5716631;
+      }
+    }
+    IFC2X32.IfcTankType = IfcTankType;
+    class IfcTimeSeriesSchedule extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ApplicableDates, TimeSeriesScheduleType, TimeSeries) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ApplicableDates = ApplicableDates;
+        this.TimeSeriesScheduleType = TimeSeriesScheduleType;
+        this.TimeSeries = TimeSeries;
+        this.type = 1637806684;
+      }
+    }
+    IFC2X32.IfcTimeSeriesSchedule = IfcTimeSeriesSchedule;
+    class IfcTransformerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1692211062;
+      }
+    }
+    IFC2X32.IfcTransformerType = IfcTransformerType;
+    class IfcTransportElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OperationType, CapacityByWeight, CapacityByNumber) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OperationType = OperationType;
+        this.CapacityByWeight = CapacityByWeight;
+        this.CapacityByNumber = CapacityByNumber;
+        this.type = 1620046519;
+      }
+    }
+    IFC2X32.IfcTransportElement = IfcTransportElement;
+    class IfcTrimmedCurve extends IfcBoundedCurve {
+      constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.Trim1 = Trim1;
+        this.Trim2 = Trim2;
+        this.SenseAgreement = SenseAgreement;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 3593883385;
+      }
+    }
+    IFC2X32.IfcTrimmedCurve = IfcTrimmedCurve;
+    class IfcTubeBundleType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1600972822;
+      }
+    }
+    IFC2X32.IfcTubeBundleType = IfcTubeBundleType;
+    class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1911125066;
+      }
+    }
+    IFC2X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;
+    class IfcValveType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 728799441;
+      }
+    }
+    IFC2X32.IfcValveType = IfcValveType;
+    class IfcVirtualElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2769231204;
+      }
+    }
+    IFC2X32.IfcVirtualElement = IfcVirtualElement;
+    class IfcWallType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1898987631;
+      }
+    }
+    IFC2X32.IfcWallType = IfcWallType;
+    class IfcWasteTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1133259667;
+      }
+    }
+    IFC2X32.IfcWasteTerminalType = IfcWasteTerminalType;
+    class IfcWorkControl extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identifier = Identifier;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.WorkControlType = WorkControlType;
+        this.UserDefinedControlType = UserDefinedControlType;
+        this.type = 1028945134;
+      }
+    }
+    IFC2X32.IfcWorkControl = IfcWorkControl;
+    class IfcWorkPlan extends IfcWorkControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identifier = Identifier;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.WorkControlType = WorkControlType;
+        this.UserDefinedControlType = UserDefinedControlType;
+        this.type = 4218914973;
+      }
+    }
+    IFC2X32.IfcWorkPlan = IfcWorkPlan;
+    class IfcWorkSchedule extends IfcWorkControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identifier, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, WorkControlType, UserDefinedControlType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identifier = Identifier;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.WorkControlType = WorkControlType;
+        this.UserDefinedControlType = UserDefinedControlType;
+        this.type = 3342526732;
+      }
+    }
+    IFC2X32.IfcWorkSchedule = IfcWorkSchedule;
+    class IfcZone extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 1033361043;
+      }
+    }
+    IFC2X32.IfcZone = IfcZone;
+    class Ifc2DCompositeCurve extends IfcCompositeCurve {
+      constructor(Segments, SelfIntersect) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 1213861670;
+      }
+    }
+    IFC2X32.Ifc2DCompositeCurve = Ifc2DCompositeCurve;
+    class IfcActionRequest extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, RequestID) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.RequestID = RequestID;
+        this.type = 3821786052;
+      }
+    }
+    IFC2X32.IfcActionRequest = IfcActionRequest;
+    class IfcAirTerminalBoxType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1411407467;
+      }
+    }
+    IFC2X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType;
+    class IfcAirTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3352864051;
+      }
+    }
+    IFC2X32.IfcAirTerminalType = IfcAirTerminalType;
+    class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1871374353;
+      }
+    }
+    IFC2X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;
+    class IfcAngularDimension extends IfcDimensionCurveDirectedCallout {
+      constructor(Contents) {
+        super(Contents);
+        this.Contents = Contents;
+        this.type = 2470393545;
+      }
+    }
+    IFC2X32.IfcAngularDimension = IfcAngularDimension;
+    class IfcAsset extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, AssetID, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.AssetID = AssetID;
+        this.OriginalValue = OriginalValue;
+        this.CurrentValue = CurrentValue;
+        this.TotalReplacementCost = TotalReplacementCost;
+        this.Owner = Owner;
+        this.User = User;
+        this.ResponsiblePerson = ResponsiblePerson;
+        this.IncorporationDate = IncorporationDate;
+        this.DepreciatedValue = DepreciatedValue;
+        this.type = 3460190687;
+      }
+    }
+    IFC2X32.IfcAsset = IfcAsset;
+    class IfcBSplineCurve extends IfcBoundedCurve {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {
+        super();
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 1967976161;
+      }
+    }
+    IFC2X32.IfcBSplineCurve = IfcBSplineCurve;
+    class IfcBeamType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 819618141;
+      }
+    }
+    IFC2X32.IfcBeamType = IfcBeamType;
+    class IfcBezierCurve extends IfcBSplineCurve {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {
+        super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 1916977116;
+      }
+    }
+    IFC2X32.IfcBezierCurve = IfcBezierCurve;
+    class IfcBoilerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 231477066;
+      }
+    }
+    IFC2X32.IfcBoilerType = IfcBoilerType;
+    class IfcBuildingElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3299480353;
+      }
+    }
+    IFC2X32.IfcBuildingElement = IfcBuildingElement;
+    class IfcBuildingElementComponent extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 52481810;
+      }
+    }
+    IFC2X32.IfcBuildingElementComponent = IfcBuildingElementComponent;
+    class IfcBuildingElementPart extends IfcBuildingElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2979338954;
+      }
+    }
+    IFC2X32.IfcBuildingElementPart = IfcBuildingElementPart;
+    class IfcBuildingElementProxy extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, CompositionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.CompositionType = CompositionType;
+        this.type = 1095909175;
+      }
+    }
+    IFC2X32.IfcBuildingElementProxy = IfcBuildingElementProxy;
+    class IfcBuildingElementProxyType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1909888760;
+      }
+    }
+    IFC2X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType;
+    class IfcCableCarrierFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 395041908;
+      }
+    }
+    IFC2X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType;
+    class IfcCableCarrierSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3293546465;
+      }
+    }
+    IFC2X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;
+    class IfcCableSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1285652485;
+      }
+    }
+    IFC2X32.IfcCableSegmentType = IfcCableSegmentType;
+    class IfcChillerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2951183804;
+      }
+    }
+    IFC2X32.IfcChillerType = IfcChillerType;
+    class IfcCircle extends IfcConic {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 2611217952;
+      }
+    }
+    IFC2X32.IfcCircle = IfcCircle;
+    class IfcCoilType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2301859152;
+      }
+    }
+    IFC2X32.IfcCoilType = IfcCoilType;
+    class IfcColumn extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 843113511;
+      }
+    }
+    IFC2X32.IfcColumn = IfcColumn;
+    class IfcCompressorType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3850581409;
+      }
+    }
+    IFC2X32.IfcCompressorType = IfcCompressorType;
+    class IfcCondenserType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2816379211;
+      }
+    }
+    IFC2X32.IfcCondenserType = IfcCondenserType;
+    class IfcCondition extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2188551683;
+      }
+    }
+    IFC2X32.IfcCondition = IfcCondition;
+    class IfcConditionCriterion extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Criterion, CriterionDateTime) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Criterion = Criterion;
+        this.CriterionDateTime = CriterionDateTime;
+        this.type = 1163958913;
+      }
+    }
+    IFC2X32.IfcConditionCriterion = IfcConditionCriterion;
+    class IfcConstructionEquipmentResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ResourceIdentifier = ResourceIdentifier;
+        this.ResourceGroup = ResourceGroup;
+        this.ResourceConsumption = ResourceConsumption;
+        this.BaseQuantity = BaseQuantity;
+        this.type = 3898045240;
+      }
+    }
+    IFC2X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;
+    class IfcConstructionMaterialResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity, Suppliers, UsageRatio) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ResourceIdentifier = ResourceIdentifier;
+        this.ResourceGroup = ResourceGroup;
+        this.ResourceConsumption = ResourceConsumption;
+        this.BaseQuantity = BaseQuantity;
+        this.Suppliers = Suppliers;
+        this.UsageRatio = UsageRatio;
+        this.type = 1060000209;
+      }
+    }
+    IFC2X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource;
+    class IfcConstructionProductResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ResourceIdentifier, ResourceGroup, ResourceConsumption, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ResourceIdentifier = ResourceIdentifier;
+        this.ResourceGroup = ResourceGroup;
+        this.ResourceConsumption = ResourceConsumption;
+        this.BaseQuantity = BaseQuantity;
+        this.type = 488727124;
+      }
+    }
+    IFC2X32.IfcConstructionProductResource = IfcConstructionProductResource;
+    class IfcCooledBeamType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 335055490;
+      }
+    }
+    IFC2X32.IfcCooledBeamType = IfcCooledBeamType;
+    class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2954562838;
+      }
+    }
+    IFC2X32.IfcCoolingTowerType = IfcCoolingTowerType;
+    class IfcCovering extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1973544240;
+      }
+    }
+    IFC2X32.IfcCovering = IfcCovering;
+    class IfcCurtainWall extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3495092785;
+      }
+    }
+    IFC2X32.IfcCurtainWall = IfcCurtainWall;
+    class IfcDamperType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3961806047;
+      }
+    }
+    IFC2X32.IfcDamperType = IfcDamperType;
+    class IfcDiameterDimension extends IfcDimensionCurveDirectedCallout {
+      constructor(Contents) {
+        super(Contents);
+        this.Contents = Contents;
+        this.type = 4147604152;
+      }
+    }
+    IFC2X32.IfcDiameterDimension = IfcDiameterDimension;
+    class IfcDiscreteAccessory extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1335981549;
+      }
+    }
+    IFC2X32.IfcDiscreteAccessory = IfcDiscreteAccessory;
+    class IfcDiscreteAccessoryType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2635815018;
+      }
+    }
+    IFC2X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;
+    class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1599208980;
+      }
+    }
+    IFC2X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType;
+    class IfcDistributionControlElementType extends IfcDistributionElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2063403501;
+      }
+    }
+    IFC2X32.IfcDistributionControlElementType = IfcDistributionControlElementType;
+    class IfcDistributionElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1945004755;
+      }
+    }
+    IFC2X32.IfcDistributionElement = IfcDistributionElement;
+    class IfcDistributionFlowElement extends IfcDistributionElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3040386961;
+      }
+    }
+    IFC2X32.IfcDistributionFlowElement = IfcDistributionFlowElement;
+    class IfcDistributionPort extends IfcPort {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.FlowDirection = FlowDirection;
+        this.type = 3041715199;
+      }
+    }
+    IFC2X32.IfcDistributionPort = IfcDistributionPort;
+    class IfcDoor extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OverallHeight = OverallHeight;
+        this.OverallWidth = OverallWidth;
+        this.type = 395920057;
+      }
+    }
+    IFC2X32.IfcDoor = IfcDoor;
+    class IfcDuctFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 869906466;
+      }
+    }
+    IFC2X32.IfcDuctFittingType = IfcDuctFittingType;
+    class IfcDuctSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3760055223;
+      }
+    }
+    IFC2X32.IfcDuctSegmentType = IfcDuctSegmentType;
+    class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2030761528;
+      }
+    }
+    IFC2X32.IfcDuctSilencerType = IfcDuctSilencerType;
+    class IfcEdgeFeature extends IfcFeatureElementSubtraction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.FeatureLength = FeatureLength;
+        this.type = 855621170;
+      }
+    }
+    IFC2X32.IfcEdgeFeature = IfcEdgeFeature;
+    class IfcElectricApplianceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 663422040;
+      }
+    }
+    IFC2X32.IfcElectricApplianceType = IfcElectricApplianceType;
+    class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3277789161;
+      }
+    }
+    IFC2X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;
+    class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1534661035;
+      }
+    }
+    IFC2X32.IfcElectricGeneratorType = IfcElectricGeneratorType;
+    class IfcElectricHeaterType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1365060375;
+      }
+    }
+    IFC2X32.IfcElectricHeaterType = IfcElectricHeaterType;
+    class IfcElectricMotorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1217240411;
+      }
+    }
+    IFC2X32.IfcElectricMotorType = IfcElectricMotorType;
+    class IfcElectricTimeControlType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 712377611;
+      }
+    }
+    IFC2X32.IfcElectricTimeControlType = IfcElectricTimeControlType;
+    class IfcElectricalCircuit extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 1634875225;
+      }
+    }
+    IFC2X32.IfcElectricalCircuit = IfcElectricalCircuit;
+    class IfcElectricalElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 857184966;
+      }
+    }
+    IFC2X32.IfcElectricalElement = IfcElectricalElement;
+    class IfcEnergyConversionDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1658829314;
+      }
+    }
+    IFC2X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice;
+    class IfcFanType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 346874300;
+      }
+    }
+    IFC2X32.IfcFanType = IfcFanType;
+    class IfcFilterType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1810631287;
+      }
+    }
+    IFC2X32.IfcFilterType = IfcFilterType;
+    class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4222183408;
+      }
+    }
+    IFC2X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;
+    class IfcFlowController extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2058353004;
+      }
+    }
+    IFC2X32.IfcFlowController = IfcFlowController;
+    class IfcFlowFitting extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 4278956645;
+      }
+    }
+    IFC2X32.IfcFlowFitting = IfcFlowFitting;
+    class IfcFlowInstrumentType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4037862832;
+      }
+    }
+    IFC2X32.IfcFlowInstrumentType = IfcFlowInstrumentType;
+    class IfcFlowMovingDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3132237377;
+      }
+    }
+    IFC2X32.IfcFlowMovingDevice = IfcFlowMovingDevice;
+    class IfcFlowSegment extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 987401354;
+      }
+    }
+    IFC2X32.IfcFlowSegment = IfcFlowSegment;
+    class IfcFlowStorageDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 707683696;
+      }
+    }
+    IFC2X32.IfcFlowStorageDevice = IfcFlowStorageDevice;
+    class IfcFlowTerminal extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2223149337;
+      }
+    }
+    IFC2X32.IfcFlowTerminal = IfcFlowTerminal;
+    class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3508470533;
+      }
+    }
+    IFC2X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;
+    class IfcFooting extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 900683007;
+      }
+    }
+    IFC2X32.IfcFooting = IfcFooting;
+    class IfcMember extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1073191201;
+      }
+    }
+    IFC2X32.IfcMember = IfcMember;
+    class IfcPile extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.ConstructionType = ConstructionType;
+        this.type = 1687234759;
+      }
+    }
+    IFC2X32.IfcPile = IfcPile;
+    class IfcPlate extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3171933400;
+      }
+    }
+    IFC2X32.IfcPlate = IfcPlate;
+    class IfcRailing extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2262370178;
+      }
+    }
+    IFC2X32.IfcRailing = IfcRailing;
+    class IfcRamp extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.ShapeType = ShapeType;
+        this.type = 3024970846;
+      }
+    }
+    IFC2X32.IfcRamp = IfcRamp;
+    class IfcRampFlight extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3283111854;
+      }
+    }
+    IFC2X32.IfcRampFlight = IfcRampFlight;
+    class IfcRationalBezierCurve extends IfcBezierCurve {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, WeightsData) {
+        super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.WeightsData = WeightsData;
+        this.type = 3055160366;
+      }
+    }
+    IFC2X32.IfcRationalBezierCurve = IfcRationalBezierCurve;
+    class IfcReinforcingElement extends IfcBuildingElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.type = 3027567501;
+      }
+    }
+    IFC2X32.IfcReinforcingElement = IfcReinforcingElement;
+    class IfcReinforcingMesh extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.MeshLength = MeshLength;
+        this.MeshWidth = MeshWidth;
+        this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;
+        this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;
+        this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;
+        this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;
+        this.LongitudinalBarSpacing = LongitudinalBarSpacing;
+        this.TransverseBarSpacing = TransverseBarSpacing;
+        this.type = 2320036040;
+      }
+    }
+    IFC2X32.IfcReinforcingMesh = IfcReinforcingMesh;
+    class IfcRoof extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.ShapeType = ShapeType;
+        this.type = 2016517767;
+      }
+    }
+    IFC2X32.IfcRoof = IfcRoof;
+    class IfcRoundedEdgeFeature extends IfcEdgeFeature {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Radius) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.FeatureLength = FeatureLength;
+        this.Radius = Radius;
+        this.type = 1376911519;
+      }
+    }
+    IFC2X32.IfcRoundedEdgeFeature = IfcRoundedEdgeFeature;
+    class IfcSensorType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1783015770;
+      }
+    }
+    IFC2X32.IfcSensorType = IfcSensorType;
+    class IfcSlab extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1529196076;
+      }
+    }
+    IFC2X32.IfcSlab = IfcSlab;
+    class IfcStair extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ShapeType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.ShapeType = ShapeType;
+        this.type = 331165859;
+      }
+    }
+    IFC2X32.IfcStair = IfcStair;
+    class IfcStairFlight extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRiser, NumberOfTreads, RiserHeight, TreadLength) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.NumberOfRiser = NumberOfRiser;
+        this.NumberOfTreads = NumberOfTreads;
+        this.RiserHeight = RiserHeight;
+        this.TreadLength = TreadLength;
+        this.type = 4252922144;
+      }
+    }
+    IFC2X32.IfcStairFlight = IfcStairFlight;
+    class IfcStructuralAnalysisModel extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.OrientationOf2DPlane = OrientationOf2DPlane;
+        this.LoadedBy = LoadedBy;
+        this.HasResults = HasResults;
+        this.type = 2515109513;
+      }
+    }
+    IFC2X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;
+    class IfcTendon extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.TensionForce = TensionForce;
+        this.PreStress = PreStress;
+        this.FrictionCoefficient = FrictionCoefficient;
+        this.AnchorageSlip = AnchorageSlip;
+        this.MinCurvatureRadius = MinCurvatureRadius;
+        this.type = 3824725483;
+      }
+    }
+    IFC2X32.IfcTendon = IfcTendon;
+    class IfcTendonAnchor extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.type = 2347447852;
+      }
+    }
+    IFC2X32.IfcTendonAnchor = IfcTendonAnchor;
+    class IfcVibrationIsolatorType extends IfcDiscreteAccessoryType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3313531582;
+      }
+    }
+    IFC2X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType;
+    class IfcWall extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2391406946;
+      }
+    }
+    IFC2X32.IfcWall = IfcWall;
+    class IfcWallStandardCase extends IfcWall {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3512223829;
+      }
+    }
+    IFC2X32.IfcWallStandardCase = IfcWallStandardCase;
+    class IfcWindow extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OverallHeight = OverallHeight;
+        this.OverallWidth = OverallWidth;
+        this.type = 3304561284;
+      }
+    }
+    IFC2X32.IfcWindow = IfcWindow;
+    class IfcActuatorType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2874132201;
+      }
+    }
+    IFC2X32.IfcActuatorType = IfcActuatorType;
+    class IfcAlarmType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3001207471;
+      }
+    }
+    IFC2X32.IfcAlarmType = IfcAlarmType;
+    class IfcBeam extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 753842376;
+      }
+    }
+    IFC2X32.IfcBeam = IfcBeam;
+    class IfcChamferEdgeFeature extends IfcEdgeFeature {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength, Width, Height) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, FeatureLength);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.FeatureLength = FeatureLength;
+        this.Width = Width;
+        this.Height = Height;
+        this.type = 2454782716;
+      }
+    }
+    IFC2X32.IfcChamferEdgeFeature = IfcChamferEdgeFeature;
+    class IfcControllerType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 578613899;
+      }
+    }
+    IFC2X32.IfcControllerType = IfcControllerType;
+    class IfcDistributionChamberElement extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1052013943;
+      }
+    }
+    IFC2X32.IfcDistributionChamberElement = IfcDistributionChamberElement;
+    class IfcDistributionControlElement extends IfcDistributionElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, ControlElementId) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.ControlElementId = ControlElementId;
+        this.type = 1062813311;
+      }
+    }
+    IFC2X32.IfcDistributionControlElement = IfcDistributionControlElement;
+    class IfcElectricDistributionPoint extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, DistributionPointFunction, UserDefinedFunction) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.DistributionPointFunction = DistributionPointFunction;
+        this.UserDefinedFunction = UserDefinedFunction;
+        this.type = 3700593921;
+      }
+    }
+    IFC2X32.IfcElectricDistributionPoint = IfcElectricDistributionPoint;
+    class IfcReinforcingBar extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, BarRole, BarSurface) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.BarLength = BarLength;
+        this.BarRole = BarRole;
+        this.BarSurface = BarSurface;
+        this.type = 979691226;
+      }
+    }
+    IFC2X32.IfcReinforcingBar = IfcReinforcingBar;
+  })(IFC2X3 || (IFC2X3 = {}));
+  SchemaNames[2] = ["IFC4", "IFC4X1", "IFC4X2"];
+  FromRawLineData[2] = {
+    3630933823: (v) => new IFC4.IfcActorRole(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value)),
+    618182010: (v) => new IFC4.IfcAddress(v[0], !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),
+    639542469: (v) => new IFC4.IfcApplication(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcLabel(!v[1] ? null : v[1].value), new IFC4.IfcLabel(!v[2] ? null : v[2].value), new IFC4.IfcIdentifier(!v[3] ? null : v[3].value)),
+    411424972: (v) => {
+      var _a;
+      return new IFC4.IfcAppliedValue(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    130549933: (v) => new IFC4.IfcApproval(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    4037036970: (v) => new IFC4.IfcBoundaryCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    1560379544: (v) => new IFC4.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])),
+    3367102660: (v) => new IFC4.IfcBoundaryFaceCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3])),
+    1387855156: (v) => new IFC4.IfcBoundaryNodeCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6])),
+    2069777674: (v) => new IFC4.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(2, v[1]), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : TypeInitialiser(2, v[5]), !v[6] ? null : TypeInitialiser(2, v[6]), !v[7] ? null : TypeInitialiser(2, v[7])),
+    2859738748: (_) => new IFC4.IfcConnectionGeometry(),
+    2614616156: (v) => new IFC4.IfcConnectionPointGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    2732653382: (v) => new IFC4.IfcConnectionSurfaceGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    775493141: (v) => new IFC4.IfcConnectionVolumeGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    1959218052: (v) => new IFC4.IfcConstraint(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value)),
+    1785450214: (v) => new IFC4.IfcCoordinateOperation(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1466758467: (v) => new IFC4.IfcCoordinateReferenceSystem(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcIdentifier(!v[3] ? null : v[3].value)),
+    602808272: (v) => {
+      var _a;
+      return new IFC4.IfcCostValue(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1765591967: (v) => {
+      var _a;
+      return new IFC4.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    1045800335: (v) => new IFC4.IfcDerivedUnitElement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),
+    2949456006: (v) => new IFC4.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),
+    4294318154: (_) => new IFC4.IfcExternalInformation(),
+    3200245327: (v) => new IFC4.IfcExternalReference(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),
+    2242383968: (v) => new IFC4.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),
+    1040185647: (v) => new IFC4.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),
+    3548104201: (v) => new IFC4.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),
+    852622518: (v) => new IFC4.IfcGridAxis(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4.IfcBoolean(!v[2] ? null : v[2].value)),
+    3020489413: (v) => {
+      var _a;
+      return new IFC4.IfcIrregularTimeSeriesValue(new IFC4.IfcDateTime(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []);
+    },
+    2655187982: (v) => new IFC4.IfcLibraryInformation(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcURIReference(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcText(!v[5] ? null : v[5].value)),
+    3452421091: (v) => new IFC4.IfcLibraryReference(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLanguageId(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),
+    4162380809: (v) => {
+      var _a, _b;
+      return new IFC4.IfcLightDistributionData(new IFC4.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []);
+    },
+    1566485204: (v) => {
+      var _a;
+      return new IFC4.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3057273783: (v) => new IFC4.IfcMapConversion(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcReal(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcReal(!v[7] ? null : v[7].value)),
+    1847130766: (v) => {
+      var _a;
+      return new IFC4.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));
+    },
+    760658860: (_) => new IFC4.IfcMaterialDefinition(),
+    248100487: (v) => new IFC4.IfcMaterialLayer(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcInteger(!v[6] ? null : v[6].value)),
+    3303938423: (v) => {
+      var _a;
+      return new IFC4.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value));
+    },
+    1847252529: (v) => new IFC4.IfcMaterialLayerWithOffsets(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcInteger(!v[6] ? null : v[6].value), v[7], new IFC4.IfcLengthMeasure(!v[8] ? null : v[8].value)),
+    2199411900: (v) => {
+      var _a;
+      return new IFC4.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2235152071: (v) => new IFC4.IfcMaterialProfile(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value)),
+    164193824: (v) => {
+      var _a;
+      return new IFC4.IfcMaterialProfileSet(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    552965576: (v) => new IFC4.IfcMaterialProfileWithOffsets(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), new IFC4.IfcLengthMeasure(!v[6] ? null : v[6].value)),
+    1507914824: (_) => new IFC4.IfcMaterialUsageDefinition(),
+    2597039031: (v) => new IFC4.IfcMeasureWithUnit(TypeInitialiser(2, v[0]), new Handle(!v[1] ? null : v[1].value)),
+    3368373690: (v) => new IFC4.IfcMetric(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),
+    2706619895: (v) => new IFC4.IfcMonetaryUnit(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    1918398963: (v) => new IFC4.IfcNamedUnit(new Handle(!v[0] ? null : v[0].value), v[1]),
+    3701648758: (_) => new IFC4.IfcObjectPlacement(),
+    2251480897: (v) => {
+      var _a;
+      return new IFC4.IfcObjective(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[8], v[9], !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value));
+    },
+    4251960020: (v) => {
+      var _a, _b;
+      return new IFC4.IfcOrganization(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1207048766: (v) => new IFC4.IfcOwnerHistory(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC4.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4.IfcTimeStamp(!v[7] ? null : v[7].value)),
+    2077209135: (v) => {
+      var _a, _b, _c, _d, _e;
+      return new IFC4.IfcPerson(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    101040310: (v) => {
+      var _a;
+      return new IFC4.IfcPersonAndOrganization(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2483315170: (v) => new IFC4.IfcPhysicalQuantity(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value)),
+    2226359599: (v) => new IFC4.IfcPhysicalSimpleQuantity(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    3355820592: (v) => {
+      var _a;
+      return new IFC4.IfcPostalAddress(v[0], !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcLabel(!v[9] ? null : v[9].value));
+    },
+    677532197: (_) => new IFC4.IfcPresentationItem(),
+    2022622350: (v) => {
+      var _a;
+      return new IFC4.IfcPresentationLayerAssignment(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4.IfcIdentifier(!v[3] ? null : v[3].value));
+    },
+    1304840413: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPresentationLayerWithStyle(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4.IfcIdentifier(!v[3] ? null : v[3].value), new IFC4.IfcLogical(!v[4] ? null : v[4].value), new IFC4.IfcLogical(!v[5] ? null : v[5].value), new IFC4.IfcLogical(!v[6] ? null : v[6].value), !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3119450353: (v) => new IFC4.IfcPresentationStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    2417041796: (v) => {
+      var _a;
+      return new IFC4.IfcPresentationStyleAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2095639259: (v) => {
+      var _a;
+      return new IFC4.IfcProductRepresentation(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3958567839: (v) => new IFC4.IfcProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value)),
+    3843373140: (v) => new IFC4.IfcProjectedCRS(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    986844984: (_) => new IFC4.IfcPropertyAbstraction(),
+    3710013099: (v) => {
+      var _a;
+      return new IFC4.IfcPropertyEnumeration(new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[2] ? null : new Handle(!v[2] ? null : v[2].value));
+    },
+    2044713172: (v) => new IFC4.IfcQuantityArea(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcAreaMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    2093928680: (v) => new IFC4.IfcQuantityCount(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcCountMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    931644368: (v) => new IFC4.IfcQuantityLength(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    3252649465: (v) => new IFC4.IfcQuantityTime(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcTimeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    2405470396: (v) => new IFC4.IfcQuantityVolume(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcVolumeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    825690147: (v) => new IFC4.IfcQuantityWeight(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcMassMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    3915482550: (v) => {
+      var _a, _b, _c, _d;
+      return new IFC4.IfcRecurrencePattern(v[0], !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcDayInMonthNumber(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcDayInWeekNumber(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcMonthInYearNumber(p.value) : null)) || [], !v[4] ? null : new IFC4.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcInteger(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcInteger(!v[6] ? null : v[6].value), !v[7] ? null : ((_d = v[7]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2433181523: (v) => {
+      var _a;
+      return new IFC4.IfcReference(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], !v[4] ? null : new Handle(!v[4] ? null : v[4].value));
+    },
+    1076942058: (v) => {
+      var _a;
+      return new IFC4.IfcRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3377609919: (v) => new IFC4.IfcRepresentationContext(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value)),
+    3008791417: (_) => new IFC4.IfcRepresentationItem(),
+    1660063152: (v) => new IFC4.IfcRepresentationMap(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    2439245199: (v) => new IFC4.IfcResourceLevelRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value)),
+    2341007311: (v) => new IFC4.IfcRoot(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    448429030: (v) => new IFC4.IfcSIUnit(v[0], v[1], v[2]),
+    1054537805: (v) => new IFC4.IfcSchedulingTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),
+    867548509: (v) => {
+      var _a;
+      return new IFC4.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), new IFC4.IfcLogical(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value));
+    },
+    3982875396: (v) => {
+      var _a;
+      return new IFC4.IfcShapeModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    4240577450: (v) => {
+      var _a;
+      return new IFC4.IfcShapeRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2273995522: (v) => new IFC4.IfcStructuralConnectionCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    2162789131: (v) => new IFC4.IfcStructuralLoad(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    3478079324: (v) => {
+      var _a, _b;
+      return new IFC4.IfcStructuralLoadConfiguration(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcLengthMeasure(p2.value) : null)) || []));
+    },
+    609421318: (v) => new IFC4.IfcStructuralLoadOrResult(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    2525727697: (v) => new IFC4.IfcStructuralLoadStatic(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    3408363356: (v) => new IFC4.IfcStructuralLoadTemperature(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)),
+    2830218821: (v) => {
+      var _a;
+      return new IFC4.IfcStyleModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3958052878: (v) => {
+      var _a;
+      return new IFC4.IfcStyledItem(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    3049322572: (v) => {
+      var _a;
+      return new IFC4.IfcStyledRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2934153892: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSurfaceReinforcementArea(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLengthMeasure(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLengthMeasure(p.value) : null)) || [], !v[3] ? null : new IFC4.IfcRatioMeasure(!v[3] ? null : v[3].value));
+    },
+    1300840506: (v) => {
+      var _a;
+      return new IFC4.IfcSurfaceStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3303107099: (v) => new IFC4.IfcSurfaceStyleLighting(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    1607154358: (v) => new IFC4.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC4.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcReal(!v[1] ? null : v[1].value)),
+    846575682: (v) => new IFC4.IfcSurfaceStyleShading(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)),
+    1351298697: (v) => {
+      var _a;
+      return new IFC4.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    626085974: (v) => {
+      var _a;
+      return new IFC4.IfcSurfaceTexture(new IFC4.IfcBoolean(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || []);
+    },
+    985171141: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTable(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2043862942: (v) => new IFC4.IfcTableColumn(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    531007025: (v) => {
+      var _a;
+      return new IFC4.IfcTableRow(!v[0] ? null : ((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[1] ? null : new IFC4.IfcBoolean(!v[1] ? null : v[1].value));
+    },
+    1549132990: (v) => new IFC4.IfcTaskTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value)),
+    2771591690: (v) => new IFC4.IfcTaskTimeRecurring(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value), new Handle(!v[20] ? null : v[20].value)),
+    912023232: (v) => {
+      var _a, _b, _c, _d;
+      return new IFC4.IfcTelecomAddress(v[0], !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcURIReference(!v[7] ? null : v[7].value), !v[8] ? null : ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcURIReference(p.value) : null)) || []);
+    },
+    1447204868: (v) => new IFC4.IfcTextStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcBoolean(!v[4] ? null : v[4].value)),
+    2636378356: (v) => new IFC4.IfcTextStyleForDefinedFont(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    1640371178: (v) => new IFC4.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(2, v[0]), !v[1] ? null : new IFC4.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : TypeInitialiser(2, v[4]), !v[5] ? null : new IFC4.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(2, v[6])),
+    280115917: (v) => {
+      var _a;
+      return new IFC4.IfcTextureCoordinate(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1742049831: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTextureCoordinateGenerator(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcReal(p.value) : null)) || []);
+    },
+    2552916305: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[2] ? null : v[2].value));
+    },
+    1210645708: (v) => {
+      var _a;
+      return new IFC4.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || []);
+    },
+    3611470254: (v) => {
+      var _a;
+      return new IFC4.IfcTextureVertexList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcParameterValue(p2.value) : null)) || []));
+    },
+    1199560280: (v) => new IFC4.IfcTimePeriod(new IFC4.IfcTime(!v[0] ? null : v[0].value), new IFC4.IfcTime(!v[1] ? null : v[1].value)),
+    3101149627: (v) => new IFC4.IfcTimeSeries(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new IFC4.IfcDateTime(!v[2] ? null : v[2].value), new IFC4.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    581633288: (v) => {
+      var _a;
+      return new IFC4.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []);
+    },
+    1377556343: (_) => new IFC4.IfcTopologicalRepresentationItem(),
+    1735638870: (v) => {
+      var _a;
+      return new IFC4.IfcTopologyRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    180925521: (v) => {
+      var _a;
+      return new IFC4.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2799835756: (_) => new IFC4.IfcVertex(),
+    1907098498: (v) => new IFC4.IfcVertexPoint(new Handle(!v[0] ? null : v[0].value)),
+    891718957: (v) => {
+      var _a, _b;
+      return new IFC4.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLengthMeasure(p.value) : null)) || []);
+    },
+    1236880293: (v) => new IFC4.IfcWorkTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDate(!v[5] ? null : v[5].value)),
+    3869604511: (v) => {
+      var _a;
+      return new IFC4.IfcApprovalRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3798115385: (v) => new IFC4.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1310608509: (v) => new IFC4.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2705031697: (v) => {
+      var _a;
+      return new IFC4.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    616511568: (v) => {
+      var _a;
+      return new IFC4.IfcBlobTexture(new IFC4.IfcBoolean(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || [], new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcBinary(!v[6] ? null : v[6].value));
+    },
+    3150382593: (v) => new IFC4.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    747523909: (v) => {
+      var _a;
+      return new IFC4.IfcClassification(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcDate(!v[2] ? null : v[2].value), new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcURIReference(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || []);
+    },
+    647927063: (v) => new IFC4.IfcClassificationReference(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value)),
+    3285139300: (v) => {
+      var _a;
+      return new IFC4.IfcColourRgbList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcNormalisedRatioMeasure(p2.value) : null)) || []));
+    },
+    3264961684: (v) => new IFC4.IfcColourSpecification(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    1485152156: (v) => {
+      var _a;
+      return new IFC4.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value));
+    },
+    370225590: (v) => {
+      var _a;
+      return new IFC4.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1981873012: (v) => new IFC4.IfcConnectionCurveGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    45288368: (v) => new IFC4.IfcConnectionPointEccentricity(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLengthMeasure(!v[4] ? null : v[4].value)),
+    3050246964: (v) => new IFC4.IfcContextDependentUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4.IfcLabel(!v[2] ? null : v[2].value)),
+    2889183280: (v) => new IFC4.IfcConversionBasedUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    2713554722: (v) => new IFC4.IfcConversionBasedUnitWithOffset(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), new IFC4.IfcReal(!v[4] ? null : v[4].value)),
+    539742890: (v) => new IFC4.IfcCurrencyRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), new IFC4.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    3800577675: (v) => new IFC4.IfcCurveStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcBoolean(!v[4] ? null : v[4].value)),
+    1105321065: (v) => {
+      var _a;
+      return new IFC4.IfcCurveStyleFont(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2367409068: (v) => new IFC4.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)),
+    3510044353: (v) => new IFC4.IfcCurveStyleFontPattern(new IFC4.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    3632507154: (v) => new IFC4.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    1154170062: (v) => {
+      var _a;
+      return new IFC4.IfcDocumentInformation(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcURIReference(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new IFC4.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcIdentifier(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcDate(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcDate(!v[14] ? null : v[14].value), v[15], v[16]);
+    },
+    770865208: (v) => {
+      var _a;
+      return new IFC4.IfcDocumentInformationRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value));
+    },
+    3732053477: (v) => new IFC4.IfcDocumentReference(!v[0] ? null : new IFC4.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    3900360178: (v) => new IFC4.IfcEdge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    476780140: (v) => new IFC4.IfcEdgeCurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcBoolean(!v[3] ? null : v[3].value)),
+    211053100: (v) => new IFC4.IfcEventTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcDateTime(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcDateTime(!v[6] ? null : v[6].value)),
+    297599258: (v) => {
+      var _a;
+      return new IFC4.IfcExtendedProperties(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1437805879: (v) => {
+      var _a;
+      return new IFC4.IfcExternalReferenceRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2556980723: (v) => {
+      var _a;
+      return new IFC4.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1809719519: (v) => new IFC4.IfcFaceBound(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value)),
+    803316827: (v) => new IFC4.IfcFaceOuterBound(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value)),
+    3008276851: (v) => {
+      var _a;
+      return new IFC4.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new IFC4.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    4219587988: (v) => new IFC4.IfcFailureConnectionCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcForceMeasure(!v[6] ? null : v[6].value)),
+    738692330: (v) => {
+      var _a;
+      return new IFC4.IfcFillAreaStyle(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    3448662350: (v) => new IFC4.IfcGeometricRepresentationContext(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new IFC4.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),
+    2453401579: (_) => new IFC4.IfcGeometricRepresentationItem(),
+    4142052618: (v) => new IFC4.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcPositiveRatioMeasure(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value)),
+    3590301190: (v) => {
+      var _a;
+      return new IFC4.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    178086475: (v) => new IFC4.IfcGridPlacement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    812098782: (v) => new IFC4.IfcHalfSpaceSolid(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value)),
+    3905492369: (v) => {
+      var _a;
+      return new IFC4.IfcImageTexture(new IFC4.IfcBoolean(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || [], new IFC4.IfcURIReference(!v[5] ? null : v[5].value));
+    },
+    3570813810: (v) => {
+      var _a;
+      return new IFC4.IfcIndexedColourMap(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || []);
+    },
+    1437953363: (v) => {
+      var _a;
+      return new IFC4.IfcIndexedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value));
+    },
+    2133299955: (v) => {
+      var _a, _b;
+      return new IFC4.IfcIndexedTriangleTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcPositiveInteger(p2.value) : null)) || []));
+    },
+    3741457305: (v) => {
+      var _a;
+      return new IFC4.IfcIrregularTimeSeries(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new IFC4.IfcDateTime(!v[2] ? null : v[2].value), new IFC4.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1585845231: (v) => new IFC4.IfcLagTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), TypeInitialiser(2, v[3]), v[4]),
+    1402838566: (v) => new IFC4.IfcLightSource(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    125510826: (v) => new IFC4.IfcLightSourceAmbient(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    2604431987: (v) => new IFC4.IfcLightSourceDirectional(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),
+    4266656042: (v) => new IFC4.IfcLightSourceGoniometric(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC4.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC4.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle(!v[9] ? null : v[9].value)),
+    1520743889: (v) => new IFC4.IfcLightSourcePositional(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcReal(!v[6] ? null : v[6].value), new IFC4.IfcReal(!v[7] ? null : v[7].value), new IFC4.IfcReal(!v[8] ? null : v[8].value)),
+    3422422726: (v) => new IFC4.IfcLightSourceSpot(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcReal(!v[6] ? null : v[6].value), new IFC4.IfcReal(!v[7] ? null : v[7].value), new IFC4.IfcReal(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcReal(!v[10] ? null : v[10].value), new IFC4.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC4.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)),
+    2624227202: (v) => new IFC4.IfcLocalPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1008929658: (_) => new IFC4.IfcLoop(),
+    2347385850: (v) => new IFC4.IfcMappedItem(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1838606355: (v) => new IFC4.IfcMaterial(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value)),
+    3708119e3: (v) => new IFC4.IfcMaterialConstituent(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    2852063980: (v) => {
+      var _a;
+      return new IFC4.IfcMaterialConstituentSet(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2022407955: (v) => {
+      var _a;
+      return new IFC4.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    1303795690: (v) => new IFC4.IfcMaterialLayerSetUsage(new Handle(!v[0] ? null : v[0].value), v[1], v[2], new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    3079605661: (v) => new IFC4.IfcMaterialProfileSetUsage(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    3404854881: (v) => new IFC4.IfcMaterialProfileSetUsageTapering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcCardinalPointReference(!v[4] ? null : v[4].value)),
+    3265635763: (v) => {
+      var _a;
+      return new IFC4.IfcMaterialProperties(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    853536259: (v) => {
+      var _a;
+      return new IFC4.IfcMaterialRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value));
+    },
+    2998442950: (v) => new IFC4.IfcMirroredProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLabel(!v[3] ? null : v[3].value)),
+    219451334: (v) => new IFC4.IfcObjectDefinition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    2665983363: (v) => {
+      var _a;
+      return new IFC4.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1411181986: (v) => {
+      var _a;
+      return new IFC4.IfcOrganizationRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1029017970: (v) => new IFC4.IfcOrientedEdge(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value)),
+    2529465313: (v) => new IFC4.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    2519244187: (v) => {
+      var _a;
+      return new IFC4.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3021840470: (v) => {
+      var _a;
+      return new IFC4.IfcPhysicalComplexQuantity(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value));
+    },
+    597895409: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPixelTexture(new IFC4.IfcBoolean(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcIdentifier(p.value) : null)) || [], new IFC4.IfcInteger(!v[5] ? null : v[5].value), new IFC4.IfcInteger(!v[6] ? null : v[6].value), new IFC4.IfcInteger(!v[7] ? null : v[7].value), ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcBinary(p.value) : null)) || []);
+    },
+    2004835150: (v) => new IFC4.IfcPlacement(new Handle(!v[0] ? null : v[0].value)),
+    1663979128: (v) => new IFC4.IfcPlanarExtent(new IFC4.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value)),
+    2067069095: (_) => new IFC4.IfcPoint(),
+    4022376103: (v) => new IFC4.IfcPointOnCurve(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcParameterValue(!v[1] ? null : v[1].value)),
+    1423911732: (v) => new IFC4.IfcPointOnSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4.IfcParameterValue(!v[2] ? null : v[2].value)),
+    2924175390: (v) => {
+      var _a;
+      return new IFC4.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2775532180: (v) => new IFC4.IfcPolygonalBoundedHalfSpace(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    3727388367: (v) => new IFC4.IfcPreDefinedItem(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    3778827333: (_) => new IFC4.IfcPreDefinedProperties(),
+    1775413392: (v) => new IFC4.IfcPreDefinedTextFont(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    673634403: (v) => {
+      var _a;
+      return new IFC4.IfcProductDefinitionShape(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2802850158: (v) => {
+      var _a;
+      return new IFC4.IfcProfileProperties(!v[0] ? null : new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    2598011224: (v) => new IFC4.IfcProperty(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value)),
+    1680319473: (v) => new IFC4.IfcPropertyDefinition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    148025276: (v) => new IFC4.IfcPropertyDependencyRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value)),
+    3357820518: (v) => new IFC4.IfcPropertySetDefinition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    1482703590: (v) => new IFC4.IfcPropertyTemplateDefinition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    2090586900: (v) => new IFC4.IfcQuantitySet(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    3615266464: (v) => new IFC4.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    3413951693: (v) => {
+      var _a;
+      return new IFC4.IfcRegularTimeSeries(new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new IFC4.IfcDateTime(!v[2] ? null : v[2].value), new IFC4.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new IFC4.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1580146022: (v) => new IFC4.IfcReinforcementBarProperties(new IFC4.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC4.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcCountMeasure(!v[5] ? null : v[5].value)),
+    478536968: (v) => new IFC4.IfcRelationship(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    2943643501: (v) => {
+      var _a;
+      return new IFC4.IfcResourceApprovalRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    1608871552: (v) => {
+      var _a;
+      return new IFC4.IfcResourceConstraintRelationship(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1042787934: (v) => new IFC4.IfcResourceTime(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcDuration(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcDuration(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveRatioMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcDateTime(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4.IfcPositiveRatioMeasure(!v[17] ? null : v[17].value)),
+    2778083089: (v) => new IFC4.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)),
+    2042790032: (v) => new IFC4.IfcSectionProperties(v[0], new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    4165799628: (v) => {
+      var _a;
+      return new IFC4.IfcSectionReinforcementProperties(new IFC4.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1509187699: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSectionedSpine(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    4124623270: (v) => {
+      var _a;
+      return new IFC4.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3692461612: (v) => new IFC4.IfcSimpleProperty(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value)),
+    2609359061: (v) => new IFC4.IfcSlippageConnectionCondition(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    723233188: (_) => new IFC4.IfcSolidModel(),
+    1595516126: (v) => new IFC4.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)),
+    2668620305: (v) => new IFC4.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)),
+    2473145415: (v) => new IFC4.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)),
+    1973038258: (v) => new IFC4.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcCurvatureMeasure(!v[7] ? null : v[7].value)),
+    1597423693: (v) => new IFC4.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcTorqueMeasure(!v[6] ? null : v[6].value)),
+    1190533807: (v) => new IFC4.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)),
+    2233826070: (v) => new IFC4.IfcSubedge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2513912981: (_) => new IFC4.IfcSurface(),
+    1878645084: (v) => new IFC4.IfcSurfaceStyleRendering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(2, v[7]), v[8]),
+    2247615214: (v) => new IFC4.IfcSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    1260650574: (v) => new IFC4.IfcSweptDiskSolid(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(!v[4] ? null : v[4].value)),
+    1096409881: (v) => new IFC4.IfcSweptDiskSolidPolygonal(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)),
+    230924584: (v) => new IFC4.IfcSweptSurface(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    3071757647: (v) => new IFC4.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value)),
+    901063453: (_) => new IFC4.IfcTessellatedItem(),
+    4282788508: (v) => new IFC4.IfcTextLiteral(new IFC4.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2]),
+    3124975700: (v) => new IFC4.IfcTextLiteralWithExtent(new IFC4.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], new Handle(!v[3] ? null : v[3].value), new IFC4.IfcBoxAlignment(!v[4] ? null : v[4].value)),
+    1983826977: (v) => {
+      var _a;
+      return new IFC4.IfcTextStyleFontModel(new IFC4.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC4.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(2, v[5]));
+    },
+    2715220739: (v) => new IFC4.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcLengthMeasure(!v[6] ? null : v[6].value)),
+    1628702193: (v) => {
+      var _a;
+      return new IFC4.IfcTypeObject(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3736923433: (v) => {
+      var _a;
+      return new IFC4.IfcTypeProcess(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2347495698: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTypeProduct(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value));
+    },
+    3698973494: (v) => {
+      var _a;
+      return new IFC4.IfcTypeResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    427810014: (v) => new IFC4.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)),
+    1417489154: (v) => new IFC4.IfcVector(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value)),
+    2759199220: (v) => new IFC4.IfcVertexLoop(new Handle(!v[0] ? null : v[0].value)),
+    1299126871: (v) => {
+      var _a, _b;
+      return new IFC4.IfcWindowStyle(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], new IFC4.IfcBoolean(!v[10] ? null : v[10].value), new IFC4.IfcBoolean(!v[11] ? null : v[11].value));
+    },
+    2543172580: (v) => new IFC4.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value)),
+    3406155212: (v) => {
+      var _a;
+      return new IFC4.IfcAdvancedFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new IFC4.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    669184980: (v) => {
+      var _a;
+      return new IFC4.IfcAnnotationFillArea(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3207858831: (v) => new IFC4.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPlaneAngleMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcPlaneAngleMeasure(!v[14] ? null : v[14].value)),
+    4261334040: (v) => new IFC4.IfcAxis1Placement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    3125803723: (v) => new IFC4.IfcAxis2Placement2D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    2740243338: (v) => new IFC4.IfcAxis2Placement3D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    2736907675: (v) => new IFC4.IfcBooleanResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    4182860854: (_) => new IFC4.IfcBoundedSurface(),
+    2581212453: (v) => new IFC4.IfcBoundingBox(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2713105998: (v) => new IFC4.IfcBoxedHalfSpace(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2898889636: (v) => new IFC4.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)),
+    1123145078: (v) => {
+      var _a;
+      return new IFC4.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcLengthMeasure(p.value) : null)) || []);
+    },
+    574549367: (_) => new IFC4.IfcCartesianPointList(),
+    1675464909: (v) => {
+      var _a;
+      return new IFC4.IfcCartesianPointList2D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcLengthMeasure(p2.value) : null)) || []));
+    },
+    2059837836: (v) => {
+      var _a;
+      return new IFC4.IfcCartesianPointList3D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcLengthMeasure(p2.value) : null)) || []));
+    },
+    59481748: (v) => new IFC4.IfcCartesianTransformationOperator(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value)),
+    3749851601: (v) => new IFC4.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value)),
+    3486308946: (v) => new IFC4.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcReal(!v[4] ? null : v[4].value)),
+    3331915920: (v) => new IFC4.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    1416205885: (v) => new IFC4.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcReal(!v[6] ? null : v[6].value)),
+    1383045692: (v) => new IFC4.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2205249479: (v) => {
+      var _a;
+      return new IFC4.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    776857604: (v) => new IFC4.IfcColourRgb(!v[0] ? null : new IFC4.IfcLabel(!v[0] ? null : v[0].value), new IFC4.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC4.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC4.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    2542286263: (v) => {
+      var _a;
+      return new IFC4.IfcComplexProperty(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), new IFC4.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2485617015: (v) => new IFC4.IfcCompositeCurveSegment(v[0], new IFC4.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2574617495: (v) => {
+      var _a, _b;
+      return new IFC4.IfcConstructionResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value));
+    },
+    3419103109: (v) => {
+      var _a;
+      return new IFC4.IfcContext(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));
+    },
+    1815067380: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCrewResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    2506170314: (v) => new IFC4.IfcCsgPrimitive3D(new Handle(!v[0] ? null : v[0].value)),
+    2147822146: (v) => new IFC4.IfcCsgSolid(new Handle(!v[0] ? null : v[0].value)),
+    2601014836: (_) => new IFC4.IfcCurve(),
+    2827736869: (v) => {
+      var _a;
+      return new IFC4.IfcCurveBoundedPlane(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2629017746: (v) => {
+      var _a;
+      return new IFC4.IfcCurveBoundedSurface(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    32440307: (v) => {
+      var _a;
+      return new IFC4.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcReal(p.value) : null)) || []);
+    },
+    526551008: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDoorStyle(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], new IFC4.IfcBoolean(!v[10] ? null : v[10].value), new IFC4.IfcBoolean(!v[11] ? null : v[11].value));
+    },
+    1472233963: (v) => {
+      var _a;
+      return new IFC4.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1883228015: (v) => {
+      var _a;
+      return new IFC4.IfcElementQuantity(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    339256511: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2777663545: (v) => new IFC4.IfcElementarySurface(new Handle(!v[0] ? null : v[0].value)),
+    2835456948: (v) => new IFC4.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    4024345920: (v) => {
+      var _a;
+      return new IFC4.IfcEventType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcLabel(!v[11] ? null : v[11].value));
+    },
+    477187591: (v) => new IFC4.IfcExtrudedAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2804161546: (v) => new IFC4.IfcExtrudedAreaSolidTapered(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),
+    2047409740: (v) => {
+      var _a;
+      return new IFC4.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    374418227: (v) => new IFC4.IfcFillAreaStyleHatching(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC4.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)),
+    315944413: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFillAreaStyleTiles(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value));
+    },
+    2652556860: (v) => new IFC4.IfcFixedReferenceSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    4238390223: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFurnishingElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1268542332: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFurnitureType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10]);
+    },
+    4095422895: (v) => {
+      var _a, _b;
+      return new IFC4.IfcGeographicElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    987898635: (v) => {
+      var _a;
+      return new IFC4.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1484403080: (v) => new IFC4.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)),
+    178912537: (v) => {
+      var _a;
+      return new IFC4.IfcIndexedPolygonalFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || []);
+    },
+    2294589976: (v) => {
+      var _a, _b;
+      return new IFC4.IfcIndexedPolygonalFaceWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || [], (_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcPositiveInteger(p2.value) : null)) || []));
+    },
+    572779678: (v) => new IFC4.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value)),
+    428585644: (v) => {
+      var _a, _b;
+      return new IFC4.IfcLaborResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    1281925730: (v) => new IFC4.IfcLine(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1425443689: (v) => new IFC4.IfcManifoldSolidBrep(new Handle(!v[0] ? null : v[0].value)),
+    3888040117: (v) => new IFC4.IfcObject(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    3388369263: (v) => new IFC4.IfcOffsetCurve2D(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcLogical(!v[2] ? null : v[2].value)),
+    3505215534: (v) => new IFC4.IfcOffsetCurve3D(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcLogical(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    1682466193: (v) => new IFC4.IfcPcurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    603570806: (v) => new IFC4.IfcPlanarBox(new IFC4.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    220341763: (v) => new IFC4.IfcPlane(new Handle(!v[0] ? null : v[0].value)),
+    759155922: (v) => new IFC4.IfcPreDefinedColour(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    2559016684: (v) => new IFC4.IfcPreDefinedCurveFont(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    3967405729: (v) => new IFC4.IfcPreDefinedPropertySet(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    569719735: (v) => {
+      var _a;
+      return new IFC4.IfcProcedureType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2945172077: (v) => new IFC4.IfcProcess(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value)),
+    4208778838: (v) => new IFC4.IfcProduct(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    103090709: (v) => {
+      var _a;
+      return new IFC4.IfcProject(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));
+    },
+    653396225: (v) => {
+      var _a;
+      return new IFC4.IfcProjectLibrary(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));
+    },
+    871118103: (v) => new IFC4.IfcPropertyBoundedValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : TypeInitialiser(2, v[3]), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : TypeInitialiser(2, v[5])),
+    4166981789: (v) => {
+      var _a;
+      return new IFC4.IfcPropertyEnumeratedValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    2752243245: (v) => {
+      var _a;
+      return new IFC4.IfcPropertyListValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    941946838: (v) => new IFC4.IfcPropertyReferenceValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),
+    1451395588: (v) => {
+      var _a;
+      return new IFC4.IfcPropertySet(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    492091185: (v) => {
+      var _a;
+      return new IFC4.IfcPropertySetTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3650150729: (v) => new IFC4.IfcPropertySingleValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(2, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),
+    110355661: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPropertyTableValue(new IFC4.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[4] ? null : new IFC4.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]);
+    },
+    3521284610: (v) => new IFC4.IfcPropertyTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    3219374653: (v) => new IFC4.IfcProxy(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value)),
+    2770003689: (v) => new IFC4.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)),
+    2798486643: (v) => new IFC4.IfcRectangularPyramid(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    3454111270: (v) => new IFC4.IfcRectangularTrimmedSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4.IfcParameterValue(!v[2] ? null : v[2].value), new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), new IFC4.IfcParameterValue(!v[4] ? null : v[4].value), new IFC4.IfcBoolean(!v[5] ? null : v[5].value), new IFC4.IfcBoolean(!v[6] ? null : v[6].value)),
+    3765753017: (v) => {
+      var _a;
+      return new IFC4.IfcReinforcementDefinitionProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3939117080: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssigns(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5]);
+    },
+    1683148259: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssignsToActor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    2495723537: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssignsToControl(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    1307041759: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssignsToGroup(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    1027710054: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssignsToGroupByFactor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), new IFC4.IfcRatioMeasure(!v[7] ? null : v[7].value));
+    },
+    4278684876: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssignsToProcess(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    2857406711: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssignsToProduct(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    205026976: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssignsToResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    1865459582: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssociates(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    4095574036: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssociatesApproval(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    919958153: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssociatesClassification(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    2728634034: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssociatesConstraint(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value));
+    },
+    982818633: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssociatesDocument(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    3840914261: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssociatesLibrary(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    2655215786: (v) => {
+      var _a;
+      return new IFC4.IfcRelAssociatesMaterial(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    826625072: (v) => new IFC4.IfcRelConnects(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    1204542856: (v) => new IFC4.IfcRelConnectsElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value)),
+    3945020480: (v) => {
+      var _a, _b;
+      return new IFC4.IfcRelConnectsPathElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], v[9], v[10]);
+    },
+    4201705270: (v) => new IFC4.IfcRelConnectsPortToElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    3190031847: (v) => new IFC4.IfcRelConnectsPorts(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    2127690289: (v) => new IFC4.IfcRelConnectsStructuralActivity(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1638771189: (v) => new IFC4.IfcRelConnectsStructuralMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),
+    504942748: (v) => new IFC4.IfcRelConnectsWithEccentricity(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), new Handle(!v[10] ? null : v[10].value)),
+    3678494232: (v) => {
+      var _a;
+      return new IFC4.IfcRelConnectsWithRealizingElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3242617779: (v) => {
+      var _a;
+      return new IFC4.IfcRelContainedInSpatialStructure(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    886880790: (v) => {
+      var _a;
+      return new IFC4.IfcRelCoversBldgElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2802773753: (v) => {
+      var _a;
+      return new IFC4.IfcRelCoversSpaces(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2565941209: (v) => {
+      var _a;
+      return new IFC4.IfcRelDeclares(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2551354335: (v) => new IFC4.IfcRelDecomposes(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    693640335: (v) => new IFC4.IfcRelDefines(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value)),
+    1462361463: (v) => {
+      var _a;
+      return new IFC4.IfcRelDefinesByObject(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    4186316022: (v) => {
+      var _a;
+      return new IFC4.IfcRelDefinesByProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    307848117: (v) => {
+      var _a;
+      return new IFC4.IfcRelDefinesByTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    781010003: (v) => {
+      var _a;
+      return new IFC4.IfcRelDefinesByType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    3940055652: (v) => new IFC4.IfcRelFillsElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    279856033: (v) => {
+      var _a;
+      return new IFC4.IfcRelFlowControlElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    427948657: (v) => new IFC4.IfcRelInterferesElements(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : v[8].value),
+    3268803585: (v) => {
+      var _a;
+      return new IFC4.IfcRelNests(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    750771296: (v) => new IFC4.IfcRelProjectsElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1245217292: (v) => {
+      var _a;
+      return new IFC4.IfcRelReferencedInSpatialStructure(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    4122056220: (v) => new IFC4.IfcRelSequence(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value)),
+    366585022: (v) => {
+      var _a;
+      return new IFC4.IfcRelServicesBuildings(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3451746338: (v) => new IFC4.IfcRelSpaceBoundary(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8]),
+    3523091289: (v) => new IFC4.IfcRelSpaceBoundary1stLevel(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),
+    1521410863: (v) => new IFC4.IfcRelSpaceBoundary2ndLevel(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),
+    1401173127: (v) => new IFC4.IfcRelVoidsElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    816062949: (v) => new IFC4.IfcReparametrisedCompositeCurveSegment(v[0], new IFC4.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcParameterValue(!v[3] ? null : v[3].value)),
+    2914609552: (v) => new IFC4.IfcResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value)),
+    1856042241: (v) => new IFC4.IfcRevolvedAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)),
+    3243963512: (v) => new IFC4.IfcRevolvedAreaSolidTapered(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),
+    4158566097: (v) => new IFC4.IfcRightCircularCone(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    3626867408: (v) => new IFC4.IfcRightCircularCylinder(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    3663146110: (v) => new IFC4.IfcSimplePropertyTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value), v[11]),
+    1412071761: (v) => new IFC4.IfcSpatialElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value)),
+    710998568: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSpatialElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2706606064: (v) => new IFC4.IfcSpatialStructureElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8]),
+    3893378262: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSpatialStructureElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    463610769: (v) => new IFC4.IfcSpatialZone(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8]),
+    2481509218: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSpatialZoneType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value));
+    },
+    451544542: (v) => new IFC4.IfcSphere(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    4015995234: (v) => new IFC4.IfcSphericalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    3544373492: (v) => new IFC4.IfcStructuralActivity(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    3136571912: (v) => new IFC4.IfcStructuralItem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    530289379: (v) => new IFC4.IfcStructuralMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    3689010777: (v) => new IFC4.IfcStructuralReaction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    3979015343: (v) => new IFC4.IfcStructuralSurfaceMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),
+    2218152070: (v) => new IFC4.IfcStructuralSurfaceMemberVarying(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),
+    603775116: (v) => new IFC4.IfcStructuralSurfaceReaction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], v[9]),
+    4095615324: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSubContractResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    699246055: (v) => {
+      var _a;
+      return new IFC4.IfcSurfaceCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);
+    },
+    2028607225: (v) => new IFC4.IfcSurfaceCurveSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcParameterValue(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    2809605785: (v) => new IFC4.IfcSurfaceOfLinearExtrusion(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    4124788165: (v) => new IFC4.IfcSurfaceOfRevolution(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1580310250: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSystemFurnitureElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3473067441: (v) => new IFC4.IfcTask(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), new IFC4.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcInteger(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), v[12]),
+    3206491090: (v) => {
+      var _a;
+      return new IFC4.IfcTaskType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value));
+    },
+    2387106220: (v) => new IFC4.IfcTessellatedFaceSet(new Handle(!v[0] ? null : v[0].value)),
+    1935646853: (v) => new IFC4.IfcToroidalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    2097647324: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTransportElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2916149573: (v) => {
+      var _a, _b, _c;
+      return new IFC4.IfcTriangulatedFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : (_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcParameterValue(p2.value) : null)) || []), !v[2] ? null : new IFC4.IfcBoolean(!v[2] ? null : v[2].value), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || []);
+    },
+    336235671: (v) => new IFC4.IfcWindowLiningProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcLengthMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcLengthMeasure(!v[15] ? null : v[15].value)),
+    512836454: (v) => new IFC4.IfcWindowPanelProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    2296667514: (v) => new IFC4.IfcActor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1635779807: (v) => new IFC4.IfcAdvancedBrep(new Handle(!v[0] ? null : v[0].value)),
+    2603310189: (v) => {
+      var _a;
+      return new IFC4.IfcAdvancedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1674181508: (v) => new IFC4.IfcAnnotation(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    2887950389: (v) => {
+      var _a;
+      return new IFC4.IfcBSplineSurface(new IFC4.IfcInteger(!v[0] ? null : v[0].value), new IFC4.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4.IfcLogical(!v[4] ? null : v[4].value), new IFC4.IfcLogical(!v[5] ? null : v[5].value), new IFC4.IfcLogical(!v[6] ? null : v[6].value));
+    },
+    167062518: (v) => {
+      var _a, _b, _c, _d, _e;
+      return new IFC4.IfcBSplineSurfaceWithKnots(new IFC4.IfcInteger(!v[0] ? null : v[0].value), new IFC4.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4.IfcLogical(!v[4] ? null : v[4].value), new IFC4.IfcLogical(!v[5] ? null : v[5].value), new IFC4.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], v[11]);
+    },
+    1334484129: (v) => new IFC4.IfcBlock(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    3649129432: (v) => new IFC4.IfcBooleanClippingResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1260505505: (_) => new IFC4.IfcBoundedCurve(),
+    4031249490: (v) => new IFC4.IfcBuilding(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value)),
+    1950629157: (v) => {
+      var _a, _b;
+      return new IFC4.IfcBuildingElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3124254112: (v) => new IFC4.IfcBuildingStorey(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcLengthMeasure(!v[9] ? null : v[9].value)),
+    2197970202: (v) => {
+      var _a, _b;
+      return new IFC4.IfcChimneyType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2937912522: (v) => new IFC4.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC4.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    3893394355: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCivilElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    300633059: (v) => {
+      var _a, _b;
+      return new IFC4.IfcColumnType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3875453745: (v) => {
+      var _a;
+      return new IFC4.IfcComplexPropertyTemplate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3732776249: (v) => {
+      var _a;
+      return new IFC4.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLogical(!v[1] ? null : v[1].value));
+    },
+    15328376: (v) => {
+      var _a;
+      return new IFC4.IfcCompositeCurveOnSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLogical(!v[1] ? null : v[1].value));
+    },
+    2510884976: (v) => new IFC4.IfcConic(new Handle(!v[0] ? null : v[0].value)),
+    2185764099: (v) => {
+      var _a, _b;
+      return new IFC4.IfcConstructionEquipmentResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    4105962743: (v) => {
+      var _a, _b;
+      return new IFC4.IfcConstructionMaterialResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    1525564444: (v) => {
+      var _a, _b;
+      return new IFC4.IfcConstructionProductResourceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    2559216714: (v) => {
+      var _a;
+      return new IFC4.IfcConstructionResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value));
+    },
+    3293443760: (v) => new IFC4.IfcControl(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value)),
+    3895139033: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCostItem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1419761937: (v) => new IFC4.IfcCostSchedule(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDateTime(!v[9] ? null : v[9].value)),
+    1916426348: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCoveringType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3295246426: (v) => {
+      var _a;
+      return new IFC4.IfcCrewResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    1457835157: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCurtainWallType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1213902940: (v) => new IFC4.IfcCylindricalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    3256556792: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDistributionElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3849074793: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDistributionFlowElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2963535650: (v) => new IFC4.IfcDoorLiningProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcLengthMeasure(!v[16] ? null : v[16].value)),
+    1714330368: (v) => new IFC4.IfcDoorPanelProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    2323601079: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDoorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value));
+    },
+    445594917: (v) => new IFC4.IfcDraughtingPreDefinedColour(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    4006246654: (v) => new IFC4.IfcDraughtingPreDefinedCurveFont(new IFC4.IfcLabel(!v[0] ? null : v[0].value)),
+    1758889154: (v) => new IFC4.IfcElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4123344466: (v) => new IFC4.IfcElementAssembly(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),
+    2397081782: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElementAssemblyType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1623761950: (v) => new IFC4.IfcElementComponent(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2590856083: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElementComponentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1704287377: (v) => new IFC4.IfcEllipse(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    2107101300: (v) => {
+      var _a, _b;
+      return new IFC4.IfcEnergyConversionDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    132023988: (v) => {
+      var _a, _b;
+      return new IFC4.IfcEngineType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3174744832: (v) => {
+      var _a, _b;
+      return new IFC4.IfcEvaporativeCoolerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3390157468: (v) => {
+      var _a, _b;
+      return new IFC4.IfcEvaporatorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4148101412: (v) => new IFC4.IfcEvent(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new IFC4.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),
+    2853485674: (v) => new IFC4.IfcExternalSpatialStructureElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value)),
+    807026263: (v) => new IFC4.IfcFacetedBrep(new Handle(!v[0] ? null : v[0].value)),
+    3737207727: (v) => {
+      var _a;
+      return new IFC4.IfcFacetedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    647756555: (v) => new IFC4.IfcFastener(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2489546625: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFastenerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2827207264: (v) => new IFC4.IfcFeatureElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2143335405: (v) => new IFC4.IfcFeatureElementAddition(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1287392070: (v) => new IFC4.IfcFeatureElementSubtraction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3907093117: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowControllerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3198132628: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3815607619: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowMeterType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1482959167: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowMovingDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1834744321: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1339347760: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowStorageDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2297155007: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3009222698: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowTreatmentDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1893162501: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFootingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    263784265: (v) => new IFC4.IfcFurnishingElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1509553395: (v) => new IFC4.IfcFurniture(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3493046030: (v) => new IFC4.IfcGeographicElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3009204131: (v) => {
+      var _a, _b, _c;
+      return new IFC4.IfcGrid(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[10]);
+    },
+    2706460486: (v) => new IFC4.IfcGroup(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    1251058090: (v) => {
+      var _a, _b;
+      return new IFC4.IfcHeatExchangerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1806887404: (v) => {
+      var _a, _b;
+      return new IFC4.IfcHumidifierType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2571569899: (v) => {
+      var _a;
+      return new IFC4.IfcIndexedPolyCurve(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || [], !v[2] ? null : new IFC4.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    3946677679: (v) => {
+      var _a, _b;
+      return new IFC4.IfcInterceptorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3113134337: (v) => {
+      var _a;
+      return new IFC4.IfcIntersectionCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);
+    },
+    2391368822: (v) => {
+      var _a;
+      return new IFC4.IfcInventory(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcDate(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value));
+    },
+    4288270099: (v) => {
+      var _a, _b;
+      return new IFC4.IfcJunctionBoxType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3827777499: (v) => {
+      var _a;
+      return new IFC4.IfcLaborResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    1051575348: (v) => {
+      var _a, _b;
+      return new IFC4.IfcLampType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1161773419: (v) => {
+      var _a, _b;
+      return new IFC4.IfcLightFixtureType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    377706215: (v) => new IFC4.IfcMechanicalFastener(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10]),
+    2108223431: (v) => {
+      var _a, _b;
+      return new IFC4.IfcMechanicalFastenerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value));
+    },
+    1114901282: (v) => {
+      var _a, _b;
+      return new IFC4.IfcMedicalDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3181161470: (v) => {
+      var _a, _b;
+      return new IFC4.IfcMemberType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    977012517: (v) => {
+      var _a, _b;
+      return new IFC4.IfcMotorConnectionType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4143007308: (v) => new IFC4.IfcOccupant(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), v[6]),
+    3588315303: (v) => new IFC4.IfcOpeningElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3079942009: (v) => new IFC4.IfcOpeningStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2837617999: (v) => {
+      var _a, _b;
+      return new IFC4.IfcOutletType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2382730787: (v) => new IFC4.IfcPerformanceHistory(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcLabel(!v[6] ? null : v[6].value), v[7]),
+    3566463478: (v) => new IFC4.IfcPermeableCoveringProperties(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    3327091369: (v) => new IFC4.IfcPermit(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcText(!v[8] ? null : v[8].value)),
+    1158309216: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPileType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    804291784: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPipeFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4231323485: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPipeSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4017108033: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPlateType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2839578677: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPolygonalFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4.IfcBoolean(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcPositiveInteger(p.value) : null)) || []);
+    },
+    3724593414: (v) => {
+      var _a;
+      return new IFC4.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3740093272: (v) => new IFC4.IfcPort(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    2744685151: (v) => new IFC4.IfcProcedure(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), v[7]),
+    2904328755: (v) => new IFC4.IfcProjectOrder(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcText(!v[8] ? null : v[8].value)),
+    3651124850: (v) => new IFC4.IfcProjectionElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1842657554: (v) => {
+      var _a, _b;
+      return new IFC4.IfcProtectiveDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2250791053: (v) => {
+      var _a, _b;
+      return new IFC4.IfcPumpType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2893384427: (v) => {
+      var _a, _b;
+      return new IFC4.IfcRailingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2324767716: (v) => {
+      var _a, _b;
+      return new IFC4.IfcRampFlightType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1469900589: (v) => {
+      var _a, _b;
+      return new IFC4.IfcRampType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    683857671: (v) => {
+      var _a, _b, _c, _d, _e, _f;
+      return new IFC4.IfcRationalBSplineSurfaceWithKnots(new IFC4.IfcInteger(!v[0] ? null : v[0].value), new IFC4.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4.IfcLogical(!v[4] ? null : v[4].value), new IFC4.IfcLogical(!v[5] ? null : v[5].value), new IFC4.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], v[11], (_f = v[12]) == null ? void 0 : _f.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4.IfcReal(p2.value) : null)) || []));
+    },
+    3027567501: (v) => new IFC4.IfcReinforcingElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value)),
+    964333572: (v) => {
+      var _a, _b;
+      return new IFC4.IfcReinforcingElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2320036040: (v) => new IFC4.IfcReinforcingMesh(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcAreaMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), v[17]),
+    2310774935: (v) => {
+      var _a, _b, _c;
+      return new IFC4.IfcReinforcingMeshType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4.IfcPositiveLengthMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4.IfcLabel(!v[18] ? null : v[18].value), !v[19] ? null : ((_c = v[19]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []);
+    },
+    160246688: (v) => {
+      var _a;
+      return new IFC4.IfcRelAggregates(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2781568857: (v) => {
+      var _a, _b;
+      return new IFC4.IfcRoofType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1768891740: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSanitaryTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2157484638: (v) => {
+      var _a;
+      return new IFC4.IfcSeamCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);
+    },
+    4074543187: (v) => {
+      var _a, _b;
+      return new IFC4.IfcShadingDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4097777520: (v) => new IFC4.IfcSite(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC4.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC4.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),
+    2533589738: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSlabType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1072016465: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSolarDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3856911033: (v) => new IFC4.IfcSpace(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC4.IfcLengthMeasure(!v[10] ? null : v[10].value)),
+    1305183839: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSpaceHeaterType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3812236995: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSpaceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcLabel(!v[10] ? null : v[10].value));
+    },
+    3112655638: (v) => {
+      var _a, _b;
+      return new IFC4.IfcStackTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1039846685: (v) => {
+      var _a, _b;
+      return new IFC4.IfcStairFlightType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    338393293: (v) => {
+      var _a, _b;
+      return new IFC4.IfcStairType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    682877961: (v) => new IFC4.IfcStructuralAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value)),
+    1179482911: (v) => new IFC4.IfcStructuralConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    1004757350: (v) => new IFC4.IfcStructuralCurveAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),
+    4243806635: (v) => new IFC4.IfcStructuralCurveConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value)),
+    214636428: (v) => new IFC4.IfcStructuralCurveMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], new Handle(!v[8] ? null : v[8].value)),
+    2445595289: (v) => new IFC4.IfcStructuralCurveMemberVarying(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], new Handle(!v[8] ? null : v[8].value)),
+    2757150158: (v) => new IFC4.IfcStructuralCurveReaction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], v[9]),
+    1807405624: (v) => new IFC4.IfcStructuralLinearAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),
+    1252848954: (v) => new IFC4.IfcStructuralLoadGroup(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcLabel(!v[9] ? null : v[9].value)),
+    2082059205: (v) => new IFC4.IfcStructuralPointAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value)),
+    734778138: (v) => new IFC4.IfcStructuralPointConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    1235345126: (v) => new IFC4.IfcStructuralPointReaction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    2986769608: (v) => new IFC4.IfcStructuralResultGroup(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4.IfcBoolean(!v[7] ? null : v[7].value)),
+    3657597509: (v) => new IFC4.IfcStructuralSurfaceAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),
+    1975003073: (v) => new IFC4.IfcStructuralSurfaceConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    148013059: (v) => {
+      var _a;
+      return new IFC4.IfcSubContractResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    3101698114: (v) => new IFC4.IfcSurfaceFeature(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2315554128: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSwitchingDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2254336722: (v) => new IFC4.IfcSystem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value)),
+    413509423: (v) => new IFC4.IfcSystemFurnitureElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    5716631: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTankType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3824725483: (v) => new IFC4.IfcTendon(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)),
+    2347447852: (v) => new IFC4.IfcTendonAnchor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]),
+    3081323446: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTendonAnchorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2415094496: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTendonType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value));
+    },
+    1692211062: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTransformerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1620046519: (v) => new IFC4.IfcTransportElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3593883385: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTrimmedCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcBoolean(!v[3] ? null : v[3].value), v[4]);
+    },
+    1600972822: (v) => {
+      var _a, _b;
+      return new IFC4.IfcTubeBundleType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1911125066: (v) => {
+      var _a, _b;
+      return new IFC4.IfcUnitaryEquipmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    728799441: (v) => {
+      var _a, _b;
+      return new IFC4.IfcValveType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2391383451: (v) => new IFC4.IfcVibrationIsolator(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3313531582: (v) => {
+      var _a, _b;
+      return new IFC4.IfcVibrationIsolatorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2769231204: (v) => new IFC4.IfcVirtualElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    926996030: (v) => new IFC4.IfcVoidingFeature(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1898987631: (v) => {
+      var _a, _b;
+      return new IFC4.IfcWallType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1133259667: (v) => {
+      var _a, _b;
+      return new IFC4.IfcWasteTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4009809668: (v) => {
+      var _a, _b;
+      return new IFC4.IfcWindowType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value));
+    },
+    4088093105: (v) => {
+      var _a, _b;
+      return new IFC4.IfcWorkCalendar(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[8]);
+    },
+    1028945134: (v) => {
+      var _a;
+      return new IFC4.IfcWorkControl(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDuration(!v[10] ? null : v[10].value), new IFC4.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDateTime(!v[12] ? null : v[12].value));
+    },
+    4218914973: (v) => {
+      var _a;
+      return new IFC4.IfcWorkPlan(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDuration(!v[10] ? null : v[10].value), new IFC4.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDateTime(!v[12] ? null : v[12].value), v[13]);
+    },
+    3342526732: (v) => {
+      var _a;
+      return new IFC4.IfcWorkSchedule(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcDuration(!v[10] ? null : v[10].value), new IFC4.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDateTime(!v[12] ? null : v[12].value), v[13]);
+    },
+    1033361043: (v) => new IFC4.IfcZone(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value)),
+    3821786052: (v) => new IFC4.IfcActionRequest(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcText(!v[8] ? null : v[8].value)),
+    1411407467: (v) => {
+      var _a, _b;
+      return new IFC4.IfcAirTerminalBoxType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3352864051: (v) => {
+      var _a, _b;
+      return new IFC4.IfcAirTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1871374353: (v) => {
+      var _a, _b;
+      return new IFC4.IfcAirToAirHeatRecoveryType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3460190687: (v) => new IFC4.IfcAsset(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcDate(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),
+    1532957894: (v) => {
+      var _a, _b;
+      return new IFC4.IfcAudioVisualApplianceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1967976161: (v) => {
+      var _a;
+      return new IFC4.IfcBSplineCurve(new IFC4.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4.IfcLogical(!v[3] ? null : v[3].value), new IFC4.IfcLogical(!v[4] ? null : v[4].value));
+    },
+    2461110595: (v) => {
+      var _a, _b, _c;
+      return new IFC4.IfcBSplineCurveWithKnots(new IFC4.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4.IfcLogical(!v[3] ? null : v[3].value), new IFC4.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], v[7]);
+    },
+    819618141: (v) => {
+      var _a, _b;
+      return new IFC4.IfcBeamType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    231477066: (v) => {
+      var _a, _b;
+      return new IFC4.IfcBoilerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1136057603: (v) => {
+      var _a;
+      return new IFC4.IfcBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLogical(!v[1] ? null : v[1].value));
+    },
+    3299480353: (v) => new IFC4.IfcBuildingElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2979338954: (v) => new IFC4.IfcBuildingElementPart(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    39481116: (v) => {
+      var _a, _b;
+      return new IFC4.IfcBuildingElementPartType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1095909175: (v) => new IFC4.IfcBuildingElementProxy(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1909888760: (v) => {
+      var _a, _b;
+      return new IFC4.IfcBuildingElementProxyType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1177604601: (v) => new IFC4.IfcBuildingSystem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4.IfcLabel(!v[6] ? null : v[6].value)),
+    2188180465: (v) => {
+      var _a, _b;
+      return new IFC4.IfcBurnerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    395041908: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCableCarrierFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3293546465: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCableCarrierSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2674252688: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCableFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1285652485: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCableSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2951183804: (v) => {
+      var _a, _b;
+      return new IFC4.IfcChillerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3296154744: (v) => new IFC4.IfcChimney(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2611217952: (v) => new IFC4.IfcCircle(new Handle(!v[0] ? null : v[0].value), new IFC4.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    1677625105: (v) => new IFC4.IfcCivilElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2301859152: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCoilType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    843113511: (v) => new IFC4.IfcColumn(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    905975707: (v) => new IFC4.IfcColumnStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    400855858: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCommunicationsApplianceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3850581409: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCompressorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2816379211: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCondenserType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3898045240: (v) => {
+      var _a;
+      return new IFC4.IfcConstructionEquipmentResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    1060000209: (v) => {
+      var _a;
+      return new IFC4.IfcConstructionMaterialResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    488727124: (v) => {
+      var _a;
+      return new IFC4.IfcConstructionProductResource(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    335055490: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCooledBeamType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2954562838: (v) => {
+      var _a, _b;
+      return new IFC4.IfcCoolingTowerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1973544240: (v) => new IFC4.IfcCovering(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3495092785: (v) => new IFC4.IfcCurtainWall(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3961806047: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDamperType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1335981549: (v) => new IFC4.IfcDiscreteAccessory(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2635815018: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDiscreteAccessoryType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1599208980: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDistributionChamberElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2063403501: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDistributionControlElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1945004755: (v) => new IFC4.IfcDistributionElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3040386961: (v) => new IFC4.IfcDistributionFlowElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3041715199: (v) => new IFC4.IfcDistributionPort(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], v[9]),
+    3205830791: (v) => new IFC4.IfcDistributionSystem(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), v[6]),
+    395920057: (v) => new IFC4.IfcDoor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value)),
+    3242481149: (v) => new IFC4.IfcDoorStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value)),
+    869906466: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDuctFittingType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3760055223: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDuctSegmentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2030761528: (v) => {
+      var _a, _b;
+      return new IFC4.IfcDuctSilencerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    663422040: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElectricApplianceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2417008758: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElectricDistributionBoardType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3277789161: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElectricFlowStorageDeviceType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1534661035: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElectricGeneratorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1217240411: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElectricMotorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    712377611: (v) => {
+      var _a, _b;
+      return new IFC4.IfcElectricTimeControlType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1658829314: (v) => new IFC4.IfcEnergyConversionDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2814081492: (v) => new IFC4.IfcEngine(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3747195512: (v) => new IFC4.IfcEvaporativeCooler(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    484807127: (v) => new IFC4.IfcEvaporator(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1209101575: (v) => new IFC4.IfcExternalSpatialElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), v[8]),
+    346874300: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFanType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1810631287: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFilterType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4222183408: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFireSuppressionTerminalType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2058353004: (v) => new IFC4.IfcFlowController(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4278956645: (v) => new IFC4.IfcFlowFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4037862832: (v) => {
+      var _a, _b;
+      return new IFC4.IfcFlowInstrumentType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2188021234: (v) => new IFC4.IfcFlowMeter(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3132237377: (v) => new IFC4.IfcFlowMovingDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    987401354: (v) => new IFC4.IfcFlowSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    707683696: (v) => new IFC4.IfcFlowStorageDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2223149337: (v) => new IFC4.IfcFlowTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3508470533: (v) => new IFC4.IfcFlowTreatmentDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    900683007: (v) => new IFC4.IfcFooting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3319311131: (v) => new IFC4.IfcHeatExchanger(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2068733104: (v) => new IFC4.IfcHumidifier(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4175244083: (v) => new IFC4.IfcInterceptor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2176052936: (v) => new IFC4.IfcJunctionBox(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    76236018: (v) => new IFC4.IfcLamp(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    629592764: (v) => new IFC4.IfcLightFixture(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1437502449: (v) => new IFC4.IfcMedicalDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1073191201: (v) => new IFC4.IfcMember(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1911478936: (v) => new IFC4.IfcMemberStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2474470126: (v) => new IFC4.IfcMotorConnection(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    144952367: (v) => {
+      var _a;
+      return new IFC4.IfcOuterBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4.IfcLogical(!v[1] ? null : v[1].value));
+    },
+    3694346114: (v) => new IFC4.IfcOutlet(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1687234759: (v) => new IFC4.IfcPile(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),
+    310824031: (v) => new IFC4.IfcPipeFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3612865200: (v) => new IFC4.IfcPipeSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3171933400: (v) => new IFC4.IfcPlate(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1156407060: (v) => new IFC4.IfcPlateStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    738039164: (v) => new IFC4.IfcProtectiveDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    655969474: (v) => {
+      var _a, _b;
+      return new IFC4.IfcProtectiveDeviceTrippingUnitType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    90941305: (v) => new IFC4.IfcPump(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2262370178: (v) => new IFC4.IfcRailing(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3024970846: (v) => new IFC4.IfcRamp(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3283111854: (v) => new IFC4.IfcRampFlight(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1232101972: (v) => {
+      var _a, _b, _c, _d;
+      return new IFC4.IfcRationalBSplineCurveWithKnots(new IFC4.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4.IfcLogical(!v[3] ? null : v[3].value), new IFC4.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcParameterValue(p.value) : null)) || [], v[7], ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcReal(p.value) : null)) || []);
+    },
+    979691226: (v) => new IFC4.IfcReinforcingBar(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13]),
+    2572171363: (v) => {
+      var _a, _b, _c;
+      return new IFC4.IfcReinforcingBarType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC4.IfcLabel(!v[14] ? null : v[14].value), !v[15] ? null : ((_c = v[15]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(2, p) : null)) || []);
+    },
+    2016517767: (v) => new IFC4.IfcRoof(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3053780830: (v) => new IFC4.IfcSanitaryTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1783015770: (v) => {
+      var _a, _b;
+      return new IFC4.IfcSensorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1329646415: (v) => new IFC4.IfcShadingDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1529196076: (v) => new IFC4.IfcSlab(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3127900445: (v) => new IFC4.IfcSlabElementedCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3027962421: (v) => new IFC4.IfcSlabStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3420628829: (v) => new IFC4.IfcSolarDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1999602285: (v) => new IFC4.IfcSpaceHeater(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1404847402: (v) => new IFC4.IfcStackTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    331165859: (v) => new IFC4.IfcStair(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4252922144: (v) => new IFC4.IfcStairFlight(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcInteger(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcInteger(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12]),
+    2515109513: (v) => {
+      var _a, _b;
+      return new IFC4.IfcStructuralAnalysisModel(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value));
+    },
+    385403989: (v) => {
+      var _a;
+      return new IFC4.IfcStructuralLoadCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : ((_a = v[10]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4.IfcRatioMeasure(p.value) : null)) || []);
+    },
+    1621171031: (v) => new IFC4.IfcStructuralPlanarAction(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),
+    1162798199: (v) => new IFC4.IfcSwitchingDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    812556717: (v) => new IFC4.IfcTank(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3825984169: (v) => new IFC4.IfcTransformer(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3026737570: (v) => new IFC4.IfcTubeBundle(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3179687236: (v) => {
+      var _a, _b;
+      return new IFC4.IfcUnitaryControlElementType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4292641817: (v) => new IFC4.IfcUnitaryEquipment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4207607924: (v) => new IFC4.IfcValve(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2391406946: (v) => new IFC4.IfcWall(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4156078855: (v) => new IFC4.IfcWallElementedCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3512223829: (v) => new IFC4.IfcWallStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4237592921: (v) => new IFC4.IfcWasteTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3304561284: (v) => new IFC4.IfcWindow(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value)),
+    486154966: (v) => new IFC4.IfcWindowStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4.IfcLabel(!v[12] ? null : v[12].value)),
+    2874132201: (v) => {
+      var _a, _b;
+      return new IFC4.IfcActuatorType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1634111441: (v) => new IFC4.IfcAirTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    177149247: (v) => new IFC4.IfcAirTerminalBox(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2056796094: (v) => new IFC4.IfcAirToAirHeatRecovery(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3001207471: (v) => {
+      var _a, _b;
+      return new IFC4.IfcAlarmType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    277319702: (v) => new IFC4.IfcAudioVisualAppliance(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    753842376: (v) => new IFC4.IfcBeam(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2906023776: (v) => new IFC4.IfcBeamStandardCase(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    32344328: (v) => new IFC4.IfcBoiler(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2938176219: (v) => new IFC4.IfcBurner(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    635142910: (v) => new IFC4.IfcCableCarrierFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3758799889: (v) => new IFC4.IfcCableCarrierSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1051757585: (v) => new IFC4.IfcCableFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4217484030: (v) => new IFC4.IfcCableSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3902619387: (v) => new IFC4.IfcChiller(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    639361253: (v) => new IFC4.IfcCoil(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3221913625: (v) => new IFC4.IfcCommunicationsAppliance(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3571504051: (v) => new IFC4.IfcCompressor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2272882330: (v) => new IFC4.IfcCondenser(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    578613899: (v) => {
+      var _a, _b;
+      return new IFC4.IfcControllerType(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4136498852: (v) => new IFC4.IfcCooledBeam(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3640358203: (v) => new IFC4.IfcCoolingTower(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4074379575: (v) => new IFC4.IfcDamper(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1052013943: (v) => new IFC4.IfcDistributionChamberElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    562808652: (v) => new IFC4.IfcDistributionCircuit(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4.IfcLabel(!v[5] ? null : v[5].value), v[6]),
+    1062813311: (v) => new IFC4.IfcDistributionControlElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value)),
+    342316401: (v) => new IFC4.IfcDuctFitting(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3518393246: (v) => new IFC4.IfcDuctSegment(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1360408905: (v) => new IFC4.IfcDuctSilencer(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1904799276: (v) => new IFC4.IfcElectricAppliance(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    862014818: (v) => new IFC4.IfcElectricDistributionBoard(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3310460725: (v) => new IFC4.IfcElectricFlowStorageDevice(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    264262732: (v) => new IFC4.IfcElectricGenerator(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    402227799: (v) => new IFC4.IfcElectricMotor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1003880860: (v) => new IFC4.IfcElectricTimeControl(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3415622556: (v) => new IFC4.IfcFan(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    819412036: (v) => new IFC4.IfcFilter(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1426591983: (v) => new IFC4.IfcFireSuppressionTerminal(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    182646315: (v) => new IFC4.IfcFlowInstrument(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2295281155: (v) => new IFC4.IfcProtectiveDeviceTrippingUnit(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4086658281: (v) => new IFC4.IfcSensor(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    630975310: (v) => new IFC4.IfcUnitaryControlElement(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4288193352: (v) => new IFC4.IfcActuator(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3087945054: (v) => new IFC4.IfcAlarm(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    25142252: (v) => new IFC4.IfcController(new IFC4.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4.IfcIdentifier(!v[7] ? null : v[7].value), v[8])
+  };
+  InheritanceDef[2] = {
+    618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],
+    411424972: [IFCCOSTVALUE],
+    4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],
+    1387855156: [IFCBOUNDARYNODECONDITIONWARPING],
+    2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],
+    2614616156: [IFCCONNECTIONPOINTECCENTRICITY],
+    1959218052: [IFCOBJECTIVE, IFCMETRIC],
+    1785450214: [IFCMAPCONVERSION],
+    1466758467: [IFCPROJECTEDCRS],
+    4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION],
+    3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],
+    760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER],
+    248100487: [IFCMATERIALLAYERWITHOFFSETS],
+    2235152071: [IFCMATERIALPROFILEWITHOFFSETS],
+    1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE],
+    1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],
+    3701648758: [IFCLOCALPLACEMENT, IFCGRIDPLACEMENT],
+    2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],
+    2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],
+    677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING],
+    2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],
+    3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE],
+    2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],
+    3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],
+    986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION],
+    1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],
+    3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],
+    3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM],
+    2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP],
+    2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION],
+    1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME],
+    3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],
+    2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],
+    2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION],
+    609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],
+    2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],
+    2830218821: [IFCSTYLEDREPRESENTATION],
+    846575682: [IFCSURFACESTYLERENDERING],
+    626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],
+    1549132990: [IFCTASKTIMERECURRING],
+    280115917: [IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],
+    3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],
+    1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],
+    2799835756: [IFCVERTEXPOINT],
+    3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],
+    1310608509: [IFCCENTERLINEPROFILEDEF],
+    3264961684: [IFCCOLOURRGB],
+    370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],
+    2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET],
+    3632507154: [IFCMIRROREDPROFILEDEF],
+    3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],
+    297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES],
+    2556980723: [IFCADVANCEDFACE, IFCFACESURFACE],
+    1809719519: [IFCFACEOUTERBOUND],
+    3008276851: [IFCADVANCEDFACE],
+    3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],
+    2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],
+    3590301190: [IFCGEOMETRICCURVESET],
+    812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],
+    1437953363: [IFCINDEXEDTRIANGLETEXTUREMAP],
+    1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],
+    1520743889: [IFCLIGHTSOURCESPOT],
+    1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],
+    3079605661: [IFCMATERIALPROFILESETUSAGETAPERING],
+    219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT],
+    2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],
+    2004835150: [IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],
+    1663979128: [IFCPLANARBOX],
+    2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE],
+    3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT],
+    3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES],
+    1775413392: [IFCTEXTSTYLEFONTMODEL],
+    2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],
+    1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION],
+    3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET],
+    1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE],
+    2090586900: [IFCELEMENTQUANTITY],
+    3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],
+    478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],
+    3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],
+    723233188: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSWEPTAREASOLID],
+    2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],
+    1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],
+    2513912981: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],
+    2247615214: [IFCSURFACECURVESWEPTAREASOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID],
+    1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL],
+    230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],
+    901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE],
+    4282788508: [IFCTEXTLITERALWITHEXTENT],
+    1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS],
+    3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE],
+    2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCDOORSTYLE, IFCWINDOWSTYLE],
+    3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE],
+    2736907675: [IFCBOOLEANCLIPPINGRESULT],
+    4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE],
+    574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D],
+    59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],
+    3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],
+    3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],
+    1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],
+    2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT],
+    2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE],
+    3419103109: [IFCPROJECTLIBRARY, IFCPROJECT],
+    2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],
+    2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCPCURVE, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCLINE],
+    339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILDINGELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],
+    2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE],
+    477187591: [IFCEXTRUDEDAREASOLIDTAPERED],
+    4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],
+    178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS],
+    1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP],
+    3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS],
+    759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],
+    2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],
+    3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES],
+    2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK],
+    4208778838: [IFCDISTRIBUTIONPORT, IFCPORT, IFCGRID, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPROXY],
+    3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE],
+    3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR],
+    1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR],
+    1865459582: [IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL],
+    826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],
+    1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],
+    1638771189: [IFCRELCONNECTSWITHECCENTRICITY],
+    2551354335: [IFCRELAGGREGATES, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS],
+    693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT],
+    3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL],
+    3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL],
+    2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],
+    1856042241: [IFCREVOLVEDAREASOLIDTAPERED],
+    1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING, IFCSPATIALSTRUCTUREELEMENT],
+    710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE],
+    2706606064: [IFCSPACE, IFCSITE, IFCBUILDINGSTOREY, IFCBUILDING],
+    3893378262: [IFCSPACETYPE],
+    3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION],
+    3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],
+    530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],
+    3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION],
+    3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],
+    699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE],
+    2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDFACESET],
+    2296667514: [IFCOCCUPANT],
+    1635779807: [IFCADVANCEDBREPWITHVOIDS],
+    2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS],
+    167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS],
+    1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE],
+    1950629157: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCPLATETYPE, IFCPILETYPE, IFCMEMBERTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE],
+    3732776249: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE],
+    15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE],
+    2510884976: [IFCCIRCLE, IFCELLIPSE],
+    2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],
+    3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM],
+    3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],
+    3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE],
+    1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY, IFCBUILDINGELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],
+    1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCFASTENER],
+    2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCFASTENERTYPE],
+    2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE],
+    2853485674: [IFCEXTERNALSPATIALELEMENT],
+    807026263: [IFCFACETEDBREPWITHVOIDS],
+    2827207264: [IFCSURFACEFEATURE, IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],
+    2143335405: [IFCPROJECTIONELEMENT],
+    1287392070: [IFCVOIDINGFEATURE, IFCOPENINGSTANDARDCASE, IFCOPENINGELEMENT],
+    3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],
+    3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],
+    1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],
+    1834744321: [IFCDUCTSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],
+    1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],
+    2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMEDICALDEVICETYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE],
+    3009222698: [IFCFILTERTYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE],
+    263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE],
+    2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],
+    3588315303: [IFCOPENINGSTANDARDCASE],
+    3740093272: [IFCDISTRIBUTIONPORT],
+    3027567501: [IFCREINFORCINGBAR, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],
+    964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE],
+    682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION],
+    1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],
+    1004757350: [IFCSTRUCTURALLINEARACTION],
+    214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],
+    1252848954: [IFCSTRUCTURALLOADCASE],
+    3657597509: [IFCSTRUCTURALPLANARACTION],
+    2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILDINGSYSTEM, IFCZONE],
+    1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],
+    1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS],
+    2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS],
+    1136057603: [IFCOUTERBOUNDARYCURVE],
+    3299480353: [IFCBEAMSTANDARDCASE, IFCBEAM, IFCWINDOWSTANDARDCASE, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE, IFCWALL, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCPLATESTANDARDCASE, IFCPLATE, IFCPILE, IFCMEMBERSTANDARDCASE, IFCMEMBER, IFCFOOTING, IFCDOORSTANDARDCASE, IFCDOOR, IFCCURTAINWALL, IFCCOVERING, IFCCOLUMNSTANDARDCASE, IFCCOLUMN, IFCCHIMNEY, IFCBUILDINGELEMENTPROXY],
+    843113511: [IFCCOLUMNSTANDARDCASE],
+    2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE],
+    1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],
+    3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE],
+    3205830791: [IFCDISTRIBUTIONCIRCUIT],
+    395920057: [IFCDOORSTANDARDCASE],
+    1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE],
+    2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER],
+    4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX],
+    3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP],
+    987401354: [IFCDUCTSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT],
+    707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK],
+    2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSANITARYTERMINAL, IFCOUTLET, IFCMEDICALDEVICE, IFCLIGHTFIXTURE, IFCLAMP],
+    3508470533: [IFCFILTER, IFCDUCTSILENCER, IFCINTERCEPTOR],
+    1073191201: [IFCMEMBERSTANDARDCASE],
+    3171933400: [IFCPLATESTANDARDCASE],
+    1529196076: [IFCSLABSTANDARDCASE, IFCSLABELEMENTEDCASE],
+    2391406946: [IFCWALLSTANDARDCASE, IFCWALLELEMENTEDCASE],
+    3304561284: [IFCWINDOWSTANDARDCASE],
+    753842376: [IFCBEAMSTANDARDCASE],
+    1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT]
+  };
+  InversePropertyDef[2] = {
+    3630933823: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    411424972: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    130549933: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["ApprovedObjects", IFCRELASSOCIATESAPPROVAL, 5, true], ["ApprovedResources", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 3, true], ["Relates", IFCAPPROVALRELATIONSHIP, 2, true]],
+    1959218052: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],
+    1466758467: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]],
+    602808272: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    3200245327: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],
+    2242383968: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],
+    1040185647: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],
+    3548104201: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],
+    852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]],
+    2655187982: [["LibraryInfoForObjects", IFCRELASSOCIATESLIBRARY, 5, true], ["HasLibraryReferences", IFCLIBRARYREFERENCE, 5, true]],
+    3452421091: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["LibraryRefForObjects", IFCRELASSOCIATESLIBRARY, 5, true]],
+    760658860: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]],
+    248100487: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]],
+    3303938423: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]],
+    1847252529: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]],
+    2235152071: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]],
+    164193824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]],
+    552965576: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]],
+    1507914824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]],
+    3368373690: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],
+    3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]],
+    2251480897: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],
+    4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]],
+    2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]],
+    2483315170: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2226359599: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    3958567839: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    3843373140: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]],
+    986844984: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    3710013099: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2044713172: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2093928680: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    931644368: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    3252649465: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2405470396: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    825690147: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]],
+    3008791417: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1660063152: [["HasShapeAspects", IFCSHAPEASPECT, 4, true], ["MapUsage", IFCMAPPEDITEM, 0, true]],
+    3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    3958052878: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    626085974: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]],
+    912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    3101149627: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    1377556343: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    2799835756: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1907098498: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3798115385: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1310608509: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2705031697: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    616511568: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]],
+    3150382593: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    747523909: [["ClassificationForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]],
+    647927063: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["ClassificationRefForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]],
+    1485152156: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    370225590: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3050246964: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2889183280: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2713554722: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    3632507154: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1154170062: [["DocumentInfoForObjects", IFCRELASSOCIATESDOCUMENT, 5, true], ["HasDocumentReferences", IFCDOCUMENTREFERENCE, 4, true], ["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]],
+    3732053477: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["DocumentRefForObjects", IFCRELASSOCIATESDOCUMENT, 5, true]],
+    3900360178: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    476780140: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    297599258: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2556980723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]],
+    1809719519: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    803316827: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3008276851: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]],
+    3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]],
+    2453401579: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]],
+    3590301190: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]],
+    812098782: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3905492369: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]],
+    3741457305: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    1402838566: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    125510826: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2604431987: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4266656042: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1520743889: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3422422726: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCLOCALPLACEMENT, 0, true]],
+    1008929658: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2347385850: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1838606355: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["IsRelatedWith", IFCMATERIALRELATIONSHIP, 3, true], ["RelatesTo", IFCMATERIALRELATIONSHIP, 2, true]],
+    3708119e3: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialConstituentSet", IFCMATERIALCONSTITUENTSET, 2, false]],
+    2852063980: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]],
+    1303795690: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]],
+    3079605661: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]],
+    3404854881: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]],
+    3265635763: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2998442950: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]],
+    2665983363: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1029017970: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2529465313: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2519244187: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3021840470: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    597895409: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]],
+    2004835150: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1663979128: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2067069095: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4022376103: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1423911732: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2924175390: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2775532180: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3778827333: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]],
+    2802850158: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2598011224: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    1680319473: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]],
+    3357820518: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    1482703590: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]],
+    2090586900: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    3615266464: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    3413951693: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    1580146022: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2778083089: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2042790032: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    4165799628: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    1509187699: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4124623270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3692461612: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    723233188: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2233826070: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2513912981: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2247615214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1260650574: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1096409881: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    230924584: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3071757647: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    901063453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4282788508: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3124975700: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2715220739: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true]],
+    3736923433: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3698973494: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    427810014: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1417489154: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2759199220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1299126871: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2543172580: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    3406155212: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]],
+    669184980: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3207858831: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    4261334040: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3125803723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2740243338: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2736907675: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4182860854: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2581212453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2713105998: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2898889636: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1123145078: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    574549367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1675464909: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2059837836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    59481748: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3749851601: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3486308946: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3331915920: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1416205885: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1383045692: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2205249479: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2542286263: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    2485617015: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]],
+    2574617495: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    3419103109: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]],
+    1815067380: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    2506170314: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2147822146: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2601014836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2827736869: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2629017746: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    32440307: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    526551008: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1472233963: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1883228015: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2777663545: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2835456948: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    4024345920: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    477187591: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2804161546: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2047409740: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    374418227: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    315944413: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2652556860: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4095422895: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    987898635: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1484403080: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    178912537: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true]],
+    2294589976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true]],
+    572779678: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    428585644: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1281925730: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1425443689: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true]],
+    3388369263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3505215534: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1682466193: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    603570806: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    220341763: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3967405729: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    569719735: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]],
+    653396225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]],
+    871118103: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    4166981789: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    2752243245: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    941946838: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    1451395588: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    492091185: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Defines", IFCRELDEFINESBYTEMPLATE, 5, true]],
+    3650150729: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    110355661: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    3521284610: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]],
+    3219374653: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2770003689: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2798486643: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3454111270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3765753017: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    3523091289: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]],
+    1521410863: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], ["Corresponds", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]],
+    816062949: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]],
+    2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1856042241: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3243963512: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4158566097: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3626867408: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3663146110: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]],
+    1412071761: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],
+    710998568: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],
+    3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    463610769: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],
+    2481509218: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    451544542: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4015995234: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],
+    530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    603775116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    4095615324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    699246055: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2028607225: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2809605785: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4124788165: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    3206491090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2387106220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]],
+    1935646853: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2916149573: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]],
+    336235671: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    512836454: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]],
+    1635779807: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2603310189: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2887950389: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    167062518: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1334484129: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3649129432: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1260505505: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],
+    1950629157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],
+    2197970202: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2937912522: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    3893394355: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3875453745: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]],
+    3732776249: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    15328376: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2510884976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2185764099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    4105962743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1525564444: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1213902940: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2963535650: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    1714330368: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    2323601079: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2397081782: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1704287377: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    132023988: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4148101412: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2853485674: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],
+    807026263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3737207727: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]],
+    1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1893162501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    1509553395: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3493046030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]],
+    1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2571569899: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3946677679: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3113134337: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]],
+    4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1114901282: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]],
+    3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]],
+    3079942009: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]],
+    2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3566463478: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1158309216: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2839578677: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]],
+    3724593414: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]],
+    2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]],
+    1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1469900589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    683857671: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    964333572: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2310774935: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2781568857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2157484638: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4074543187: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true]],
+    2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1072016465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]],
+    1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    338393293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    1004757350: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    2757150158: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]],
+    2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]],
+    3657597509: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    3101698114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    413509423: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3081323446: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2415094496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3593883385: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2391383451: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    926996030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4009809668: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4088093105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true]],
+    1532957894: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1967976161: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2461110595: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1136057603: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3299480353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    39481116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1177604601: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    2188180465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2674252688: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3296154744: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2611217952: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1677625105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    905975707: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    400855858: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["CoversElements", IFCRELCOVERSBLDGELEMENTS, 5, true]],
+    3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true]],
+    3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]],
+    3205830791: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3242481149: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2417008758: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2814081492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3747195512: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    484807127: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1209101575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]],
+    346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2188021234: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3319311131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2068733104: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4175244083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2176052936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    76236018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    629592764: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1437502449: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    1911478936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2474470126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    144952367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3694346114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    310824031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3612865200: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    1156407060: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    738039164: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    655969474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    90941305: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    1232101972: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2572171363: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3053780830: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1329646415: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3127900445: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3027962421: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3420628829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1999602285: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1404847402: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    385403989: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]],
+    1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1162798199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    812556717: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3825984169: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3026737570: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3179687236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4292641817: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4207607924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    4156078855: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    4237592921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    486154966: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1634111441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    177149247: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2056796094: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    277319702: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    2906023776: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true]],
+    32344328: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2938176219: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    635142910: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3758799889: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1051757585: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4217484030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3902619387: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    639361253: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3221913625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3571504051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2272882330: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4136498852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3640358203: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4074379575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    562808652: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true]],
+    1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    342316401: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3518393246: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1360408905: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1904799276: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    862014818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3310460725: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    264262732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    402227799: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1003880860: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3415622556: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    819412036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1426591983: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    182646315: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    2295281155: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    4086658281: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    630975310: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    4288193352: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    3087945054: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    25142252: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]]
+  };
+  Constructors[2] = {
+    3630933823: (a) => new IFC4.IfcActorRole(a[0], a[1], a[2]),
+    618182010: (a) => new IFC4.IfcAddress(a[0], a[1], a[2]),
+    639542469: (a) => new IFC4.IfcApplication(a[0], a[1], a[2], a[3]),
+    411424972: (a) => new IFC4.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    130549933: (a) => new IFC4.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4037036970: (a) => new IFC4.IfcBoundaryCondition(a[0]),
+    1560379544: (a) => new IFC4.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3367102660: (a) => new IFC4.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]),
+    1387855156: (a) => new IFC4.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2069777674: (a) => new IFC4.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2859738748: (_) => new IFC4.IfcConnectionGeometry(),
+    2614616156: (a) => new IFC4.IfcConnectionPointGeometry(a[0], a[1]),
+    2732653382: (a) => new IFC4.IfcConnectionSurfaceGeometry(a[0], a[1]),
+    775493141: (a) => new IFC4.IfcConnectionVolumeGeometry(a[0], a[1]),
+    1959218052: (a) => new IFC4.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1785450214: (a) => new IFC4.IfcCoordinateOperation(a[0], a[1]),
+    1466758467: (a) => new IFC4.IfcCoordinateReferenceSystem(a[0], a[1], a[2], a[3]),
+    602808272: (a) => new IFC4.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1765591967: (a) => new IFC4.IfcDerivedUnit(a[0], a[1], a[2]),
+    1045800335: (a) => new IFC4.IfcDerivedUnitElement(a[0], a[1]),
+    2949456006: (a) => new IFC4.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    4294318154: (_) => new IFC4.IfcExternalInformation(),
+    3200245327: (a) => new IFC4.IfcExternalReference(a[0], a[1], a[2]),
+    2242383968: (a) => new IFC4.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]),
+    1040185647: (a) => new IFC4.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]),
+    3548104201: (a) => new IFC4.IfcExternallyDefinedTextFont(a[0], a[1], a[2]),
+    852622518: (a) => new IFC4.IfcGridAxis(a[0], a[1], a[2]),
+    3020489413: (a) => new IFC4.IfcIrregularTimeSeriesValue(a[0], a[1]),
+    2655187982: (a) => new IFC4.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3452421091: (a) => new IFC4.IfcLibraryReference(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4162380809: (a) => new IFC4.IfcLightDistributionData(a[0], a[1], a[2]),
+    1566485204: (a) => new IFC4.IfcLightIntensityDistribution(a[0], a[1]),
+    3057273783: (a) => new IFC4.IfcMapConversion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1847130766: (a) => new IFC4.IfcMaterialClassificationRelationship(a[0], a[1]),
+    760658860: (_) => new IFC4.IfcMaterialDefinition(),
+    248100487: (a) => new IFC4.IfcMaterialLayer(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3303938423: (a) => new IFC4.IfcMaterialLayerSet(a[0], a[1], a[2]),
+    1847252529: (a) => new IFC4.IfcMaterialLayerWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2199411900: (a) => new IFC4.IfcMaterialList(a[0]),
+    2235152071: (a) => new IFC4.IfcMaterialProfile(a[0], a[1], a[2], a[3], a[4], a[5]),
+    164193824: (a) => new IFC4.IfcMaterialProfileSet(a[0], a[1], a[2], a[3]),
+    552965576: (a) => new IFC4.IfcMaterialProfileWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1507914824: (_) => new IFC4.IfcMaterialUsageDefinition(),
+    2597039031: (a) => new IFC4.IfcMeasureWithUnit(a[0], a[1]),
+    3368373690: (a) => new IFC4.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2706619895: (a) => new IFC4.IfcMonetaryUnit(a[0]),
+    1918398963: (a) => new IFC4.IfcNamedUnit(a[0], a[1]),
+    3701648758: (_) => new IFC4.IfcObjectPlacement(),
+    2251480897: (a) => new IFC4.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4251960020: (a) => new IFC4.IfcOrganization(a[0], a[1], a[2], a[3], a[4]),
+    1207048766: (a) => new IFC4.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2077209135: (a) => new IFC4.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    101040310: (a) => new IFC4.IfcPersonAndOrganization(a[0], a[1], a[2]),
+    2483315170: (a) => new IFC4.IfcPhysicalQuantity(a[0], a[1]),
+    2226359599: (a) => new IFC4.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]),
+    3355820592: (a) => new IFC4.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    677532197: (_) => new IFC4.IfcPresentationItem(),
+    2022622350: (a) => new IFC4.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]),
+    1304840413: (a) => new IFC4.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3119450353: (a) => new IFC4.IfcPresentationStyle(a[0]),
+    2417041796: (a) => new IFC4.IfcPresentationStyleAssignment(a[0]),
+    2095639259: (a) => new IFC4.IfcProductRepresentation(a[0], a[1], a[2]),
+    3958567839: (a) => new IFC4.IfcProfileDef(a[0], a[1]),
+    3843373140: (a) => new IFC4.IfcProjectedCRS(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    986844984: (_) => new IFC4.IfcPropertyAbstraction(),
+    3710013099: (a) => new IFC4.IfcPropertyEnumeration(a[0], a[1], a[2]),
+    2044713172: (a) => new IFC4.IfcQuantityArea(a[0], a[1], a[2], a[3], a[4]),
+    2093928680: (a) => new IFC4.IfcQuantityCount(a[0], a[1], a[2], a[3], a[4]),
+    931644368: (a) => new IFC4.IfcQuantityLength(a[0], a[1], a[2], a[3], a[4]),
+    3252649465: (a) => new IFC4.IfcQuantityTime(a[0], a[1], a[2], a[3], a[4]),
+    2405470396: (a) => new IFC4.IfcQuantityVolume(a[0], a[1], a[2], a[3], a[4]),
+    825690147: (a) => new IFC4.IfcQuantityWeight(a[0], a[1], a[2], a[3], a[4]),
+    3915482550: (a) => new IFC4.IfcRecurrencePattern(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2433181523: (a) => new IFC4.IfcReference(a[0], a[1], a[2], a[3], a[4]),
+    1076942058: (a) => new IFC4.IfcRepresentation(a[0], a[1], a[2], a[3]),
+    3377609919: (a) => new IFC4.IfcRepresentationContext(a[0], a[1]),
+    3008791417: (_) => new IFC4.IfcRepresentationItem(),
+    1660063152: (a) => new IFC4.IfcRepresentationMap(a[0], a[1]),
+    2439245199: (a) => new IFC4.IfcResourceLevelRelationship(a[0], a[1]),
+    2341007311: (a) => new IFC4.IfcRoot(a[0], a[1], a[2], a[3]),
+    448429030: (a) => new IFC4.IfcSIUnit(a[0], a[1], a[2]),
+    1054537805: (a) => new IFC4.IfcSchedulingTime(a[0], a[1], a[2]),
+    867548509: (a) => new IFC4.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]),
+    3982875396: (a) => new IFC4.IfcShapeModel(a[0], a[1], a[2], a[3]),
+    4240577450: (a) => new IFC4.IfcShapeRepresentation(a[0], a[1], a[2], a[3]),
+    2273995522: (a) => new IFC4.IfcStructuralConnectionCondition(a[0]),
+    2162789131: (a) => new IFC4.IfcStructuralLoad(a[0]),
+    3478079324: (a) => new IFC4.IfcStructuralLoadConfiguration(a[0], a[1], a[2]),
+    609421318: (a) => new IFC4.IfcStructuralLoadOrResult(a[0]),
+    2525727697: (a) => new IFC4.IfcStructuralLoadStatic(a[0]),
+    3408363356: (a) => new IFC4.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]),
+    2830218821: (a) => new IFC4.IfcStyleModel(a[0], a[1], a[2], a[3]),
+    3958052878: (a) => new IFC4.IfcStyledItem(a[0], a[1], a[2]),
+    3049322572: (a) => new IFC4.IfcStyledRepresentation(a[0], a[1], a[2], a[3]),
+    2934153892: (a) => new IFC4.IfcSurfaceReinforcementArea(a[0], a[1], a[2], a[3]),
+    1300840506: (a) => new IFC4.IfcSurfaceStyle(a[0], a[1], a[2]),
+    3303107099: (a) => new IFC4.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]),
+    1607154358: (a) => new IFC4.IfcSurfaceStyleRefraction(a[0], a[1]),
+    846575682: (a) => new IFC4.IfcSurfaceStyleShading(a[0], a[1]),
+    1351298697: (a) => new IFC4.IfcSurfaceStyleWithTextures(a[0]),
+    626085974: (a) => new IFC4.IfcSurfaceTexture(a[0], a[1], a[2], a[3], a[4]),
+    985171141: (a) => new IFC4.IfcTable(a[0], a[1], a[2]),
+    2043862942: (a) => new IFC4.IfcTableColumn(a[0], a[1], a[2], a[3], a[4]),
+    531007025: (a) => new IFC4.IfcTableRow(a[0], a[1]),
+    1549132990: (a) => new IFC4.IfcTaskTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),
+    2771591690: (a) => new IFC4.IfcTaskTimeRecurring(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]),
+    912023232: (a) => new IFC4.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1447204868: (a) => new IFC4.IfcTextStyle(a[0], a[1], a[2], a[3], a[4]),
+    2636378356: (a) => new IFC4.IfcTextStyleForDefinedFont(a[0], a[1]),
+    1640371178: (a) => new IFC4.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    280115917: (a) => new IFC4.IfcTextureCoordinate(a[0]),
+    1742049831: (a) => new IFC4.IfcTextureCoordinateGenerator(a[0], a[1], a[2]),
+    2552916305: (a) => new IFC4.IfcTextureMap(a[0], a[1], a[2]),
+    1210645708: (a) => new IFC4.IfcTextureVertex(a[0]),
+    3611470254: (a) => new IFC4.IfcTextureVertexList(a[0]),
+    1199560280: (a) => new IFC4.IfcTimePeriod(a[0], a[1]),
+    3101149627: (a) => new IFC4.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    581633288: (a) => new IFC4.IfcTimeSeriesValue(a[0]),
+    1377556343: (_) => new IFC4.IfcTopologicalRepresentationItem(),
+    1735638870: (a) => new IFC4.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]),
+    180925521: (a) => new IFC4.IfcUnitAssignment(a[0]),
+    2799835756: (_) => new IFC4.IfcVertex(),
+    1907098498: (a) => new IFC4.IfcVertexPoint(a[0]),
+    891718957: (a) => new IFC4.IfcVirtualGridIntersection(a[0], a[1]),
+    1236880293: (a) => new IFC4.IfcWorkTime(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3869604511: (a) => new IFC4.IfcApprovalRelationship(a[0], a[1], a[2], a[3]),
+    3798115385: (a) => new IFC4.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]),
+    1310608509: (a) => new IFC4.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]),
+    2705031697: (a) => new IFC4.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]),
+    616511568: (a) => new IFC4.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3150382593: (a) => new IFC4.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]),
+    747523909: (a) => new IFC4.IfcClassification(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    647927063: (a) => new IFC4.IfcClassificationReference(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3285139300: (a) => new IFC4.IfcColourRgbList(a[0]),
+    3264961684: (a) => new IFC4.IfcColourSpecification(a[0]),
+    1485152156: (a) => new IFC4.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]),
+    370225590: (a) => new IFC4.IfcConnectedFaceSet(a[0]),
+    1981873012: (a) => new IFC4.IfcConnectionCurveGeometry(a[0], a[1]),
+    45288368: (a) => new IFC4.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]),
+    3050246964: (a) => new IFC4.IfcContextDependentUnit(a[0], a[1], a[2]),
+    2889183280: (a) => new IFC4.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]),
+    2713554722: (a) => new IFC4.IfcConversionBasedUnitWithOffset(a[0], a[1], a[2], a[3], a[4]),
+    539742890: (a) => new IFC4.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3800577675: (a) => new IFC4.IfcCurveStyle(a[0], a[1], a[2], a[3], a[4]),
+    1105321065: (a) => new IFC4.IfcCurveStyleFont(a[0], a[1]),
+    2367409068: (a) => new IFC4.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]),
+    3510044353: (a) => new IFC4.IfcCurveStyleFontPattern(a[0], a[1]),
+    3632507154: (a) => new IFC4.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    1154170062: (a) => new IFC4.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    770865208: (a) => new IFC4.IfcDocumentInformationRelationship(a[0], a[1], a[2], a[3], a[4]),
+    3732053477: (a) => new IFC4.IfcDocumentReference(a[0], a[1], a[2], a[3], a[4]),
+    3900360178: (a) => new IFC4.IfcEdge(a[0], a[1]),
+    476780140: (a) => new IFC4.IfcEdgeCurve(a[0], a[1], a[2], a[3]),
+    211053100: (a) => new IFC4.IfcEventTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    297599258: (a) => new IFC4.IfcExtendedProperties(a[0], a[1], a[2]),
+    1437805879: (a) => new IFC4.IfcExternalReferenceRelationship(a[0], a[1], a[2], a[3]),
+    2556980723: (a) => new IFC4.IfcFace(a[0]),
+    1809719519: (a) => new IFC4.IfcFaceBound(a[0], a[1]),
+    803316827: (a) => new IFC4.IfcFaceOuterBound(a[0], a[1]),
+    3008276851: (a) => new IFC4.IfcFaceSurface(a[0], a[1], a[2]),
+    4219587988: (a) => new IFC4.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    738692330: (a) => new IFC4.IfcFillAreaStyle(a[0], a[1], a[2]),
+    3448662350: (a) => new IFC4.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2453401579: (_) => new IFC4.IfcGeometricRepresentationItem(),
+    4142052618: (a) => new IFC4.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3590301190: (a) => new IFC4.IfcGeometricSet(a[0]),
+    178086475: (a) => new IFC4.IfcGridPlacement(a[0], a[1]),
+    812098782: (a) => new IFC4.IfcHalfSpaceSolid(a[0], a[1]),
+    3905492369: (a) => new IFC4.IfcImageTexture(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3570813810: (a) => new IFC4.IfcIndexedColourMap(a[0], a[1], a[2], a[3]),
+    1437953363: (a) => new IFC4.IfcIndexedTextureMap(a[0], a[1], a[2]),
+    2133299955: (a) => new IFC4.IfcIndexedTriangleTextureMap(a[0], a[1], a[2], a[3]),
+    3741457305: (a) => new IFC4.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1585845231: (a) => new IFC4.IfcLagTime(a[0], a[1], a[2], a[3], a[4]),
+    1402838566: (a) => new IFC4.IfcLightSource(a[0], a[1], a[2], a[3]),
+    125510826: (a) => new IFC4.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]),
+    2604431987: (a) => new IFC4.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]),
+    4266656042: (a) => new IFC4.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1520743889: (a) => new IFC4.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3422422726: (a) => new IFC4.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    2624227202: (a) => new IFC4.IfcLocalPlacement(a[0], a[1]),
+    1008929658: (_) => new IFC4.IfcLoop(),
+    2347385850: (a) => new IFC4.IfcMappedItem(a[0], a[1]),
+    1838606355: (a) => new IFC4.IfcMaterial(a[0], a[1], a[2]),
+    3708119e3: (a) => new IFC4.IfcMaterialConstituent(a[0], a[1], a[2], a[3], a[4]),
+    2852063980: (a) => new IFC4.IfcMaterialConstituentSet(a[0], a[1], a[2]),
+    2022407955: (a) => new IFC4.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]),
+    1303795690: (a) => new IFC4.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3], a[4]),
+    3079605661: (a) => new IFC4.IfcMaterialProfileSetUsage(a[0], a[1], a[2]),
+    3404854881: (a) => new IFC4.IfcMaterialProfileSetUsageTapering(a[0], a[1], a[2], a[3], a[4]),
+    3265635763: (a) => new IFC4.IfcMaterialProperties(a[0], a[1], a[2], a[3]),
+    853536259: (a) => new IFC4.IfcMaterialRelationship(a[0], a[1], a[2], a[3], a[4]),
+    2998442950: (a) => new IFC4.IfcMirroredProfileDef(a[0], a[1], a[2], a[3]),
+    219451334: (a) => new IFC4.IfcObjectDefinition(a[0], a[1], a[2], a[3]),
+    2665983363: (a) => new IFC4.IfcOpenShell(a[0]),
+    1411181986: (a) => new IFC4.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]),
+    1029017970: (a) => new IFC4.IfcOrientedEdge(a[0], a[1]),
+    2529465313: (a) => new IFC4.IfcParameterizedProfileDef(a[0], a[1], a[2]),
+    2519244187: (a) => new IFC4.IfcPath(a[0]),
+    3021840470: (a) => new IFC4.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    597895409: (a) => new IFC4.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2004835150: (a) => new IFC4.IfcPlacement(a[0]),
+    1663979128: (a) => new IFC4.IfcPlanarExtent(a[0], a[1]),
+    2067069095: (_) => new IFC4.IfcPoint(),
+    4022376103: (a) => new IFC4.IfcPointOnCurve(a[0], a[1]),
+    1423911732: (a) => new IFC4.IfcPointOnSurface(a[0], a[1], a[2]),
+    2924175390: (a) => new IFC4.IfcPolyLoop(a[0]),
+    2775532180: (a) => new IFC4.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]),
+    3727388367: (a) => new IFC4.IfcPreDefinedItem(a[0]),
+    3778827333: (_) => new IFC4.IfcPreDefinedProperties(),
+    1775413392: (a) => new IFC4.IfcPreDefinedTextFont(a[0]),
+    673634403: (a) => new IFC4.IfcProductDefinitionShape(a[0], a[1], a[2]),
+    2802850158: (a) => new IFC4.IfcProfileProperties(a[0], a[1], a[2], a[3]),
+    2598011224: (a) => new IFC4.IfcProperty(a[0], a[1]),
+    1680319473: (a) => new IFC4.IfcPropertyDefinition(a[0], a[1], a[2], a[3]),
+    148025276: (a) => new IFC4.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]),
+    3357820518: (a) => new IFC4.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]),
+    1482703590: (a) => new IFC4.IfcPropertyTemplateDefinition(a[0], a[1], a[2], a[3]),
+    2090586900: (a) => new IFC4.IfcQuantitySet(a[0], a[1], a[2], a[3]),
+    3615266464: (a) => new IFC4.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    3413951693: (a) => new IFC4.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1580146022: (a) => new IFC4.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    478536968: (a) => new IFC4.IfcRelationship(a[0], a[1], a[2], a[3]),
+    2943643501: (a) => new IFC4.IfcResourceApprovalRelationship(a[0], a[1], a[2], a[3]),
+    1608871552: (a) => new IFC4.IfcResourceConstraintRelationship(a[0], a[1], a[2], a[3]),
+    1042787934: (a) => new IFC4.IfcResourceTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),
+    2778083089: (a) => new IFC4.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2042790032: (a) => new IFC4.IfcSectionProperties(a[0], a[1], a[2]),
+    4165799628: (a) => new IFC4.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1509187699: (a) => new IFC4.IfcSectionedSpine(a[0], a[1], a[2]),
+    4124623270: (a) => new IFC4.IfcShellBasedSurfaceModel(a[0]),
+    3692461612: (a) => new IFC4.IfcSimpleProperty(a[0], a[1]),
+    2609359061: (a) => new IFC4.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]),
+    723233188: (_) => new IFC4.IfcSolidModel(),
+    1595516126: (a) => new IFC4.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2668620305: (a) => new IFC4.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]),
+    2473145415: (a) => new IFC4.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1973038258: (a) => new IFC4.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1597423693: (a) => new IFC4.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1190533807: (a) => new IFC4.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2233826070: (a) => new IFC4.IfcSubedge(a[0], a[1], a[2]),
+    2513912981: (_) => new IFC4.IfcSurface(),
+    1878645084: (a) => new IFC4.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2247615214: (a) => new IFC4.IfcSweptAreaSolid(a[0], a[1]),
+    1260650574: (a) => new IFC4.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]),
+    1096409881: (a) => new IFC4.IfcSweptDiskSolidPolygonal(a[0], a[1], a[2], a[3], a[4], a[5]),
+    230924584: (a) => new IFC4.IfcSweptSurface(a[0], a[1]),
+    3071757647: (a) => new IFC4.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    901063453: (_) => new IFC4.IfcTessellatedItem(),
+    4282788508: (a) => new IFC4.IfcTextLiteral(a[0], a[1], a[2]),
+    3124975700: (a) => new IFC4.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]),
+    1983826977: (a) => new IFC4.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2715220739: (a) => new IFC4.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1628702193: (a) => new IFC4.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3736923433: (a) => new IFC4.IfcTypeProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2347495698: (a) => new IFC4.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3698973494: (a) => new IFC4.IfcTypeResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    427810014: (a) => new IFC4.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1417489154: (a) => new IFC4.IfcVector(a[0], a[1]),
+    2759199220: (a) => new IFC4.IfcVertexLoop(a[0]),
+    1299126871: (a) => new IFC4.IfcWindowStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2543172580: (a) => new IFC4.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3406155212: (a) => new IFC4.IfcAdvancedFace(a[0], a[1], a[2]),
+    669184980: (a) => new IFC4.IfcAnnotationFillArea(a[0], a[1]),
+    3207858831: (a) => new IFC4.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),
+    4261334040: (a) => new IFC4.IfcAxis1Placement(a[0], a[1]),
+    3125803723: (a) => new IFC4.IfcAxis2Placement2D(a[0], a[1]),
+    2740243338: (a) => new IFC4.IfcAxis2Placement3D(a[0], a[1], a[2]),
+    2736907675: (a) => new IFC4.IfcBooleanResult(a[0], a[1], a[2]),
+    4182860854: (_) => new IFC4.IfcBoundedSurface(),
+    2581212453: (a) => new IFC4.IfcBoundingBox(a[0], a[1], a[2], a[3]),
+    2713105998: (a) => new IFC4.IfcBoxedHalfSpace(a[0], a[1], a[2]),
+    2898889636: (a) => new IFC4.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1123145078: (a) => new IFC4.IfcCartesianPoint(a[0]),
+    574549367: (_) => new IFC4.IfcCartesianPointList(),
+    1675464909: (a) => new IFC4.IfcCartesianPointList2D(a[0]),
+    2059837836: (a) => new IFC4.IfcCartesianPointList3D(a[0]),
+    59481748: (a) => new IFC4.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]),
+    3749851601: (a) => new IFC4.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]),
+    3486308946: (a) => new IFC4.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]),
+    3331915920: (a) => new IFC4.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]),
+    1416205885: (a) => new IFC4.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1383045692: (a) => new IFC4.IfcCircleProfileDef(a[0], a[1], a[2], a[3]),
+    2205249479: (a) => new IFC4.IfcClosedShell(a[0]),
+    776857604: (a) => new IFC4.IfcColourRgb(a[0], a[1], a[2], a[3]),
+    2542286263: (a) => new IFC4.IfcComplexProperty(a[0], a[1], a[2], a[3]),
+    2485617015: (a) => new IFC4.IfcCompositeCurveSegment(a[0], a[1], a[2]),
+    2574617495: (a) => new IFC4.IfcConstructionResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3419103109: (a) => new IFC4.IfcContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1815067380: (a) => new IFC4.IfcCrewResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2506170314: (a) => new IFC4.IfcCsgPrimitive3D(a[0]),
+    2147822146: (a) => new IFC4.IfcCsgSolid(a[0]),
+    2601014836: (_) => new IFC4.IfcCurve(),
+    2827736869: (a) => new IFC4.IfcCurveBoundedPlane(a[0], a[1], a[2]),
+    2629017746: (a) => new IFC4.IfcCurveBoundedSurface(a[0], a[1], a[2]),
+    32440307: (a) => new IFC4.IfcDirection(a[0]),
+    526551008: (a) => new IFC4.IfcDoorStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1472233963: (a) => new IFC4.IfcEdgeLoop(a[0]),
+    1883228015: (a) => new IFC4.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    339256511: (a) => new IFC4.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2777663545: (a) => new IFC4.IfcElementarySurface(a[0]),
+    2835456948: (a) => new IFC4.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    4024345920: (a) => new IFC4.IfcEventType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    477187591: (a) => new IFC4.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]),
+    2804161546: (a) => new IFC4.IfcExtrudedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]),
+    2047409740: (a) => new IFC4.IfcFaceBasedSurfaceModel(a[0]),
+    374418227: (a) => new IFC4.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]),
+    315944413: (a) => new IFC4.IfcFillAreaStyleTiles(a[0], a[1], a[2]),
+    2652556860: (a) => new IFC4.IfcFixedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4238390223: (a) => new IFC4.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1268542332: (a) => new IFC4.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4095422895: (a) => new IFC4.IfcGeographicElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    987898635: (a) => new IFC4.IfcGeometricCurveSet(a[0]),
+    1484403080: (a) => new IFC4.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    178912537: (a) => new IFC4.IfcIndexedPolygonalFace(a[0]),
+    2294589976: (a) => new IFC4.IfcIndexedPolygonalFaceWithVoids(a[0], a[1]),
+    572779678: (a) => new IFC4.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    428585644: (a) => new IFC4.IfcLaborResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1281925730: (a) => new IFC4.IfcLine(a[0], a[1]),
+    1425443689: (a) => new IFC4.IfcManifoldSolidBrep(a[0]),
+    3888040117: (a) => new IFC4.IfcObject(a[0], a[1], a[2], a[3], a[4]),
+    3388369263: (a) => new IFC4.IfcOffsetCurve2D(a[0], a[1], a[2]),
+    3505215534: (a) => new IFC4.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]),
+    1682466193: (a) => new IFC4.IfcPcurve(a[0], a[1]),
+    603570806: (a) => new IFC4.IfcPlanarBox(a[0], a[1], a[2]),
+    220341763: (a) => new IFC4.IfcPlane(a[0]),
+    759155922: (a) => new IFC4.IfcPreDefinedColour(a[0]),
+    2559016684: (a) => new IFC4.IfcPreDefinedCurveFont(a[0]),
+    3967405729: (a) => new IFC4.IfcPreDefinedPropertySet(a[0], a[1], a[2], a[3]),
+    569719735: (a) => new IFC4.IfcProcedureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2945172077: (a) => new IFC4.IfcProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    4208778838: (a) => new IFC4.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    103090709: (a) => new IFC4.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    653396225: (a) => new IFC4.IfcProjectLibrary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    871118103: (a) => new IFC4.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4166981789: (a) => new IFC4.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]),
+    2752243245: (a) => new IFC4.IfcPropertyListValue(a[0], a[1], a[2], a[3]),
+    941946838: (a) => new IFC4.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]),
+    1451395588: (a) => new IFC4.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]),
+    492091185: (a) => new IFC4.IfcPropertySetTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3650150729: (a) => new IFC4.IfcPropertySingleValue(a[0], a[1], a[2], a[3]),
+    110355661: (a) => new IFC4.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3521284610: (a) => new IFC4.IfcPropertyTemplate(a[0], a[1], a[2], a[3]),
+    3219374653: (a) => new IFC4.IfcProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2770003689: (a) => new IFC4.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2798486643: (a) => new IFC4.IfcRectangularPyramid(a[0], a[1], a[2], a[3]),
+    3454111270: (a) => new IFC4.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3765753017: (a) => new IFC4.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3939117080: (a) => new IFC4.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1683148259: (a) => new IFC4.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2495723537: (a) => new IFC4.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1307041759: (a) => new IFC4.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1027710054: (a) => new IFC4.IfcRelAssignsToGroupByFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4278684876: (a) => new IFC4.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2857406711: (a) => new IFC4.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    205026976: (a) => new IFC4.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1865459582: (a) => new IFC4.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]),
+    4095574036: (a) => new IFC4.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]),
+    919958153: (a) => new IFC4.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2728634034: (a) => new IFC4.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    982818633: (a) => new IFC4.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3840914261: (a) => new IFC4.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2655215786: (a) => new IFC4.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]),
+    826625072: (a) => new IFC4.IfcRelConnects(a[0], a[1], a[2], a[3]),
+    1204542856: (a) => new IFC4.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3945020480: (a) => new IFC4.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4201705270: (a) => new IFC4.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3190031847: (a) => new IFC4.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2127690289: (a) => new IFC4.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1638771189: (a) => new IFC4.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    504942748: (a) => new IFC4.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3678494232: (a) => new IFC4.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3242617779: (a) => new IFC4.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),
+    886880790: (a) => new IFC4.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2802773753: (a) => new IFC4.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2565941209: (a) => new IFC4.IfcRelDeclares(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2551354335: (a) => new IFC4.IfcRelDecomposes(a[0], a[1], a[2], a[3]),
+    693640335: (a) => new IFC4.IfcRelDefines(a[0], a[1], a[2], a[3]),
+    1462361463: (a) => new IFC4.IfcRelDefinesByObject(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4186316022: (a) => new IFC4.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    307848117: (a) => new IFC4.IfcRelDefinesByTemplate(a[0], a[1], a[2], a[3], a[4], a[5]),
+    781010003: (a) => new IFC4.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3940055652: (a) => new IFC4.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    279856033: (a) => new IFC4.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]),
+    427948657: (a) => new IFC4.IfcRelInterferesElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3268803585: (a) => new IFC4.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]),
+    750771296: (a) => new IFC4.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1245217292: (a) => new IFC4.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4122056220: (a) => new IFC4.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    366585022: (a) => new IFC4.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3451746338: (a) => new IFC4.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3523091289: (a) => new IFC4.IfcRelSpaceBoundary1stLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1521410863: (a) => new IFC4.IfcRelSpaceBoundary2ndLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1401173127: (a) => new IFC4.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    816062949: (a) => new IFC4.IfcReparametrisedCompositeCurveSegment(a[0], a[1], a[2], a[3]),
+    2914609552: (a) => new IFC4.IfcResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1856042241: (a) => new IFC4.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]),
+    3243963512: (a) => new IFC4.IfcRevolvedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]),
+    4158566097: (a) => new IFC4.IfcRightCircularCone(a[0], a[1], a[2]),
+    3626867408: (a) => new IFC4.IfcRightCircularCylinder(a[0], a[1], a[2]),
+    3663146110: (a) => new IFC4.IfcSimplePropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1412071761: (a) => new IFC4.IfcSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    710998568: (a) => new IFC4.IfcSpatialElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2706606064: (a) => new IFC4.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3893378262: (a) => new IFC4.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    463610769: (a) => new IFC4.IfcSpatialZone(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2481509218: (a) => new IFC4.IfcSpatialZoneType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    451544542: (a) => new IFC4.IfcSphere(a[0], a[1]),
+    4015995234: (a) => new IFC4.IfcSphericalSurface(a[0], a[1]),
+    3544373492: (a) => new IFC4.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3136571912: (a) => new IFC4.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    530289379: (a) => new IFC4.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3689010777: (a) => new IFC4.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3979015343: (a) => new IFC4.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2218152070: (a) => new IFC4.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    603775116: (a) => new IFC4.IfcStructuralSurfaceReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4095615324: (a) => new IFC4.IfcSubContractResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    699246055: (a) => new IFC4.IfcSurfaceCurve(a[0], a[1], a[2]),
+    2028607225: (a) => new IFC4.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2809605785: (a) => new IFC4.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]),
+    4124788165: (a) => new IFC4.IfcSurfaceOfRevolution(a[0], a[1], a[2]),
+    1580310250: (a) => new IFC4.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3473067441: (a) => new IFC4.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    3206491090: (a) => new IFC4.IfcTaskType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2387106220: (a) => new IFC4.IfcTessellatedFaceSet(a[0]),
+    1935646853: (a) => new IFC4.IfcToroidalSurface(a[0], a[1], a[2]),
+    2097647324: (a) => new IFC4.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2916149573: (a) => new IFC4.IfcTriangulatedFaceSet(a[0], a[1], a[2], a[3], a[4]),
+    336235671: (a) => new IFC4.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),
+    512836454: (a) => new IFC4.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2296667514: (a) => new IFC4.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1635779807: (a) => new IFC4.IfcAdvancedBrep(a[0]),
+    2603310189: (a) => new IFC4.IfcAdvancedBrepWithVoids(a[0], a[1]),
+    1674181508: (a) => new IFC4.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2887950389: (a) => new IFC4.IfcBSplineSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    167062518: (a) => new IFC4.IfcBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1334484129: (a) => new IFC4.IfcBlock(a[0], a[1], a[2], a[3]),
+    3649129432: (a) => new IFC4.IfcBooleanClippingResult(a[0], a[1], a[2]),
+    1260505505: (_) => new IFC4.IfcBoundedCurve(),
+    4031249490: (a) => new IFC4.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1950629157: (a) => new IFC4.IfcBuildingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3124254112: (a) => new IFC4.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2197970202: (a) => new IFC4.IfcChimneyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2937912522: (a) => new IFC4.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    3893394355: (a) => new IFC4.IfcCivilElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    300633059: (a) => new IFC4.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3875453745: (a) => new IFC4.IfcComplexPropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3732776249: (a) => new IFC4.IfcCompositeCurve(a[0], a[1]),
+    15328376: (a) => new IFC4.IfcCompositeCurveOnSurface(a[0], a[1]),
+    2510884976: (a) => new IFC4.IfcConic(a[0]),
+    2185764099: (a) => new IFC4.IfcConstructionEquipmentResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    4105962743: (a) => new IFC4.IfcConstructionMaterialResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1525564444: (a) => new IFC4.IfcConstructionProductResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2559216714: (a) => new IFC4.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3293443760: (a) => new IFC4.IfcControl(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3895139033: (a) => new IFC4.IfcCostItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1419761937: (a) => new IFC4.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1916426348: (a) => new IFC4.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3295246426: (a) => new IFC4.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1457835157: (a) => new IFC4.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1213902940: (a) => new IFC4.IfcCylindricalSurface(a[0], a[1]),
+    3256556792: (a) => new IFC4.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3849074793: (a) => new IFC4.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2963535650: (a) => new IFC4.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    1714330368: (a) => new IFC4.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2323601079: (a) => new IFC4.IfcDoorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    445594917: (a) => new IFC4.IfcDraughtingPreDefinedColour(a[0]),
+    4006246654: (a) => new IFC4.IfcDraughtingPreDefinedCurveFont(a[0]),
+    1758889154: (a) => new IFC4.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4123344466: (a) => new IFC4.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2397081782: (a) => new IFC4.IfcElementAssemblyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1623761950: (a) => new IFC4.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2590856083: (a) => new IFC4.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1704287377: (a) => new IFC4.IfcEllipse(a[0], a[1], a[2]),
+    2107101300: (a) => new IFC4.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    132023988: (a) => new IFC4.IfcEngineType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3174744832: (a) => new IFC4.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3390157468: (a) => new IFC4.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4148101412: (a) => new IFC4.IfcEvent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2853485674: (a) => new IFC4.IfcExternalSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    807026263: (a) => new IFC4.IfcFacetedBrep(a[0]),
+    3737207727: (a) => new IFC4.IfcFacetedBrepWithVoids(a[0], a[1]),
+    647756555: (a) => new IFC4.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2489546625: (a) => new IFC4.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2827207264: (a) => new IFC4.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2143335405: (a) => new IFC4.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1287392070: (a) => new IFC4.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3907093117: (a) => new IFC4.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3198132628: (a) => new IFC4.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3815607619: (a) => new IFC4.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1482959167: (a) => new IFC4.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1834744321: (a) => new IFC4.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1339347760: (a) => new IFC4.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2297155007: (a) => new IFC4.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3009222698: (a) => new IFC4.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1893162501: (a) => new IFC4.IfcFootingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    263784265: (a) => new IFC4.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1509553395: (a) => new IFC4.IfcFurniture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3493046030: (a) => new IFC4.IfcGeographicElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3009204131: (a) => new IFC4.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2706460486: (a) => new IFC4.IfcGroup(a[0], a[1], a[2], a[3], a[4]),
+    1251058090: (a) => new IFC4.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1806887404: (a) => new IFC4.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2571569899: (a) => new IFC4.IfcIndexedPolyCurve(a[0], a[1], a[2]),
+    3946677679: (a) => new IFC4.IfcInterceptorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3113134337: (a) => new IFC4.IfcIntersectionCurve(a[0], a[1], a[2]),
+    2391368822: (a) => new IFC4.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4288270099: (a) => new IFC4.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3827777499: (a) => new IFC4.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1051575348: (a) => new IFC4.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1161773419: (a) => new IFC4.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    377706215: (a) => new IFC4.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2108223431: (a) => new IFC4.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1114901282: (a) => new IFC4.IfcMedicalDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3181161470: (a) => new IFC4.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    977012517: (a) => new IFC4.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4143007308: (a) => new IFC4.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3588315303: (a) => new IFC4.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3079942009: (a) => new IFC4.IfcOpeningStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2837617999: (a) => new IFC4.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2382730787: (a) => new IFC4.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3566463478: (a) => new IFC4.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3327091369: (a) => new IFC4.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1158309216: (a) => new IFC4.IfcPileType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    804291784: (a) => new IFC4.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4231323485: (a) => new IFC4.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4017108033: (a) => new IFC4.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2839578677: (a) => new IFC4.IfcPolygonalFaceSet(a[0], a[1], a[2], a[3]),
+    3724593414: (a) => new IFC4.IfcPolyline(a[0]),
+    3740093272: (a) => new IFC4.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2744685151: (a) => new IFC4.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2904328755: (a) => new IFC4.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3651124850: (a) => new IFC4.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1842657554: (a) => new IFC4.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2250791053: (a) => new IFC4.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2893384427: (a) => new IFC4.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2324767716: (a) => new IFC4.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1469900589: (a) => new IFC4.IfcRampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    683857671: (a) => new IFC4.IfcRationalBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    3027567501: (a) => new IFC4.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    964333572: (a) => new IFC4.IfcReinforcingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2320036040: (a) => new IFC4.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),
+    2310774935: (a) => new IFC4.IfcReinforcingMeshType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),
+    160246688: (a) => new IFC4.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2781568857: (a) => new IFC4.IfcRoofType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1768891740: (a) => new IFC4.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2157484638: (a) => new IFC4.IfcSeamCurve(a[0], a[1], a[2]),
+    4074543187: (a) => new IFC4.IfcShadingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4097777520: (a) => new IFC4.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    2533589738: (a) => new IFC4.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1072016465: (a) => new IFC4.IfcSolarDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3856911033: (a) => new IFC4.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1305183839: (a) => new IFC4.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3812236995: (a) => new IFC4.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3112655638: (a) => new IFC4.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1039846685: (a) => new IFC4.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    338393293: (a) => new IFC4.IfcStairType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    682877961: (a) => new IFC4.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1179482911: (a) => new IFC4.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1004757350: (a) => new IFC4.IfcStructuralCurveAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    4243806635: (a) => new IFC4.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    214636428: (a) => new IFC4.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2445595289: (a) => new IFC4.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2757150158: (a) => new IFC4.IfcStructuralCurveReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1807405624: (a) => new IFC4.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1252848954: (a) => new IFC4.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2082059205: (a) => new IFC4.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    734778138: (a) => new IFC4.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1235345126: (a) => new IFC4.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2986769608: (a) => new IFC4.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3657597509: (a) => new IFC4.IfcStructuralSurfaceAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1975003073: (a) => new IFC4.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    148013059: (a) => new IFC4.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3101698114: (a) => new IFC4.IfcSurfaceFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2315554128: (a) => new IFC4.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2254336722: (a) => new IFC4.IfcSystem(a[0], a[1], a[2], a[3], a[4]),
+    413509423: (a) => new IFC4.IfcSystemFurnitureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    5716631: (a) => new IFC4.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3824725483: (a) => new IFC4.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    2347447852: (a) => new IFC4.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3081323446: (a) => new IFC4.IfcTendonAnchorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2415094496: (a) => new IFC4.IfcTendonType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    1692211062: (a) => new IFC4.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1620046519: (a) => new IFC4.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3593883385: (a) => new IFC4.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]),
+    1600972822: (a) => new IFC4.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1911125066: (a) => new IFC4.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    728799441: (a) => new IFC4.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2391383451: (a) => new IFC4.IfcVibrationIsolator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3313531582: (a) => new IFC4.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2769231204: (a) => new IFC4.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    926996030: (a) => new IFC4.IfcVoidingFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1898987631: (a) => new IFC4.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1133259667: (a) => new IFC4.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4009809668: (a) => new IFC4.IfcWindowType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    4088093105: (a) => new IFC4.IfcWorkCalendar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1028945134: (a) => new IFC4.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    4218914973: (a) => new IFC4.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    3342526732: (a) => new IFC4.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    1033361043: (a) => new IFC4.IfcZone(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3821786052: (a) => new IFC4.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1411407467: (a) => new IFC4.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3352864051: (a) => new IFC4.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1871374353: (a) => new IFC4.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3460190687: (a) => new IFC4.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    1532957894: (a) => new IFC4.IfcAudioVisualApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1967976161: (a) => new IFC4.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]),
+    2461110595: (a) => new IFC4.IfcBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    819618141: (a) => new IFC4.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    231477066: (a) => new IFC4.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1136057603: (a) => new IFC4.IfcBoundaryCurve(a[0], a[1]),
+    3299480353: (a) => new IFC4.IfcBuildingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2979338954: (a) => new IFC4.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    39481116: (a) => new IFC4.IfcBuildingElementPartType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1095909175: (a) => new IFC4.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1909888760: (a) => new IFC4.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1177604601: (a) => new IFC4.IfcBuildingSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2188180465: (a) => new IFC4.IfcBurnerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    395041908: (a) => new IFC4.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3293546465: (a) => new IFC4.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2674252688: (a) => new IFC4.IfcCableFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1285652485: (a) => new IFC4.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2951183804: (a) => new IFC4.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3296154744: (a) => new IFC4.IfcChimney(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2611217952: (a) => new IFC4.IfcCircle(a[0], a[1]),
+    1677625105: (a) => new IFC4.IfcCivilElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2301859152: (a) => new IFC4.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    843113511: (a) => new IFC4.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    905975707: (a) => new IFC4.IfcColumnStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    400855858: (a) => new IFC4.IfcCommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3850581409: (a) => new IFC4.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2816379211: (a) => new IFC4.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3898045240: (a) => new IFC4.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1060000209: (a) => new IFC4.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    488727124: (a) => new IFC4.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    335055490: (a) => new IFC4.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2954562838: (a) => new IFC4.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1973544240: (a) => new IFC4.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3495092785: (a) => new IFC4.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3961806047: (a) => new IFC4.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1335981549: (a) => new IFC4.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2635815018: (a) => new IFC4.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1599208980: (a) => new IFC4.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2063403501: (a) => new IFC4.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1945004755: (a) => new IFC4.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3040386961: (a) => new IFC4.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3041715199: (a) => new IFC4.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3205830791: (a) => new IFC4.IfcDistributionSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    395920057: (a) => new IFC4.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    3242481149: (a) => new IFC4.IfcDoorStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    869906466: (a) => new IFC4.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3760055223: (a) => new IFC4.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2030761528: (a) => new IFC4.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    663422040: (a) => new IFC4.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2417008758: (a) => new IFC4.IfcElectricDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3277789161: (a) => new IFC4.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1534661035: (a) => new IFC4.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1217240411: (a) => new IFC4.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    712377611: (a) => new IFC4.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1658829314: (a) => new IFC4.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2814081492: (a) => new IFC4.IfcEngine(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3747195512: (a) => new IFC4.IfcEvaporativeCooler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    484807127: (a) => new IFC4.IfcEvaporator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1209101575: (a) => new IFC4.IfcExternalSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    346874300: (a) => new IFC4.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1810631287: (a) => new IFC4.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4222183408: (a) => new IFC4.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2058353004: (a) => new IFC4.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4278956645: (a) => new IFC4.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4037862832: (a) => new IFC4.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2188021234: (a) => new IFC4.IfcFlowMeter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3132237377: (a) => new IFC4.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    987401354: (a) => new IFC4.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    707683696: (a) => new IFC4.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2223149337: (a) => new IFC4.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3508470533: (a) => new IFC4.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    900683007: (a) => new IFC4.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3319311131: (a) => new IFC4.IfcHeatExchanger(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2068733104: (a) => new IFC4.IfcHumidifier(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4175244083: (a) => new IFC4.IfcInterceptor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2176052936: (a) => new IFC4.IfcJunctionBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    76236018: (a) => new IFC4.IfcLamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    629592764: (a) => new IFC4.IfcLightFixture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1437502449: (a) => new IFC4.IfcMedicalDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1073191201: (a) => new IFC4.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1911478936: (a) => new IFC4.IfcMemberStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2474470126: (a) => new IFC4.IfcMotorConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    144952367: (a) => new IFC4.IfcOuterBoundaryCurve(a[0], a[1]),
+    3694346114: (a) => new IFC4.IfcOutlet(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1687234759: (a) => new IFC4.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    310824031: (a) => new IFC4.IfcPipeFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3612865200: (a) => new IFC4.IfcPipeSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3171933400: (a) => new IFC4.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1156407060: (a) => new IFC4.IfcPlateStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    738039164: (a) => new IFC4.IfcProtectiveDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    655969474: (a) => new IFC4.IfcProtectiveDeviceTrippingUnitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    90941305: (a) => new IFC4.IfcPump(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2262370178: (a) => new IFC4.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3024970846: (a) => new IFC4.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3283111854: (a) => new IFC4.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1232101972: (a) => new IFC4.IfcRationalBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    979691226: (a) => new IFC4.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    2572171363: (a) => new IFC4.IfcReinforcingBarType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),
+    2016517767: (a) => new IFC4.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3053780830: (a) => new IFC4.IfcSanitaryTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1783015770: (a) => new IFC4.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1329646415: (a) => new IFC4.IfcShadingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1529196076: (a) => new IFC4.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3127900445: (a) => new IFC4.IfcSlabElementedCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3027962421: (a) => new IFC4.IfcSlabStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3420628829: (a) => new IFC4.IfcSolarDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1999602285: (a) => new IFC4.IfcSpaceHeater(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1404847402: (a) => new IFC4.IfcStackTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    331165859: (a) => new IFC4.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4252922144: (a) => new IFC4.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    2515109513: (a) => new IFC4.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    385403989: (a) => new IFC4.IfcStructuralLoadCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1621171031: (a) => new IFC4.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1162798199: (a) => new IFC4.IfcSwitchingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    812556717: (a) => new IFC4.IfcTank(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3825984169: (a) => new IFC4.IfcTransformer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3026737570: (a) => new IFC4.IfcTubeBundle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3179687236: (a) => new IFC4.IfcUnitaryControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4292641817: (a) => new IFC4.IfcUnitaryEquipment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4207607924: (a) => new IFC4.IfcValve(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2391406946: (a) => new IFC4.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4156078855: (a) => new IFC4.IfcWallElementedCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3512223829: (a) => new IFC4.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4237592921: (a) => new IFC4.IfcWasteTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3304561284: (a) => new IFC4.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    486154966: (a) => new IFC4.IfcWindowStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    2874132201: (a) => new IFC4.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1634111441: (a) => new IFC4.IfcAirTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    177149247: (a) => new IFC4.IfcAirTerminalBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2056796094: (a) => new IFC4.IfcAirToAirHeatRecovery(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3001207471: (a) => new IFC4.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    277319702: (a) => new IFC4.IfcAudioVisualAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    753842376: (a) => new IFC4.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2906023776: (a) => new IFC4.IfcBeamStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    32344328: (a) => new IFC4.IfcBoiler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2938176219: (a) => new IFC4.IfcBurner(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    635142910: (a) => new IFC4.IfcCableCarrierFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3758799889: (a) => new IFC4.IfcCableCarrierSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1051757585: (a) => new IFC4.IfcCableFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4217484030: (a) => new IFC4.IfcCableSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3902619387: (a) => new IFC4.IfcChiller(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    639361253: (a) => new IFC4.IfcCoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3221913625: (a) => new IFC4.IfcCommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3571504051: (a) => new IFC4.IfcCompressor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2272882330: (a) => new IFC4.IfcCondenser(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    578613899: (a) => new IFC4.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4136498852: (a) => new IFC4.IfcCooledBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3640358203: (a) => new IFC4.IfcCoolingTower(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4074379575: (a) => new IFC4.IfcDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1052013943: (a) => new IFC4.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    562808652: (a) => new IFC4.IfcDistributionCircuit(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1062813311: (a) => new IFC4.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    342316401: (a) => new IFC4.IfcDuctFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3518393246: (a) => new IFC4.IfcDuctSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1360408905: (a) => new IFC4.IfcDuctSilencer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1904799276: (a) => new IFC4.IfcElectricAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    862014818: (a) => new IFC4.IfcElectricDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3310460725: (a) => new IFC4.IfcElectricFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    264262732: (a) => new IFC4.IfcElectricGenerator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    402227799: (a) => new IFC4.IfcElectricMotor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1003880860: (a) => new IFC4.IfcElectricTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3415622556: (a) => new IFC4.IfcFan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    819412036: (a) => new IFC4.IfcFilter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1426591983: (a) => new IFC4.IfcFireSuppressionTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    182646315: (a) => new IFC4.IfcFlowInstrument(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2295281155: (a) => new IFC4.IfcProtectiveDeviceTrippingUnit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4086658281: (a) => new IFC4.IfcSensor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    630975310: (a) => new IFC4.IfcUnitaryControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4288193352: (a) => new IFC4.IfcActuator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3087945054: (a) => new IFC4.IfcAlarm(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    25142252: (a) => new IFC4.IfcController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])
+  };
+  ToRawLineData[2] = {
+    3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],
+    618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],
+    639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],
+    411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],
+    130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval],
+    4037036970: (i) => [i.Name],
+    1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)],
+    3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)],
+    1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)],
+    2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)],
+    2859738748: (_) => [],
+    2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],
+    2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],
+    775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement],
+    1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],
+    1785450214: (i) => [i.SourceCRS, i.TargetCRS],
+    1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum],
+    602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],
+    1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType],
+    1045800335: (i) => [i.Unit, i.Exponent],
+    2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],
+    4294318154: (_) => [],
+    3200245327: (i) => [i.Location, i.Identification, i.Name],
+    2242383968: (i) => [i.Location, i.Identification, i.Name],
+    1040185647: (i) => [i.Location, i.Identification, i.Name],
+    3548104201: (i) => [i.Location, i.Identification, i.Name],
+    852622518: (i) => {
+      var _a;
+      return [i.AxisTag, i.AxisCurve, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],
+    2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description],
+    3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary],
+    4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],
+    1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],
+    3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale],
+    1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],
+    760658860: (_) => [],
+    248100487: (i) => {
+      var _a;
+      return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString(), i.Name, i.Description, i.Category, i.Priority];
+    },
+    3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description],
+    1847252529: (i) => {
+      var _a;
+      return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString(), i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues];
+    },
+    2199411900: (i) => [i.Materials],
+    2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category],
+    164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile],
+    552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues],
+    1507914824: (_) => [],
+    2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],
+    3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath],
+    2706619895: (i) => [i.Currency],
+    1918398963: (i) => [i.Dimensions, i.UnitType],
+    3701648758: (_) => [],
+    2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier],
+    4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses],
+    1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],
+    2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],
+    101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],
+    2483315170: (i) => [i.Name, i.Description],
+    2226359599: (i) => [i.Name, i.Description, i.Unit],
+    3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],
+    677532197: (_) => [],
+    2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],
+    1304840413: (i) => {
+      var _a, _b, _c;
+      return [i.Name, i.Description, i.AssignedItems, i.Identifier, (_a = i.LayerOn) == null ? void 0 : _a.toString(), (_b = i.LayerFrozen) == null ? void 0 : _b.toString(), (_c = i.LayerBlocked) == null ? void 0 : _c.toString(), i.LayerStyles];
+    },
+    3119450353: (i) => [i.Name],
+    2417041796: (i) => [i.Styles],
+    2095639259: (i) => [i.Name, i.Description, i.Representations],
+    3958567839: (i) => [i.ProfileType, i.ProfileName],
+    3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit],
+    986844984: (_) => [],
+    3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],
+    2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula],
+    2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula],
+    931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula],
+    3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula],
+    2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula],
+    825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula],
+    3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods],
+    2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference],
+    1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    3377609919: (i) => [i.ContextIdentifier, i.ContextType],
+    3008791417: (_) => [],
+    1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],
+    2439245199: (i) => [i.Name, i.Description],
+    2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],
+    1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin],
+    867548509: (i) => {
+      var _a;
+      return [i.ShapeRepresentations, i.Name, i.Description, (_a = i.ProductDefinitional) == null ? void 0 : _a.toString(), i.PartOfProductDefinitionShape];
+    },
+    3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    2273995522: (i) => [i.Name],
+    2162789131: (i) => [i.Name],
+    3478079324: (i) => [i.Name, i.Values, i.Locations],
+    609421318: (i) => [i.Name],
+    2525727697: (i) => [i.Name],
+    3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ],
+    2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    3958052878: (i) => [i.Item, i.Styles, i.Name],
+    3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement],
+    1300840506: (i) => [i.Name, i.Side, i.Styles],
+    3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],
+    1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],
+    846575682: (i) => [i.SurfaceColour, i.Transparency],
+    1351298697: (i) => [i.Textures],
+    626085974: (i) => {
+      var _a, _b;
+      return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter];
+    },
+    985171141: (i) => [i.Name, i.Rows, i.Columns],
+    2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath],
+    531007025: (i) => {
+      var _a;
+      return [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), (_a = i.IsHeading) == null ? void 0 : _a.toString()];
+    },
+    1549132990: (i) => {
+      var _a;
+      return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, (_a = i.IsCritical) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion];
+    },
+    2771591690: (i) => {
+      var _a;
+      return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, (_a = i.IsCritical) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence];
+    },
+    912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs],
+    1447204868: (i) => {
+      var _a;
+      return [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()];
+    },
+    2636378356: (i) => [i.Colour, i.BackgroundColour],
+    1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],
+    280115917: (i) => [i.Maps],
+    1742049831: (i) => [i.Maps, i.Mode, i.Parameter],
+    2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo],
+    1210645708: (i) => [i.Coordinates],
+    3611470254: (i) => [i.TexCoordsList],
+    1199560280: (i) => [i.StartTime, i.EndTime],
+    3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],
+    581633288: (i) => [i.ListValues.map((p) => Labelise(p))],
+    1377556343: (_) => [],
+    1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    180925521: (i) => [i.Units],
+    2799835756: (_) => [],
+    1907098498: (i) => [i.VertexGeometry],
+    891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],
+    1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.Start, i.Finish],
+    3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals],
+    3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],
+    1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],
+    2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],
+    616511568: (i) => {
+      var _a, _b;
+      return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode];
+    },
+    3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],
+    747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Location, i.ReferenceTokens],
+    647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort],
+    3285139300: (i) => [i.ColourList],
+    3264961684: (i) => [i.Name],
+    1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],
+    370225590: (i) => [i.CfsFaces],
+    1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],
+    45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],
+    3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],
+    2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],
+    2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset],
+    539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],
+    3800577675: (i) => {
+      var _a;
+      return [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()];
+    },
+    1105321065: (i) => [i.Name, i.PatternList],
+    2367409068: (i) => [i.Name, i.CurveFont, i.CurveFontScaling],
+    3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],
+    3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],
+    1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],
+    770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],
+    3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument],
+    3900360178: (i) => [i.EdgeStart, i.EdgeEnd],
+    476780140: (i) => {
+      var _a;
+      return [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate],
+    297599258: (i) => [i.Name, i.Description, i.Properties],
+    1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects],
+    2556980723: (i) => [i.Bounds],
+    1809719519: (i) => {
+      var _a;
+      return [i.Bound, (_a = i.Orientation) == null ? void 0 : _a.toString()];
+    },
+    803316827: (i) => {
+      var _a;
+      return [i.Bound, (_a = i.Orientation) == null ? void 0 : _a.toString()];
+    },
+    3008276851: (i) => {
+      var _a;
+      return [i.Bounds, i.FaceSurface, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],
+    738692330: (i) => {
+      var _a;
+      return [i.Name, i.FillStyles, (_a = i.ModelorDraughting) == null ? void 0 : _a.toString()];
+    },
+    3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],
+    2453401579: (_) => [],
+    4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],
+    3590301190: (i) => [i.Elements],
+    178086475: (i) => [i.PlacementLocation, i.PlacementRefDirection],
+    812098782: (i) => {
+      var _a;
+      return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString()];
+    },
+    3905492369: (i) => {
+      var _a, _b;
+      return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.URLReference];
+    },
+    3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex],
+    1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords],
+    2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex],
+    3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],
+    1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType],
+    1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],
+    125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],
+    2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],
+    4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],
+    1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],
+    3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],
+    2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],
+    1008929658: (_) => [],
+    2347385850: (i) => [i.MappingSource, i.MappingTarget],
+    1838606355: (i) => [i.Name, i.Description, i.Category],
+    3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category],
+    2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents],
+    2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],
+    1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent],
+    3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent],
+    3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint],
+    3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material],
+    853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.Expression],
+    2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],
+    219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    2665983363: (i) => [i.CfsFaces],
+    1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],
+    1029017970: (i) => {
+      var _a;
+      return [i.EdgeStart, i.EdgeEnd, i.EdgeElement, (_a = i.Orientation) == null ? void 0 : _a.toString()];
+    },
+    2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],
+    2519244187: (i) => [i.EdgeList],
+    3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],
+    597895409: (i) => {
+      var _a, _b;
+      return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel];
+    },
+    2004835150: (i) => [i.Location],
+    1663979128: (i) => [i.SizeInX, i.SizeInY],
+    2067069095: (_) => [],
+    4022376103: (i) => [i.BasisCurve, i.PointParameter],
+    1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],
+    2924175390: (i) => [i.Polygon],
+    2775532180: (i) => {
+      var _a;
+      return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString(), i.Position, i.PolygonalBoundary];
+    },
+    3727388367: (i) => [i.Name],
+    3778827333: (_) => [],
+    1775413392: (i) => [i.Name],
+    673634403: (i) => [i.Name, i.Description, i.Representations],
+    2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition],
+    2598011224: (i) => [i.Name, i.Description],
+    1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression],
+    3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],
+    3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],
+    1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],
+    478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval],
+    1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects],
+    1042787934: (i) => {
+      var _a;
+      return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, (_a = i.IsOverAllocated) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion];
+    },
+    2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],
+    2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],
+    4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],
+    1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],
+    4124623270: (i) => [i.SbsmBoundary],
+    3692461612: (i) => [i.Name, i.Description],
+    2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],
+    723233188: (_) => [],
+    1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],
+    2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],
+    2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],
+    1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],
+    1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],
+    1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],
+    2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],
+    2513912981: (_) => [],
+    1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],
+    2247615214: (i) => [i.SweptArea, i.Position],
+    1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],
+    1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius],
+    230924584: (i) => [i.SweptCurve, i.Position],
+    3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope],
+    901063453: (_) => [],
+    4282788508: (i) => [i.Literal, i.Placement, i.Path],
+    3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],
+    1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],
+    2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],
+    1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],
+    3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType],
+    2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],
+    3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType],
+    427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope],
+    1417489154: (i) => [i.Orientation, i.Magnitude],
+    2759199220: (i) => [i.LoopVertex],
+    1299126871: (i) => {
+      var _a, _b;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ConstructionType, i.OperationType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), (_b = i.Sizeable) == null ? void 0 : _b.toString()];
+    },
+    2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],
+    3406155212: (i) => {
+      var _a;
+      return [i.Bounds, i.FaceSurface, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],
+    3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope],
+    4261334040: (i) => [i.Location, i.Axis],
+    3125803723: (i) => [i.Location, i.RefDirection],
+    2740243338: (i) => [i.Location, i.Axis, i.RefDirection],
+    2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],
+    4182860854: (_) => [],
+    2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],
+    2713105998: (i) => {
+      var _a;
+      return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString(), i.Enclosure];
+    },
+    2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius],
+    1123145078: (i) => [i.Coordinates],
+    574549367: (_) => [],
+    1675464909: (i) => [i.CoordList],
+    2059837836: (i) => [i.CoordList],
+    59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],
+    3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],
+    3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],
+    3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],
+    1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],
+    1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],
+    2205249479: (i) => [i.CfsFaces],
+    776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],
+    2542286263: (i) => [i.Name, i.Description, i.UsageName, i.HasProperties],
+    2485617015: (i) => {
+      var _a;
+      return [i.Transition, (_a = i.SameSense) == null ? void 0 : _a.toString(), i.ParentCurve];
+    },
+    2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity],
+    3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],
+    1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    2506170314: (i) => [i.Position],
+    2147822146: (i) => [i.TreeRootExpression],
+    2601014836: (_) => [],
+    2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],
+    2629017746: (i) => {
+      var _a;
+      return [i.BasisSurface, i.Boundaries, (_a = i.ImplicitOuter) == null ? void 0 : _a.toString()];
+    },
+    32440307: (i) => [i.DirectionRatios],
+    526551008: (i) => {
+      var _a, _b;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.OperationType, i.ConstructionType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), (_b = i.Sizeable) == null ? void 0 : _b.toString()];
+    },
+    1472233963: (i) => [i.EdgeList],
+    1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],
+    339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2777663545: (i) => [i.Position],
+    2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],
+    4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType],
+    477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],
+    2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea],
+    2047409740: (i) => [i.FbsmFaces],
+    374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],
+    315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],
+    2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.FixedReference],
+    4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType],
+    4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    987898635: (i) => [i.Elements],
+    1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope],
+    178912537: (i) => [i.CoordIndex],
+    2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices],
+    572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope],
+    428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1281925730: (i) => [i.Pnt, i.Dir],
+    1425443689: (i) => [i.Outer],
+    3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    3388369263: (i) => {
+      var _a;
+      return [i.BasisCurve, i.Distance, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    3505215534: (i) => {
+      var _a;
+      return [i.BasisCurve, i.Distance, (_a = i.SelfIntersect) == null ? void 0 : _a.toString(), i.RefDirection];
+    },
+    1682466193: (i) => [i.BasisSurface, i.ReferenceCurve],
+    603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],
+    220341763: (i) => [i.Position],
+    759155922: (i) => [i.Name],
+    2559016684: (i) => [i.Name],
+    3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType],
+    2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],
+    4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],
+    653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],
+    871118103: (i) => [i.Name, i.Description, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)],
+    4166981789: (i) => [i.Name, i.Description, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],
+    2752243245: (i) => [i.Name, i.Description, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit],
+    941946838: (i) => [i.Name, i.Description, i.UsageName, i.PropertyReference],
+    1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],
+    492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates],
+    3650150729: (i) => [i.Name, i.Description, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],
+    110355661: (i) => [i.Name, i.Description, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation],
+    3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    3219374653: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.ProxyType, i.Tag],
+    2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],
+    2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],
+    3454111270: (i) => {
+      var _a, _b;
+      return [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, (_a = i.Usense) == null ? void 0 : _a.toString(), (_b = i.Vsense) == null ? void 0 : _b.toString()];
+    },
+    3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],
+    3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],
+    1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],
+    2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],
+    1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],
+    1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor],
+    4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],
+    2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],
+    205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],
+    1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],
+    4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],
+    919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],
+    2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],
+    982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],
+    3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],
+    2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],
+    826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],
+    3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],
+    4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],
+    3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],
+    2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],
+    1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],
+    504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],
+    3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],
+    3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],
+    886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],
+    2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings],
+    2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions],
+    2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject],
+    4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],
+    307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate],
+    781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],
+    3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],
+    279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],
+    427948657: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceType, i.ImpliedOrder],
+    3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],
+    750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],
+    1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],
+    4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType],
+    366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],
+    3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],
+    3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary],
+    1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary],
+    1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],
+    816062949: (i) => {
+      var _a;
+      return [i.Transition, (_a = i.SameSense) == null ? void 0 : _a.toString(), i.ParentCurve, i.ParamLength];
+    },
+    2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],
+    1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],
+    3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea],
+    4158566097: (i) => [i.Position, i.Height, i.BottomRadius],
+    3626867408: (i) => [i.Position, i.Height, i.Radius],
+    3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState],
+    1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],
+    710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],
+    3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],
+    2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],
+    451544542: (i) => [i.Position, i.Radius],
+    4015995234: (i) => [i.Position, i.Radius],
+    3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],
+    2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],
+    603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],
+    4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],
+    2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, i.StartParam, i.EndParam, i.ReferenceSurface],
+    2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],
+    4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],
+    1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3473067441: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, (_a = i.IsMilestone) == null ? void 0 : _a.toString(), i.Priority, i.TaskTime, i.PredefinedType];
+    },
+    3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod],
+    2387106220: (i) => [i.Coordinates],
+    1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius],
+    2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2916149573: (i) => {
+      var _a;
+      return [i.Coordinates, i.Normals, (_a = i.Closed) == null ? void 0 : _a.toString(), i.CoordIndex, i.PnIndex];
+    },
+    336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],
+    512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],
+    2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],
+    1635779807: (i) => [i.Outer],
+    2603310189: (i) => [i.Outer, i.Voids],
+    1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    2887950389: (i) => {
+      var _a, _b, _c;
+      return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString()];
+    },
+    167062518: (i) => {
+      var _a, _b, _c;
+      return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString(), i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec];
+    },
+    1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],
+    3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],
+    1260505505: (_) => [],
+    4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],
+    1950629157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],
+    2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],
+    3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates],
+    3732776249: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    15328376: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    2510884976: (i) => [i.Position],
+    2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity],
+    3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification],
+    3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities],
+    1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate],
+    1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1213902940: (i) => [i.Position, i.Radius],
+    3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],
+    1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],
+    2323601079: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), i.UserDefinedOperationType];
+    },
+    445594917: (i) => [i.Name],
+    4006246654: (i) => [i.Name],
+    1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],
+    2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],
+    2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime],
+    2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],
+    807026263: (i) => [i.Outer],
+    3737207727: (i) => [i.Outer, i.Voids],
+    647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType],
+    2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2571569899: (i) => {
+      var _a;
+      return [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],
+    2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],
+    4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType],
+    2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength],
+    1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],
+    3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3079942009: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType],
+    3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],
+    3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],
+    1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2839578677: (i) => {
+      var _a;
+      return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString(), i.Faces, i.PnIndex];
+    },
+    3724593414: (i) => [i.Points],
+    3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType],
+    2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],
+    3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    683857671: (i) => {
+      var _a, _b, _c;
+      return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString(), i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData];
+    },
+    3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],
+    964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType],
+    2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],
+    160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],
+    2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],
+    4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],
+    2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring],
+    1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],
+    3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    682877961: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString()];
+    },
+    1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],
+    1004757350: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType];
+    },
+    4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.Axis],
+    214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],
+    2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],
+    2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],
+    1807405624: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType];
+    },
+    1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],
+    2082059205: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString()];
+    },
+    734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem],
+    1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    2986769608: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, (_a = i.IsLinear) == null ? void 0 : _a.toString()];
+    },
+    3657597509: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType];
+    },
+    1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],
+    148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],
+    2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],
+    3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter],
+    1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3593883385: (i) => {
+      var _a;
+      return [i.BasisCurve, i.Trim1, i.Trim2, (_a = i.SenseAgreement) == null ? void 0 : _a.toString(), i.MasterRepresentation];
+    },
+    1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4009809668: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), i.UserDefinedPartitioningType];
+    },
+    4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType],
+    1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime],
+    4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],
+    3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],
+    1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName],
+    3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],
+    1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],
+    1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1967976161: (i) => {
+      var _a, _b;
+      return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString()];
+    },
+    2461110595: (i) => {
+      var _a, _b;
+      return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString(), i.KnotMultiplicities, i.Knots, i.KnotSpec];
+    },
+    819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1136057603: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    3299480353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],
+    2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2611217952: (i) => [i.Position, i.Radius],
+    1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    905975707: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType],
+    3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],
+    395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],
+    3242481149: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],
+    869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],
+    346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1911478936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    144952367: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],
+    310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1156407060: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1232101972: (i) => {
+      var _a, _b;
+      return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString(), i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData];
+    },
+    979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface],
+    2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],
+    2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3127900445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3027962421: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType],
+    2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement],
+    385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients],
+    1621171031: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType];
+    },
+    1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4156078855: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],
+    486154966: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],
+    2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2906023776: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],
+    1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType]
+  };
+  TypeInitialisers[2] = {
+    3699917729: (v) => new IFC4.IfcAbsorbedDoseMeasure(v),
+    4182062534: (v) => new IFC4.IfcAccelerationMeasure(v),
+    360377573: (v) => new IFC4.IfcAmountOfSubstanceMeasure(v),
+    632304761: (v) => new IFC4.IfcAngularVelocityMeasure(v),
+    3683503648: (v) => new IFC4.IfcArcIndex(v.map((x) => x.value)),
+    1500781891: (v) => new IFC4.IfcAreaDensityMeasure(v),
+    2650437152: (v) => new IFC4.IfcAreaMeasure(v),
+    2314439260: (v) => new IFC4.IfcBinary(v),
+    2735952531: (v) => new IFC4.IfcBoolean(v),
+    1867003952: (v) => new IFC4.IfcBoxAlignment(v),
+    1683019596: (v) => new IFC4.IfcCardinalPointReference(v),
+    2991860651: (v) => new IFC4.IfcComplexNumber(v.map((x) => x.value)),
+    3812528620: (v) => new IFC4.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)),
+    3238673880: (v) => new IFC4.IfcContextDependentMeasure(v),
+    1778710042: (v) => new IFC4.IfcCountMeasure(v),
+    94842927: (v) => new IFC4.IfcCurvatureMeasure(v),
+    937566702: (v) => new IFC4.IfcDate(v),
+    2195413836: (v) => new IFC4.IfcDateTime(v),
+    86635668: (v) => new IFC4.IfcDayInMonthNumber(v),
+    3701338814: (v) => new IFC4.IfcDayInWeekNumber(v),
+    1514641115: (v) => new IFC4.IfcDescriptiveMeasure(v),
+    4134073009: (v) => new IFC4.IfcDimensionCount(v),
+    524656162: (v) => new IFC4.IfcDoseEquivalentMeasure(v),
+    2541165894: (v) => new IFC4.IfcDuration(v),
+    69416015: (v) => new IFC4.IfcDynamicViscosityMeasure(v),
+    1827137117: (v) => new IFC4.IfcElectricCapacitanceMeasure(v),
+    3818826038: (v) => new IFC4.IfcElectricChargeMeasure(v),
+    2093906313: (v) => new IFC4.IfcElectricConductanceMeasure(v),
+    3790457270: (v) => new IFC4.IfcElectricCurrentMeasure(v),
+    2951915441: (v) => new IFC4.IfcElectricResistanceMeasure(v),
+    2506197118: (v) => new IFC4.IfcElectricVoltageMeasure(v),
+    2078135608: (v) => new IFC4.IfcEnergyMeasure(v),
+    1102727119: (v) => new IFC4.IfcFontStyle(v),
+    2715512545: (v) => new IFC4.IfcFontVariant(v),
+    2590844177: (v) => new IFC4.IfcFontWeight(v),
+    1361398929: (v) => new IFC4.IfcForceMeasure(v),
+    3044325142: (v) => new IFC4.IfcFrequencyMeasure(v),
+    3064340077: (v) => new IFC4.IfcGloballyUniqueId(v),
+    3113092358: (v) => new IFC4.IfcHeatFluxDensityMeasure(v),
+    1158859006: (v) => new IFC4.IfcHeatingValueMeasure(v),
+    983778844: (v) => new IFC4.IfcIdentifier(v),
+    3358199106: (v) => new IFC4.IfcIlluminanceMeasure(v),
+    2679005408: (v) => new IFC4.IfcInductanceMeasure(v),
+    1939436016: (v) => new IFC4.IfcInteger(v),
+    3809634241: (v) => new IFC4.IfcIntegerCountRateMeasure(v),
+    3686016028: (v) => new IFC4.IfcIonConcentrationMeasure(v),
+    3192672207: (v) => new IFC4.IfcIsothermalMoistureCapacityMeasure(v),
+    2054016361: (v) => new IFC4.IfcKinematicViscosityMeasure(v),
+    3258342251: (v) => new IFC4.IfcLabel(v),
+    1275358634: (v) => new IFC4.IfcLanguageId(v),
+    1243674935: (v) => new IFC4.IfcLengthMeasure(v),
+    1774176899: (v) => new IFC4.IfcLineIndex(v.map((x) => x.value)),
+    191860431: (v) => new IFC4.IfcLinearForceMeasure(v),
+    2128979029: (v) => new IFC4.IfcLinearMomentMeasure(v),
+    1307019551: (v) => new IFC4.IfcLinearStiffnessMeasure(v),
+    3086160713: (v) => new IFC4.IfcLinearVelocityMeasure(v),
+    503418787: (v) => new IFC4.IfcLogical(v),
+    2095003142: (v) => new IFC4.IfcLuminousFluxMeasure(v),
+    2755797622: (v) => new IFC4.IfcLuminousIntensityDistributionMeasure(v),
+    151039812: (v) => new IFC4.IfcLuminousIntensityMeasure(v),
+    286949696: (v) => new IFC4.IfcMagneticFluxDensityMeasure(v),
+    2486716878: (v) => new IFC4.IfcMagneticFluxMeasure(v),
+    1477762836: (v) => new IFC4.IfcMassDensityMeasure(v),
+    4017473158: (v) => new IFC4.IfcMassFlowRateMeasure(v),
+    3124614049: (v) => new IFC4.IfcMassMeasure(v),
+    3531705166: (v) => new IFC4.IfcMassPerLengthMeasure(v),
+    3341486342: (v) => new IFC4.IfcModulusOfElasticityMeasure(v),
+    2173214787: (v) => new IFC4.IfcModulusOfLinearSubgradeReactionMeasure(v),
+    1052454078: (v) => new IFC4.IfcModulusOfRotationalSubgradeReactionMeasure(v),
+    1753493141: (v) => new IFC4.IfcModulusOfSubgradeReactionMeasure(v),
+    3177669450: (v) => new IFC4.IfcMoistureDiffusivityMeasure(v),
+    1648970520: (v) => new IFC4.IfcMolecularWeightMeasure(v),
+    3114022597: (v) => new IFC4.IfcMomentOfInertiaMeasure(v),
+    2615040989: (v) => new IFC4.IfcMonetaryMeasure(v),
+    765770214: (v) => new IFC4.IfcMonthInYearNumber(v),
+    525895558: (v) => new IFC4.IfcNonNegativeLengthMeasure(v),
+    2095195183: (v) => new IFC4.IfcNormalisedRatioMeasure(v),
+    2395907400: (v) => new IFC4.IfcNumericMeasure(v),
+    929793134: (v) => new IFC4.IfcPHMeasure(v),
+    2260317790: (v) => new IFC4.IfcParameterValue(v),
+    2642773653: (v) => new IFC4.IfcPlanarForceMeasure(v),
+    4042175685: (v) => new IFC4.IfcPlaneAngleMeasure(v),
+    1790229001: (v) => new IFC4.IfcPositiveInteger(v),
+    2815919920: (v) => new IFC4.IfcPositiveLengthMeasure(v),
+    3054510233: (v) => new IFC4.IfcPositivePlaneAngleMeasure(v),
+    1245737093: (v) => new IFC4.IfcPositiveRatioMeasure(v),
+    1364037233: (v) => new IFC4.IfcPowerMeasure(v),
+    2169031380: (v) => new IFC4.IfcPresentableText(v),
+    3665567075: (v) => new IFC4.IfcPressureMeasure(v),
+    2798247006: (v) => new IFC4.IfcPropertySetDefinitionSet(v.map((x) => x.value)),
+    3972513137: (v) => new IFC4.IfcRadioActivityMeasure(v),
+    96294661: (v) => new IFC4.IfcRatioMeasure(v),
+    200335297: (v) => new IFC4.IfcReal(v),
+    2133746277: (v) => new IFC4.IfcRotationalFrequencyMeasure(v),
+    1755127002: (v) => new IFC4.IfcRotationalMassMeasure(v),
+    3211557302: (v) => new IFC4.IfcRotationalStiffnessMeasure(v),
+    3467162246: (v) => new IFC4.IfcSectionModulusMeasure(v),
+    2190458107: (v) => new IFC4.IfcSectionalAreaIntegralMeasure(v),
+    408310005: (v) => new IFC4.IfcShearModulusMeasure(v),
+    3471399674: (v) => new IFC4.IfcSolidAngleMeasure(v),
+    4157543285: (v) => new IFC4.IfcSoundPowerLevelMeasure(v),
+    846465480: (v) => new IFC4.IfcSoundPowerMeasure(v),
+    3457685358: (v) => new IFC4.IfcSoundPressureLevelMeasure(v),
+    993287707: (v) => new IFC4.IfcSoundPressureMeasure(v),
+    3477203348: (v) => new IFC4.IfcSpecificHeatCapacityMeasure(v),
+    2757832317: (v) => new IFC4.IfcSpecularExponent(v),
+    361837227: (v) => new IFC4.IfcSpecularRoughness(v),
+    58845555: (v) => new IFC4.IfcTemperatureGradientMeasure(v),
+    1209108979: (v) => new IFC4.IfcTemperatureRateOfChangeMeasure(v),
+    2801250643: (v) => new IFC4.IfcText(v),
+    1460886941: (v) => new IFC4.IfcTextAlignment(v),
+    3490877962: (v) => new IFC4.IfcTextDecoration(v),
+    603696268: (v) => new IFC4.IfcTextFontName(v),
+    296282323: (v) => new IFC4.IfcTextTransformation(v),
+    232962298: (v) => new IFC4.IfcThermalAdmittanceMeasure(v),
+    2645777649: (v) => new IFC4.IfcThermalConductivityMeasure(v),
+    2281867870: (v) => new IFC4.IfcThermalExpansionCoefficientMeasure(v),
+    857959152: (v) => new IFC4.IfcThermalResistanceMeasure(v),
+    2016195849: (v) => new IFC4.IfcThermalTransmittanceMeasure(v),
+    743184107: (v) => new IFC4.IfcThermodynamicTemperatureMeasure(v),
+    4075327185: (v) => new IFC4.IfcTime(v),
+    2726807636: (v) => new IFC4.IfcTimeMeasure(v),
+    2591213694: (v) => new IFC4.IfcTimeStamp(v),
+    1278329552: (v) => new IFC4.IfcTorqueMeasure(v),
+    950732822: (v) => new IFC4.IfcURIReference(v),
+    3345633955: (v) => new IFC4.IfcVaporPermeabilityMeasure(v),
+    3458127941: (v) => new IFC4.IfcVolumeMeasure(v),
+    2593997549: (v) => new IFC4.IfcVolumetricFlowRateMeasure(v),
+    51269191: (v) => new IFC4.IfcWarpingConstantMeasure(v),
+    1718600412: (v) => new IFC4.IfcWarpingMomentMeasure(v)
+  };
+  var IFC4;
+  (function(IFC42) {
+    class IfcAbsorbedDoseMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;
+    class IfcAccelerationMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcAccelerationMeasure = IfcAccelerationMeasure;
+    class IfcAmountOfSubstanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;
+    class IfcAngularVelocityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;
+    class IfcArcIndex {
+      constructor(value) {
+        this.value = value;
+        this.type = 5;
+      }
+    }
+    IFC42.IfcArcIndex = IfcArcIndex;
+    ;
+    class IfcAreaDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcAreaDensityMeasure = IfcAreaDensityMeasure;
+    class IfcAreaMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcAreaMeasure = IfcAreaMeasure;
+    class IfcBinary {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcBinary = IfcBinary;
+    class IfcBoolean {
+      constructor(v) {
+        this.type = 3;
+        this.value = v === null ? v : v == "T" ? true : false;
+      }
+    }
+    IFC42.IfcBoolean = IfcBoolean;
+    class IfcBoxAlignment {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcBoxAlignment = IfcBoxAlignment;
+    class IfcCardinalPointReference {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcCardinalPointReference = IfcCardinalPointReference;
+    class IfcComplexNumber {
+      constructor(value) {
+        this.value = value;
+        this.type = 4;
+      }
+    }
+    IFC42.IfcComplexNumber = IfcComplexNumber;
+    ;
+    class IfcCompoundPlaneAngleMeasure {
+      constructor(value) {
+        this.value = value;
+        this.type = 10;
+      }
+    }
+    IFC42.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;
+    ;
+    class IfcContextDependentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcContextDependentMeasure = IfcContextDependentMeasure;
+    class IfcCountMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcCountMeasure = IfcCountMeasure;
+    class IfcCurvatureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcCurvatureMeasure = IfcCurvatureMeasure;
+    class IfcDate {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcDate = IfcDate;
+    class IfcDateTime {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcDateTime = IfcDateTime;
+    class IfcDayInMonthNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcDayInMonthNumber = IfcDayInMonthNumber;
+    class IfcDayInWeekNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcDayInWeekNumber = IfcDayInWeekNumber;
+    class IfcDescriptiveMeasure {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcDescriptiveMeasure = IfcDescriptiveMeasure;
+    class IfcDimensionCount {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcDimensionCount = IfcDimensionCount;
+    class IfcDoseEquivalentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;
+    class IfcDuration {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcDuration = IfcDuration;
+    class IfcDynamicViscosityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;
+    class IfcElectricCapacitanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;
+    class IfcElectricChargeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcElectricChargeMeasure = IfcElectricChargeMeasure;
+    class IfcElectricConductanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;
+    class IfcElectricCurrentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;
+    class IfcElectricResistanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;
+    class IfcElectricVoltageMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;
+    class IfcEnergyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcEnergyMeasure = IfcEnergyMeasure;
+    class IfcFontStyle {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcFontStyle = IfcFontStyle;
+    class IfcFontVariant {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcFontVariant = IfcFontVariant;
+    class IfcFontWeight {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcFontWeight = IfcFontWeight;
+    class IfcForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcForceMeasure = IfcForceMeasure;
+    class IfcFrequencyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcFrequencyMeasure = IfcFrequencyMeasure;
+    class IfcGloballyUniqueId {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcGloballyUniqueId = IfcGloballyUniqueId;
+    class IfcHeatFluxDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;
+    class IfcHeatingValueMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcHeatingValueMeasure = IfcHeatingValueMeasure;
+    class IfcIdentifier {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcIdentifier = IfcIdentifier;
+    class IfcIlluminanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcIlluminanceMeasure = IfcIlluminanceMeasure;
+    class IfcInductanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcInductanceMeasure = IfcInductanceMeasure;
+    class IfcInteger {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcInteger = IfcInteger;
+    class IfcIntegerCountRateMeasure {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;
+    class IfcIonConcentrationMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;
+    class IfcIsothermalMoistureCapacityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;
+    class IfcKinematicViscosityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;
+    class IfcLabel {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcLabel = IfcLabel;
+    class IfcLanguageId {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcLanguageId = IfcLanguageId;
+    class IfcLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcLengthMeasure = IfcLengthMeasure;
+    class IfcLineIndex {
+      constructor(value) {
+        this.value = value;
+        this.type = 5;
+      }
+    }
+    IFC42.IfcLineIndex = IfcLineIndex;
+    ;
+    class IfcLinearForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcLinearForceMeasure = IfcLinearForceMeasure;
+    class IfcLinearMomentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcLinearMomentMeasure = IfcLinearMomentMeasure;
+    class IfcLinearStiffnessMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;
+    class IfcLinearVelocityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;
+    class IfcLogical {
+      constructor(v) {
+        this.type = 3;
+        this.value = v === null ? v : v == "T" ? 1 : v == "F" ? 0 : 2;
+      }
+    }
+    IFC42.IfcLogical = IfcLogical;
+    class IfcLuminousFluxMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;
+    class IfcLuminousIntensityDistributionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;
+    class IfcLuminousIntensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;
+    class IfcMagneticFluxDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;
+    class IfcMagneticFluxMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;
+    class IfcMassDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMassDensityMeasure = IfcMassDensityMeasure;
+    class IfcMassFlowRateMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;
+    class IfcMassMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMassMeasure = IfcMassMeasure;
+    class IfcMassPerLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;
+    class IfcModulusOfElasticityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;
+    class IfcModulusOfLinearSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;
+    class IfcModulusOfRotationalSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;
+    class IfcModulusOfSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;
+    class IfcMoistureDiffusivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;
+    class IfcMolecularWeightMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;
+    class IfcMomentOfInertiaMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;
+    class IfcMonetaryMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMonetaryMeasure = IfcMonetaryMeasure;
+    class IfcMonthInYearNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcMonthInYearNumber = IfcMonthInYearNumber;
+    class IfcNonNegativeLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure;
+    class IfcNormalisedRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;
+    class IfcNumericMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcNumericMeasure = IfcNumericMeasure;
+    class IfcPHMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPHMeasure = IfcPHMeasure;
+    class IfcParameterValue {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcParameterValue = IfcParameterValue;
+    class IfcPlanarForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPlanarForceMeasure = IfcPlanarForceMeasure;
+    class IfcPlaneAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;
+    class IfcPositiveInteger {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPositiveInteger = IfcPositiveInteger;
+    class IfcPositiveLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;
+    class IfcPositivePlaneAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;
+    class IfcPositiveRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;
+    class IfcPowerMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPowerMeasure = IfcPowerMeasure;
+    class IfcPresentableText {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcPresentableText = IfcPresentableText;
+    class IfcPressureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcPressureMeasure = IfcPressureMeasure;
+    class IfcPropertySetDefinitionSet {
+      constructor(value) {
+        this.value = value;
+        this.type = 5;
+      }
+    }
+    IFC42.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet;
+    ;
+    class IfcRadioActivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcRadioActivityMeasure = IfcRadioActivityMeasure;
+    class IfcRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcRatioMeasure = IfcRatioMeasure;
+    class IfcReal {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcReal = IfcReal;
+    class IfcRotationalFrequencyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;
+    class IfcRotationalMassMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcRotationalMassMeasure = IfcRotationalMassMeasure;
+    class IfcRotationalStiffnessMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;
+    class IfcSectionModulusMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSectionModulusMeasure = IfcSectionModulusMeasure;
+    class IfcSectionalAreaIntegralMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;
+    class IfcShearModulusMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcShearModulusMeasure = IfcShearModulusMeasure;
+    class IfcSolidAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSolidAngleMeasure = IfcSolidAngleMeasure;
+    class IfcSoundPowerLevelMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure;
+    class IfcSoundPowerMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSoundPowerMeasure = IfcSoundPowerMeasure;
+    class IfcSoundPressureLevelMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure;
+    class IfcSoundPressureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSoundPressureMeasure = IfcSoundPressureMeasure;
+    class IfcSpecificHeatCapacityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;
+    class IfcSpecularExponent {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSpecularExponent = IfcSpecularExponent;
+    class IfcSpecularRoughness {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcSpecularRoughness = IfcSpecularRoughness;
+    class IfcTemperatureGradientMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;
+    class IfcTemperatureRateOfChangeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure;
+    class IfcText {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcText = IfcText;
+    class IfcTextAlignment {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcTextAlignment = IfcTextAlignment;
+    class IfcTextDecoration {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcTextDecoration = IfcTextDecoration;
+    class IfcTextFontName {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcTextFontName = IfcTextFontName;
+    class IfcTextTransformation {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcTextTransformation = IfcTextTransformation;
+    class IfcThermalAdmittanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;
+    class IfcThermalConductivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;
+    class IfcThermalExpansionCoefficientMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;
+    class IfcThermalResistanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;
+    class IfcThermalTransmittanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;
+    class IfcThermodynamicTemperatureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;
+    class IfcTime {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcTime = IfcTime;
+    class IfcTimeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcTimeMeasure = IfcTimeMeasure;
+    class IfcTimeStamp {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcTimeStamp = IfcTimeStamp;
+    class IfcTorqueMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcTorqueMeasure = IfcTorqueMeasure;
+    class IfcURIReference {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC42.IfcURIReference = IfcURIReference;
+    class IfcVaporPermeabilityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;
+    class IfcVolumeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcVolumeMeasure = IfcVolumeMeasure;
+    class IfcVolumetricFlowRateMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;
+    class IfcWarpingConstantMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;
+    class IfcWarpingMomentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC42.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;
+    class IfcActionRequestTypeEnum {
+    }
+    IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" };
+    IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" };
+    IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" };
+    IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" };
+    IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" };
+    IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum;
+    class IfcActionSourceTypeEnum {
+    }
+    IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" };
+    IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" };
+    IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" };
+    IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" };
+    IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" };
+    IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" };
+    IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" };
+    IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" };
+    IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" };
+    IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" };
+    IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" };
+    IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" };
+    IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" };
+    IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" };
+    IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" };
+    IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" };
+    IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" };
+    IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" };
+    IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" };
+    IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" };
+    IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" };
+    IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" };
+    IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" };
+    IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" };
+    IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" };
+    IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;
+    class IfcActionTypeEnum {
+    }
+    IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" };
+    IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" };
+    IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" };
+    IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcActionTypeEnum = IfcActionTypeEnum;
+    class IfcActuatorTypeEnum {
+    }
+    IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" };
+    IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" };
+    IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" };
+    IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" };
+    IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" };
+    IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcActuatorTypeEnum = IfcActuatorTypeEnum;
+    class IfcAddressTypeEnum {
+    }
+    IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" };
+    IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" };
+    IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" };
+    IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" };
+    IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC42.IfcAddressTypeEnum = IfcAddressTypeEnum;
+    class IfcAirTerminalBoxTypeEnum {
+    }
+    IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" };
+    IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" };
+    IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" };
+    IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;
+    class IfcAirTerminalTypeEnum {
+    }
+    IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" };
+    IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" };
+    IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" };
+    IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" };
+    IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;
+    class IfcAirToAirHeatRecoveryTypeEnum {
+    }
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" };
+    IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" };
+    IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" };
+    IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" };
+    IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" };
+    IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" };
+    IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;
+    class IfcAlarmTypeEnum {
+    }
+    IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" };
+    IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" };
+    IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" };
+    IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" };
+    IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" };
+    IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" };
+    IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcAlarmTypeEnum = IfcAlarmTypeEnum;
+    class IfcAnalysisModelTypeEnum {
+    }
+    IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" };
+    IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" };
+    IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" };
+    IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;
+    class IfcAnalysisTheoryTypeEnum {
+    }
+    IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" };
+    IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;
+    class IfcArithmeticOperatorEnum {
+    }
+    IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" };
+    IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" };
+    IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" };
+    IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" };
+    IFC42.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;
+    class IfcAssemblyPlaceEnum {
+    }
+    IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" };
+    IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" };
+    IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;
+    class IfcAudioVisualApplianceTypeEnum {
+    }
+    IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" };
+    IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" };
+    IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" };
+    IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" };
+    IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" };
+    IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" };
+    IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" };
+    IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" };
+    IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" };
+    IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" };
+    IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" };
+    IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum;
+    class IfcBSplineCurveForm {
+    }
+    IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" };
+    IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" };
+    IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" };
+    IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" };
+    IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" };
+    IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC42.IfcBSplineCurveForm = IfcBSplineCurveForm;
+    class IfcBSplineSurfaceForm {
+    }
+    IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" };
+    IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" };
+    IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" };
+    IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" };
+    IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" };
+    IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" };
+    IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" };
+    IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" };
+    IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" };
+    IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" };
+    IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC42.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm;
+    class IfcBeamTypeEnum {
+    }
+    IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" };
+    IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" };
+    IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" };
+    IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" };
+    IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" };
+    IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" };
+    IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcBeamTypeEnum = IfcBeamTypeEnum;
+    class IfcBenchmarkEnum {
+    }
+    IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" };
+    IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" };
+    IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" };
+    IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" };
+    IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" };
+    IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" };
+    IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" };
+    IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" };
+    IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" };
+    IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" };
+    IFC42.IfcBenchmarkEnum = IfcBenchmarkEnum;
+    class IfcBoilerTypeEnum {
+    }
+    IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" };
+    IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" };
+    IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcBoilerTypeEnum = IfcBoilerTypeEnum;
+    class IfcBooleanOperator {
+    }
+    IfcBooleanOperator.UNION = { type: 3, value: "UNION" };
+    IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" };
+    IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" };
+    IFC42.IfcBooleanOperator = IfcBooleanOperator;
+    class IfcBuildingElementPartTypeEnum {
+    }
+    IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" };
+    IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" };
+    IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum;
+    class IfcBuildingElementProxyTypeEnum {
+    }
+    IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" };
+    IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" };
+    IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" };
+    IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" };
+    IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE = { type: 3, value: "PROVISIONFORSPACE" };
+    IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;
+    class IfcBuildingSystemTypeEnum {
+    }
+    IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" };
+    IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" };
+    IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" };
+    IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" };
+    IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" };
+    IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" };
+    IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum;
+    class IfcBurnerTypeEnum {
+    }
+    IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcBurnerTypeEnum = IfcBurnerTypeEnum;
+    class IfcCableCarrierFittingTypeEnum {
+    }
+    IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" };
+    IfcCableCarrierFittingTypeEnum.REDUCER = { type: 3, value: "REDUCER" };
+    IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" };
+    IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;
+    class IfcCableCarrierSegmentTypeEnum {
+    }
+    IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;
+    class IfcCableFittingTypeEnum {
+    }
+    IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" };
+    IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" };
+    IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum;
+    class IfcCableSegmentTypeEnum {
+    }
+    IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" };
+    IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" };
+    IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" };
+    IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" };
+    IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;
+    class IfcChangeActionEnum {
+    }
+    IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" };
+    IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" };
+    IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" };
+    IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" };
+    IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcChangeActionEnum = IfcChangeActionEnum;
+    class IfcChillerTypeEnum {
+    }
+    IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" };
+    IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" };
+    IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" };
+    IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcChillerTypeEnum = IfcChillerTypeEnum;
+    class IfcChimneyTypeEnum {
+    }
+    IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcChimneyTypeEnum = IfcChimneyTypeEnum;
+    class IfcCoilTypeEnum {
+    }
+    IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" };
+    IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" };
+    IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" };
+    IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" };
+    IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" };
+    IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" };
+    IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" };
+    IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCoilTypeEnum = IfcCoilTypeEnum;
+    class IfcColumnTypeEnum {
+    }
+    IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" };
+    IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" };
+    IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcColumnTypeEnum = IfcColumnTypeEnum;
+    class IfcCommunicationsApplianceTypeEnum {
+    }
+    IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" };
+    IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" };
+    IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" };
+    IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" };
+    IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" };
+    IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" };
+    IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" };
+    IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" };
+    IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" };
+    IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" };
+    IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" };
+    IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" };
+    IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum;
+    class IfcComplexPropertyTemplateTypeEnum {
+    }
+    IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" };
+    IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" };
+    IFC42.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum;
+    class IfcCompressorTypeEnum {
+    }
+    IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" };
+    IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" };
+    IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" };
+    IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" };
+    IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" };
+    IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" };
+    IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" };
+    IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" };
+    IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" };
+    IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" };
+    IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" };
+    IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" };
+    IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" };
+    IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" };
+    IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" };
+    IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCompressorTypeEnum = IfcCompressorTypeEnum;
+    class IfcCondenserTypeEnum {
+    }
+    IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" };
+    IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" };
+    IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" };
+    IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" };
+    IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" };
+    IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" };
+    IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" };
+    IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCondenserTypeEnum = IfcCondenserTypeEnum;
+    class IfcConnectionTypeEnum {
+    }
+    IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" };
+    IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" };
+    IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" };
+    IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcConnectionTypeEnum = IfcConnectionTypeEnum;
+    class IfcConstraintEnum {
+    }
+    IfcConstraintEnum.HARD = { type: 3, value: "HARD" };
+    IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" };
+    IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" };
+    IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcConstraintEnum = IfcConstraintEnum;
+    class IfcConstructionEquipmentResourceTypeEnum {
+    }
+    IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" };
+    IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" };
+    IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" };
+    IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" };
+    IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" };
+    IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" };
+    IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" };
+    IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" };
+    IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum;
+    class IfcConstructionMaterialResourceTypeEnum {
+    }
+    IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" };
+    IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" };
+    IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" };
+    IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" };
+    IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" };
+    IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" };
+    IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" };
+    IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" };
+    IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC42.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum;
+    class IfcConstructionProductResourceTypeEnum {
+    }
+    IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" };
+    IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" };
+    IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum;
+    class IfcControllerTypeEnum {
+    }
+    IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" };
+    IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" };
+    IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" };
+    IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" };
+    IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" };
+    IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcControllerTypeEnum = IfcControllerTypeEnum;
+    class IfcCooledBeamTypeEnum {
+    }
+    IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" };
+    IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" };
+    IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;
+    class IfcCoolingTowerTypeEnum {
+    }
+    IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" };
+    IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" };
+    IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" };
+    IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;
+    class IfcCostItemTypeEnum {
+    }
+    IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCostItemTypeEnum = IfcCostItemTypeEnum;
+    class IfcCostScheduleTypeEnum {
+    }
+    IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" };
+    IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" };
+    IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" };
+    IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" };
+    IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" };
+    IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" };
+    IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" };
+    IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;
+    class IfcCoveringTypeEnum {
+    }
+    IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" };
+    IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" };
+    IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" };
+    IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" };
+    IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" };
+    IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" };
+    IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" };
+    IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" };
+    IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" };
+    IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" };
+    IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCoveringTypeEnum = IfcCoveringTypeEnum;
+    class IfcCrewResourceTypeEnum {
+    }
+    IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" };
+    IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" };
+    IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum;
+    class IfcCurtainWallTypeEnum {
+    }
+    IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;
+    class IfcCurveInterpolationEnum {
+    }
+    IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" };
+    IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" };
+    IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" };
+    IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum;
+    class IfcDamperTypeEnum {
+    }
+    IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" };
+    IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" };
+    IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" };
+    IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" };
+    IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" };
+    IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" };
+    IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" };
+    IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" };
+    IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" };
+    IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" };
+    IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" };
+    IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDamperTypeEnum = IfcDamperTypeEnum;
+    class IfcDataOriginEnum {
+    }
+    IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" };
+    IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" };
+    IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" };
+    IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDataOriginEnum = IfcDataOriginEnum;
+    class IfcDerivedUnitEnum {
+    }
+    IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" };
+    IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" };
+    IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" };
+    IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" };
+    IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" };
+    IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" };
+    IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" };
+    IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" };
+    IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" };
+    IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" };
+    IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" };
+    IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" };
+    IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" };
+    IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" };
+    IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" };
+    IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" };
+    IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" };
+    IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" };
+    IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" };
+    IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" };
+    IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" };
+    IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" };
+    IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" };
+    IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" };
+    IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" };
+    IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" };
+    IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" };
+    IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" };
+    IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" };
+    IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" };
+    IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" };
+    IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" };
+    IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" };
+    IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" };
+    IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" };
+    IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" };
+    IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" };
+    IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" };
+    IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" };
+    IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" };
+    IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC42.IfcDerivedUnitEnum = IfcDerivedUnitEnum;
+    class IfcDirectionSenseEnum {
+    }
+    IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" };
+    IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" };
+    IFC42.IfcDirectionSenseEnum = IfcDirectionSenseEnum;
+    class IfcDiscreteAccessoryTypeEnum {
+    }
+    IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" };
+    IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" };
+    IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" };
+    IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum;
+    class IfcDistributionChamberElementTypeEnum {
+    }
+    IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" };
+    IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" };
+    IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" };
+    IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" };
+    IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" };
+    IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" };
+    IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" };
+    IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" };
+    IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;
+    class IfcDistributionPortTypeEnum {
+    }
+    IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" };
+    IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" };
+    IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" };
+    IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" };
+    IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum;
+    class IfcDistributionSystemEnum {
+    }
+    IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" };
+    IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" };
+    IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" };
+    IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" };
+    IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" };
+    IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" };
+    IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" };
+    IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" };
+    IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" };
+    IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" };
+    IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" };
+    IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" };
+    IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" };
+    IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" };
+    IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" };
+    IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" };
+    IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" };
+    IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" };
+    IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" };
+    IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" };
+    IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" };
+    IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" };
+    IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" };
+    IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" };
+    IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" };
+    IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" };
+    IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" };
+    IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" };
+    IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" };
+    IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" };
+    IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" };
+    IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" };
+    IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" };
+    IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" };
+    IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" };
+    IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" };
+    IfcDistributionSystemEnum.TV = { type: 3, value: "TV" };
+    IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" };
+    IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" };
+    IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" };
+    IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" };
+    IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" };
+    IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDistributionSystemEnum = IfcDistributionSystemEnum;
+    class IfcDocumentConfidentialityEnum {
+    }
+    IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" };
+    IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" };
+    IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" };
+    IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" };
+    IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;
+    class IfcDocumentStatusEnum {
+    }
+    IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" };
+    IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" };
+    IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" };
+    IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" };
+    IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDocumentStatusEnum = IfcDocumentStatusEnum;
+    class IfcDoorPanelOperationEnum {
+    }
+    IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" };
+    IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" };
+    IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" };
+    IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" };
+    IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" };
+    IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" };
+    IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" };
+    IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;
+    class IfcDoorPanelPositionEnum {
+    }
+    IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" };
+    IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" };
+    IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" };
+    IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;
+    class IfcDoorStyleConstructionEnum {
+    }
+    IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" };
+    IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" };
+    IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" };
+    IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" };
+    IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" };
+    IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" };
+    IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;
+    class IfcDoorStyleOperationEnum {
+    }
+    IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" };
+    IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" };
+    IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" };
+    IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" };
+    IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" };
+    IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" };
+    IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" };
+    IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" };
+    IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" };
+    IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;
+    class IfcDoorTypeEnum {
+    }
+    IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" };
+    IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" };
+    IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" };
+    IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDoorTypeEnum = IfcDoorTypeEnum;
+    class IfcDoorTypeOperationEnum {
+    }
+    IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" };
+    IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" };
+    IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" };
+    IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" };
+    IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" };
+    IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" };
+    IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" };
+    IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" };
+    IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" };
+    IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" };
+    IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" };
+    IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" };
+    IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" };
+    IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" };
+    IfcDoorTypeOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" };
+    IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" };
+    IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" };
+    IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" };
+    IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum;
+    class IfcDuctFittingTypeEnum {
+    }
+    IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" };
+    IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" };
+    IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" };
+    IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;
+    class IfcDuctSegmentTypeEnum {
+    }
+    IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" };
+    IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" };
+    IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;
+    class IfcDuctSilencerTypeEnum {
+    }
+    IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" };
+    IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" };
+    IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" };
+    IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;
+    class IfcElectricApplianceTypeEnum {
+    }
+    IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" };
+    IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" };
+    IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" };
+    IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" };
+    IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" };
+    IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" };
+    IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" };
+    IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" };
+    IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" };
+    IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" };
+    IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" };
+    IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" };
+    IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;
+    class IfcElectricDistributionBoardTypeEnum {
+    }
+    IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" };
+    IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" };
+    IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" };
+    IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" };
+    IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum;
+    class IfcElectricFlowStorageDeviceTypeEnum {
+    }
+    IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" };
+    IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" };
+    IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" };
+    IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" };
+    IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" };
+    IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;
+    class IfcElectricGeneratorTypeEnum {
+    }
+    IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" };
+    IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" };
+    IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" };
+    IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;
+    class IfcElectricMotorTypeEnum {
+    }
+    IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" };
+    IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" };
+    IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" };
+    IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" };
+    IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" };
+    IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;
+    class IfcElectricTimeControlTypeEnum {
+    }
+    IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" };
+    IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" };
+    IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" };
+    IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;
+    class IfcElementAssemblyTypeEnum {
+    }
+    IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" };
+    IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" };
+    IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" };
+    IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" };
+    IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" };
+    IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" };
+    IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" };
+    IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" };
+    IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" };
+    IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;
+    class IfcElementCompositionEnum {
+    }
+    IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" };
+    IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" };
+    IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" };
+    IFC42.IfcElementCompositionEnum = IfcElementCompositionEnum;
+    class IfcEngineTypeEnum {
+    }
+    IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" };
+    IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" };
+    IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcEngineTypeEnum = IfcEngineTypeEnum;
+    class IfcEvaporativeCoolerTypeEnum {
+    }
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" };
+    IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;
+    class IfcEvaporatorTypeEnum {
+    }
+    IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" };
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" };
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" };
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" };
+    IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" };
+    IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" };
+    IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;
+    class IfcEventTriggerTypeEnum {
+    }
+    IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" };
+    IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" };
+    IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" };
+    IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" };
+    IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum;
+    class IfcEventTypeEnum {
+    }
+    IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" };
+    IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" };
+    IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" };
+    IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcEventTypeEnum = IfcEventTypeEnum;
+    class IfcExternalSpatialElementTypeEnum {
+    }
+    IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" };
+    IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" };
+    IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" };
+    IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum;
+    class IfcFanTypeEnum {
+    }
+    IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" };
+    IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" };
+    IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" };
+    IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" };
+    IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" };
+    IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" };
+    IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" };
+    IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFanTypeEnum = IfcFanTypeEnum;
+    class IfcFastenerTypeEnum {
+    }
+    IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" };
+    IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" };
+    IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" };
+    IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFastenerTypeEnum = IfcFastenerTypeEnum;
+    class IfcFilterTypeEnum {
+    }
+    IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" };
+    IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" };
+    IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" };
+    IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" };
+    IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" };
+    IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" };
+    IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFilterTypeEnum = IfcFilterTypeEnum;
+    class IfcFireSuppressionTerminalTypeEnum {
+    }
+    IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" };
+    IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" };
+    IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" };
+    IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" };
+    IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" };
+    IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;
+    class IfcFlowDirectionEnum {
+    }
+    IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" };
+    IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" };
+    IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" };
+    IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFlowDirectionEnum = IfcFlowDirectionEnum;
+    class IfcFlowInstrumentTypeEnum {
+    }
+    IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" };
+    IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" };
+    IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" };
+    IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" };
+    IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" };
+    IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" };
+    IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" };
+    IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" };
+    IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;
+    class IfcFlowMeterTypeEnum {
+    }
+    IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" };
+    IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" };
+    IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" };
+    IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" };
+    IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;
+    class IfcFootingTypeEnum {
+    }
+    IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" };
+    IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" };
+    IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" };
+    IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" };
+    IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" };
+    IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFootingTypeEnum = IfcFootingTypeEnum;
+    class IfcFurnitureTypeEnum {
+    }
+    IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" };
+    IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" };
+    IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" };
+    IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" };
+    IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" };
+    IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" };
+    IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" };
+    IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum;
+    class IfcGeographicElementTypeEnum {
+    }
+    IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" };
+    IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum;
+    class IfcGeometricProjectionEnum {
+    }
+    IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" };
+    IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" };
+    IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" };
+    IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" };
+    IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" };
+    IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" };
+    IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" };
+    IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;
+    class IfcGlobalOrLocalEnum {
+    }
+    IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" };
+    IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" };
+    IFC42.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;
+    class IfcGridTypeEnum {
+    }
+    IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" };
+    IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" };
+    IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" };
+    IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" };
+    IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcGridTypeEnum = IfcGridTypeEnum;
+    class IfcHeatExchangerTypeEnum {
+    }
+    IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" };
+    IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" };
+    IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;
+    class IfcHumidifierTypeEnum {
+    }
+    IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" };
+    IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" };
+    IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" };
+    IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" };
+    IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" };
+    IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" };
+    IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" };
+    IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" };
+    IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" };
+    IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" };
+    IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" };
+    IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" };
+    IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" };
+    IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;
+    class IfcInterceptorTypeEnum {
+    }
+    IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" };
+    IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" };
+    IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" };
+    IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" };
+    IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum;
+    class IfcInternalOrExternalEnum {
+    }
+    IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" };
+    IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" };
+    IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" };
+    IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" };
+    IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;
+    class IfcInventoryTypeEnum {
+    }
+    IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" };
+    IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" };
+    IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" };
+    IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcInventoryTypeEnum = IfcInventoryTypeEnum;
+    class IfcJunctionBoxTypeEnum {
+    }
+    IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" };
+    IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" };
+    IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;
+    class IfcKnotType {
+    }
+    IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" };
+    IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" };
+    IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" };
+    IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC42.IfcKnotType = IfcKnotType;
+    class IfcLaborResourceTypeEnum {
+    }
+    IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" };
+    IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" };
+    IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" };
+    IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" };
+    IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" };
+    IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" };
+    IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" };
+    IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" };
+    IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" };
+    IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" };
+    IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" };
+    IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" };
+    IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" };
+    IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" };
+    IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" };
+    IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" };
+    IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" };
+    IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" };
+    IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" };
+    IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum;
+    class IfcLampTypeEnum {
+    }
+    IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" };
+    IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" };
+    IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" };
+    IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" };
+    IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" };
+    IfcLampTypeEnum.LED = { type: 3, value: "LED" };
+    IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" };
+    IfcLampTypeEnum.OLED = { type: 3, value: "OLED" };
+    IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" };
+    IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcLampTypeEnum = IfcLampTypeEnum;
+    class IfcLayerSetDirectionEnum {
+    }
+    IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" };
+    IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" };
+    IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" };
+    IFC42.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;
+    class IfcLightDistributionCurveEnum {
+    }
+    IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" };
+    IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" };
+    IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" };
+    IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;
+    class IfcLightEmissionSourceEnum {
+    }
+    IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" };
+    IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" };
+    IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" };
+    IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" };
+    IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" };
+    IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" };
+    IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" };
+    IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" };
+    IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" };
+    IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" };
+    IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;
+    class IfcLightFixtureTypeEnum {
+    }
+    IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" };
+    IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" };
+    IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" };
+    IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;
+    class IfcLoadGroupTypeEnum {
+    }
+    IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" };
+    IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" };
+    IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" };
+    IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;
+    class IfcLogicalOperatorEnum {
+    }
+    IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" };
+    IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" };
+    IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" };
+    IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" };
+    IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" };
+    IFC42.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;
+    class IfcMechanicalFastenerTypeEnum {
+    }
+    IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" };
+    IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" };
+    IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" };
+    IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" };
+    IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" };
+    IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" };
+    IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" };
+    IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" };
+    IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" };
+    IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" };
+    IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum;
+    class IfcMedicalDeviceTypeEnum {
+    }
+    IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" };
+    IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" };
+    IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" };
+    IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" };
+    IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" };
+    IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum;
+    class IfcMemberTypeEnum {
+    }
+    IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" };
+    IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" };
+    IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" };
+    IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" };
+    IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" };
+    IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" };
+    IfcMemberTypeEnum.POST = { type: 3, value: "POST" };
+    IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" };
+    IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" };
+    IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" };
+    IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" };
+    IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" };
+    IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcMemberTypeEnum = IfcMemberTypeEnum;
+    class IfcMotorConnectionTypeEnum {
+    }
+    IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" };
+    IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" };
+    IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" };
+    IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;
+    class IfcNullStyle {
+    }
+    IfcNullStyle.NULL = { type: 3, value: "NULL" };
+    IFC42.IfcNullStyle = IfcNullStyle;
+    class IfcObjectTypeEnum {
+    }
+    IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" };
+    IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" };
+    IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" };
+    IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" };
+    IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" };
+    IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" };
+    IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" };
+    IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcObjectTypeEnum = IfcObjectTypeEnum;
+    class IfcObjectiveEnum {
+    }
+    IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" };
+    IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" };
+    IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" };
+    IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" };
+    IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" };
+    IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" };
+    IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" };
+    IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" };
+    IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" };
+    IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" };
+    IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcObjectiveEnum = IfcObjectiveEnum;
+    class IfcOccupantTypeEnum {
+    }
+    IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" };
+    IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" };
+    IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" };
+    IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" };
+    IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" };
+    IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" };
+    IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" };
+    IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcOccupantTypeEnum = IfcOccupantTypeEnum;
+    class IfcOpeningElementTypeEnum {
+    }
+    IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" };
+    IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" };
+    IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum;
+    class IfcOutletTypeEnum {
+    }
+    IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" };
+    IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" };
+    IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" };
+    IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" };
+    IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" };
+    IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcOutletTypeEnum = IfcOutletTypeEnum;
+    class IfcPerformanceHistoryTypeEnum {
+    }
+    IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum;
+    class IfcPermeableCoveringOperationEnum {
+    }
+    IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" };
+    IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" };
+    IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" };
+    IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;
+    class IfcPermitTypeEnum {
+    }
+    IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" };
+    IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" };
+    IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" };
+    IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPermitTypeEnum = IfcPermitTypeEnum;
+    class IfcPhysicalOrVirtualEnum {
+    }
+    IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" };
+    IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" };
+    IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;
+    class IfcPileConstructionEnum {
+    }
+    IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" };
+    IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" };
+    IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" };
+    IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" };
+    IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPileConstructionEnum = IfcPileConstructionEnum;
+    class IfcPileTypeEnum {
+    }
+    IfcPileTypeEnum.BORED = { type: 3, value: "BORED" };
+    IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" };
+    IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" };
+    IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" };
+    IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" };
+    IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" };
+    IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPileTypeEnum = IfcPileTypeEnum;
+    class IfcPipeFittingTypeEnum {
+    }
+    IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" };
+    IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" };
+    IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" };
+    IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;
+    class IfcPipeSegmentTypeEnum {
+    }
+    IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" };
+    IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" };
+    IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" };
+    IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" };
+    IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" };
+    IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;
+    class IfcPlateTypeEnum {
+    }
+    IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" };
+    IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" };
+    IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPlateTypeEnum = IfcPlateTypeEnum;
+    class IfcPreferredSurfaceCurveRepresentation {
+    }
+    IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" };
+    IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" };
+    IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" };
+    IFC42.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation;
+    class IfcProcedureTypeEnum {
+    }
+    IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" };
+    IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" };
+    IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" };
+    IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" };
+    IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" };
+    IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" };
+    IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" };
+    IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcProcedureTypeEnum = IfcProcedureTypeEnum;
+    class IfcProfileTypeEnum {
+    }
+    IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" };
+    IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" };
+    IFC42.IfcProfileTypeEnum = IfcProfileTypeEnum;
+    class IfcProjectOrderTypeEnum {
+    }
+    IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" };
+    IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" };
+    IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" };
+    IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" };
+    IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" };
+    IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;
+    class IfcProjectedOrTrueLengthEnum {
+    }
+    IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" };
+    IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" };
+    IFC42.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;
+    class IfcProjectionElementTypeEnum {
+    }
+    IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum;
+    class IfcPropertySetTemplateTypeEnum {
+    }
+    IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" };
+    IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" };
+    IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" };
+    IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" };
+    IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" };
+    IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" };
+    IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" };
+    IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum;
+    class IfcProtectiveDeviceTrippingUnitTypeEnum {
+    }
+    IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum;
+    class IfcProtectiveDeviceTypeEnum {
+    }
+    IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" };
+    IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" };
+    IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" };
+    IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" };
+    IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" };
+    IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" };
+    IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" };
+    IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;
+    class IfcPumpTypeEnum {
+    }
+    IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" };
+    IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" };
+    IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" };
+    IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" };
+    IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" };
+    IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" };
+    IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" };
+    IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcPumpTypeEnum = IfcPumpTypeEnum;
+    class IfcRailingTypeEnum {
+    }
+    IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" };
+    IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" };
+    IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" };
+    IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcRailingTypeEnum = IfcRailingTypeEnum;
+    class IfcRampFlightTypeEnum {
+    }
+    IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" };
+    IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" };
+    IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;
+    class IfcRampTypeEnum {
+    }
+    IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" };
+    IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" };
+    IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" };
+    IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" };
+    IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" };
+    IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" };
+    IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcRampTypeEnum = IfcRampTypeEnum;
+    class IfcRecurrenceTypeEnum {
+    }
+    IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" };
+    IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" };
+    IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" };
+    IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" };
+    IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" };
+    IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" };
+    IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" };
+    IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" };
+    IFC42.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum;
+    class IfcReflectanceMethodEnum {
+    }
+    IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" };
+    IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" };
+    IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" };
+    IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" };
+    IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" };
+    IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" };
+    IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" };
+    IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" };
+    IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;
+    class IfcReinforcingBarRoleEnum {
+    }
+    IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" };
+    IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" };
+    IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" };
+    IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" };
+    IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" };
+    IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" };
+    IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" };
+    IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" };
+    IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;
+    class IfcReinforcingBarSurfaceEnum {
+    }
+    IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" };
+    IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" };
+    IFC42.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;
+    class IfcReinforcingBarTypeEnum {
+    }
+    IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" };
+    IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" };
+    IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" };
+    IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" };
+    IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" };
+    IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" };
+    IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" };
+    IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" };
+    IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum;
+    class IfcReinforcingMeshTypeEnum {
+    }
+    IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum;
+    class IfcRoleEnum {
+    }
+    IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" };
+    IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" };
+    IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" };
+    IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" };
+    IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" };
+    IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" };
+    IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" };
+    IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" };
+    IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" };
+    IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" };
+    IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" };
+    IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" };
+    IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" };
+    IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" };
+    IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" };
+    IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" };
+    IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" };
+    IfcRoleEnum.OWNER = { type: 3, value: "OWNER" };
+    IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" };
+    IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" };
+    IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" };
+    IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" };
+    IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC42.IfcRoleEnum = IfcRoleEnum;
+    class IfcRoofTypeEnum {
+    }
+    IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" };
+    IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" };
+    IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" };
+    IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" };
+    IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" };
+    IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" };
+    IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" };
+    IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" };
+    IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" };
+    IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" };
+    IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" };
+    IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" };
+    IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" };
+    IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcRoofTypeEnum = IfcRoofTypeEnum;
+    class IfcSIPrefix {
+    }
+    IfcSIPrefix.EXA = { type: 3, value: "EXA" };
+    IfcSIPrefix.PETA = { type: 3, value: "PETA" };
+    IfcSIPrefix.TERA = { type: 3, value: "TERA" };
+    IfcSIPrefix.GIGA = { type: 3, value: "GIGA" };
+    IfcSIPrefix.MEGA = { type: 3, value: "MEGA" };
+    IfcSIPrefix.KILO = { type: 3, value: "KILO" };
+    IfcSIPrefix.HECTO = { type: 3, value: "HECTO" };
+    IfcSIPrefix.DECA = { type: 3, value: "DECA" };
+    IfcSIPrefix.DECI = { type: 3, value: "DECI" };
+    IfcSIPrefix.CENTI = { type: 3, value: "CENTI" };
+    IfcSIPrefix.MILLI = { type: 3, value: "MILLI" };
+    IfcSIPrefix.MICRO = { type: 3, value: "MICRO" };
+    IfcSIPrefix.NANO = { type: 3, value: "NANO" };
+    IfcSIPrefix.PICO = { type: 3, value: "PICO" };
+    IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" };
+    IfcSIPrefix.ATTO = { type: 3, value: "ATTO" };
+    IFC42.IfcSIPrefix = IfcSIPrefix;
+    class IfcSIUnitName {
+    }
+    IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" };
+    IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" };
+    IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" };
+    IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" };
+    IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" };
+    IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" };
+    IfcSIUnitName.FARAD = { type: 3, value: "FARAD" };
+    IfcSIUnitName.GRAM = { type: 3, value: "GRAM" };
+    IfcSIUnitName.GRAY = { type: 3, value: "GRAY" };
+    IfcSIUnitName.HENRY = { type: 3, value: "HENRY" };
+    IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" };
+    IfcSIUnitName.JOULE = { type: 3, value: "JOULE" };
+    IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" };
+    IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" };
+    IfcSIUnitName.LUX = { type: 3, value: "LUX" };
+    IfcSIUnitName.METRE = { type: 3, value: "METRE" };
+    IfcSIUnitName.MOLE = { type: 3, value: "MOLE" };
+    IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" };
+    IfcSIUnitName.OHM = { type: 3, value: "OHM" };
+    IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" };
+    IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" };
+    IfcSIUnitName.SECOND = { type: 3, value: "SECOND" };
+    IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" };
+    IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" };
+    IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" };
+    IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" };
+    IfcSIUnitName.TESLA = { type: 3, value: "TESLA" };
+    IfcSIUnitName.VOLT = { type: 3, value: "VOLT" };
+    IfcSIUnitName.WATT = { type: 3, value: "WATT" };
+    IfcSIUnitName.WEBER = { type: 3, value: "WEBER" };
+    IFC42.IfcSIUnitName = IfcSIUnitName;
+    class IfcSanitaryTerminalTypeEnum {
+    }
+    IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" };
+    IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" };
+    IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" };
+    IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" };
+    IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" };
+    IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" };
+    IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" };
+    IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" };
+    IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" };
+    IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" };
+    IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;
+    class IfcSectionTypeEnum {
+    }
+    IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" };
+    IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" };
+    IFC42.IfcSectionTypeEnum = IfcSectionTypeEnum;
+    class IfcSensorTypeEnum {
+    }
+    IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" };
+    IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" };
+    IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" };
+    IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" };
+    IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" };
+    IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" };
+    IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" };
+    IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" };
+    IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" };
+    IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" };
+    IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" };
+    IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" };
+    IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" };
+    IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" };
+    IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" };
+    IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" };
+    IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" };
+    IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" };
+    IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" };
+    IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" };
+    IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" };
+    IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" };
+    IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" };
+    IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" };
+    IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSensorTypeEnum = IfcSensorTypeEnum;
+    class IfcSequenceEnum {
+    }
+    IfcSequenceEnum.START_START = { type: 3, value: "START_START" };
+    IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" };
+    IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" };
+    IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" };
+    IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSequenceEnum = IfcSequenceEnum;
+    class IfcShadingDeviceTypeEnum {
+    }
+    IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" };
+    IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" };
+    IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" };
+    IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum;
+    class IfcSimplePropertyTemplateTypeEnum {
+    }
+    IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" };
+    IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" };
+    IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" };
+    IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" };
+    IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" };
+    IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" };
+    IFC42.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum;
+    class IfcSlabTypeEnum {
+    }
+    IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" };
+    IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" };
+    IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" };
+    IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" };
+    IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSlabTypeEnum = IfcSlabTypeEnum;
+    class IfcSolarDeviceTypeEnum {
+    }
+    IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" };
+    IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" };
+    IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum;
+    class IfcSpaceHeaterTypeEnum {
+    }
+    IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" };
+    IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" };
+    IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;
+    class IfcSpaceTypeEnum {
+    }
+    IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" };
+    IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" };
+    IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" };
+    IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" };
+    IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSpaceTypeEnum = IfcSpaceTypeEnum;
+    class IfcSpatialZoneTypeEnum {
+    }
+    IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" };
+    IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" };
+    IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" };
+    IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" };
+    IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" };
+    IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" };
+    IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" };
+    IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" };
+    IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum;
+    class IfcStackTerminalTypeEnum {
+    }
+    IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" };
+    IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" };
+    IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" };
+    IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;
+    class IfcStairFlightTypeEnum {
+    }
+    IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" };
+    IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" };
+    IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" };
+    IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" };
+    IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" };
+    IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;
+    class IfcStairTypeEnum {
+    }
+    IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" };
+    IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" };
+    IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" };
+    IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" };
+    IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" };
+    IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" };
+    IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" };
+    IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" };
+    IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcStairTypeEnum = IfcStairTypeEnum;
+    class IfcStateEnum {
+    }
+    IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" };
+    IfcStateEnum.READONLY = { type: 3, value: "READONLY" };
+    IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" };
+    IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" };
+    IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" };
+    IFC42.IfcStateEnum = IfcStateEnum;
+    class IfcStructuralCurveActivityTypeEnum {
+    }
+    IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" };
+    IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" };
+    IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" };
+    IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" };
+    IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" };
+    IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" };
+    IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" };
+    IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum;
+    class IfcStructuralCurveMemberTypeEnum {
+    }
+    IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" };
+    IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" };
+    IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" };
+    IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" };
+    IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" };
+    IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum;
+    class IfcStructuralSurfaceActivityTypeEnum {
+    }
+    IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" };
+    IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" };
+    IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" };
+    IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" };
+    IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum;
+    class IfcStructuralSurfaceMemberTypeEnum {
+    }
+    IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" };
+    IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" };
+    IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" };
+    IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum;
+    class IfcSubContractResourceTypeEnum {
+    }
+    IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" };
+    IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" };
+    IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum;
+    class IfcSurfaceFeatureTypeEnum {
+    }
+    IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" };
+    IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" };
+    IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" };
+    IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum;
+    class IfcSurfaceSide {
+    }
+    IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" };
+    IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" };
+    IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" };
+    IFC42.IfcSurfaceSide = IfcSurfaceSide;
+    class IfcSwitchingDeviceTypeEnum {
+    }
+    IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" };
+    IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" };
+    IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" };
+    IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" };
+    IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" };
+    IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" };
+    IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" };
+    IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" };
+    IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" };
+    IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;
+    class IfcSystemFurnitureElementTypeEnum {
+    }
+    IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" };
+    IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" };
+    IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum;
+    class IfcTankTypeEnum {
+    }
+    IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" };
+    IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" };
+    IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" };
+    IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" };
+    IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" };
+    IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" };
+    IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" };
+    IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTankTypeEnum = IfcTankTypeEnum;
+    class IfcTaskDurationEnum {
+    }
+    IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" };
+    IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" };
+    IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTaskDurationEnum = IfcTaskDurationEnum;
+    class IfcTaskTypeEnum {
+    }
+    IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" };
+    IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" };
+    IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" };
+    IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" };
+    IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" };
+    IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" };
+    IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" };
+    IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" };
+    IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" };
+    IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" };
+    IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" };
+    IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" };
+    IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTaskTypeEnum = IfcTaskTypeEnum;
+    class IfcTendonAnchorTypeEnum {
+    }
+    IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" };
+    IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" };
+    IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" };
+    IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum;
+    class IfcTendonTypeEnum {
+    }
+    IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" };
+    IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" };
+    IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" };
+    IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" };
+    IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTendonTypeEnum = IfcTendonTypeEnum;
+    class IfcTextPath {
+    }
+    IfcTextPath.LEFT = { type: 3, value: "LEFT" };
+    IfcTextPath.RIGHT = { type: 3, value: "RIGHT" };
+    IfcTextPath.UP = { type: 3, value: "UP" };
+    IfcTextPath.DOWN = { type: 3, value: "DOWN" };
+    IFC42.IfcTextPath = IfcTextPath;
+    class IfcTimeSeriesDataTypeEnum {
+    }
+    IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" };
+    IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" };
+    IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" };
+    IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;
+    class IfcTransformerTypeEnum {
+    }
+    IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" };
+    IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" };
+    IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" };
+    IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" };
+    IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" };
+    IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTransformerTypeEnum = IfcTransformerTypeEnum;
+    class IfcTransitionCode {
+    }
+    IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" };
+    IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" };
+    IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" };
+    IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" };
+    IFC42.IfcTransitionCode = IfcTransitionCode;
+    class IfcTransportElementTypeEnum {
+    }
+    IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" };
+    IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" };
+    IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" };
+    IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" };
+    IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" };
+    IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;
+    class IfcTrimmingPreference {
+    }
+    IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" };
+    IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" };
+    IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC42.IfcTrimmingPreference = IfcTrimmingPreference;
+    class IfcTubeBundleTypeEnum {
+    }
+    IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" };
+    IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;
+    class IfcUnitEnum {
+    }
+    IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" };
+    IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" };
+    IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" };
+    IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" };
+    IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" };
+    IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" };
+    IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" };
+    IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" };
+    IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" };
+    IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" };
+    IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" };
+    IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" };
+    IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" };
+    IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" };
+    IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" };
+    IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" };
+    IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" };
+    IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" };
+    IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" };
+    IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" };
+    IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" };
+    IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" };
+    IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" };
+    IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" };
+    IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" };
+    IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" };
+    IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" };
+    IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" };
+    IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" };
+    IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC42.IfcUnitEnum = IfcUnitEnum;
+    class IfcUnitaryControlElementTypeEnum {
+    }
+    IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" };
+    IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" };
+    IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" };
+    IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" };
+    IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" };
+    IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" };
+    IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" };
+    IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" };
+    IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum;
+    class IfcUnitaryEquipmentTypeEnum {
+    }
+    IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" };
+    IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" };
+    IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" };
+    IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" };
+    IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" };
+    IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;
+    class IfcValveTypeEnum {
+    }
+    IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" };
+    IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" };
+    IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" };
+    IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" };
+    IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" };
+    IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" };
+    IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" };
+    IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" };
+    IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" };
+    IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" };
+    IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" };
+    IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" };
+    IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" };
+    IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" };
+    IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" };
+    IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" };
+    IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" };
+    IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" };
+    IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" };
+    IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" };
+    IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" };
+    IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcValveTypeEnum = IfcValveTypeEnum;
+    class IfcVibrationIsolatorTypeEnum {
+    }
+    IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" };
+    IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" };
+    IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;
+    class IfcVoidingFeatureTypeEnum {
+    }
+    IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" };
+    IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" };
+    IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" };
+    IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" };
+    IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" };
+    IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" };
+    IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum;
+    class IfcWallTypeEnum {
+    }
+    IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" };
+    IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" };
+    IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" };
+    IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" };
+    IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" };
+    IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" };
+    IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" };
+    IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" };
+    IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" };
+    IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWallTypeEnum = IfcWallTypeEnum;
+    class IfcWasteTerminalTypeEnum {
+    }
+    IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" };
+    IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" };
+    IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" };
+    IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" };
+    IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" };
+    IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" };
+    IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" };
+    IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;
+    class IfcWindowPanelOperationEnum {
+    }
+    IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" };
+    IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" };
+    IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" };
+    IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" };
+    IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" };
+    IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" };
+    IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" };
+    IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" };
+    IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" };
+    IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" };
+    IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" };
+    IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" };
+    IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" };
+    IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;
+    class IfcWindowPanelPositionEnum {
+    }
+    IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" };
+    IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" };
+    IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" };
+    IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" };
+    IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" };
+    IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;
+    class IfcWindowStyleConstructionEnum {
+    }
+    IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" };
+    IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" };
+    IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" };
+    IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" };
+    IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" };
+    IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" };
+    IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;
+    class IfcWindowStyleOperationEnum {
+    }
+    IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" };
+    IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" };
+    IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" };
+    IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;
+    class IfcWindowTypeEnum {
+    }
+    IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" };
+    IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" };
+    IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" };
+    IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWindowTypeEnum = IfcWindowTypeEnum;
+    class IfcWindowTypePartitioningEnum {
+    }
+    IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" };
+    IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" };
+    IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" };
+    IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum;
+    class IfcWorkCalendarTypeEnum {
+    }
+    IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" };
+    IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" };
+    IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" };
+    IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum;
+    class IfcWorkPlanTypeEnum {
+    }
+    IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" };
+    IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" };
+    IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" };
+    IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum;
+    class IfcWorkScheduleTypeEnum {
+    }
+    IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" };
+    IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" };
+    IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" };
+    IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC42.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum;
+    class IfcActorRole extends IfcLineObject {
+      constructor(Role, UserDefinedRole, Description) {
+        super();
+        this.Role = Role;
+        this.UserDefinedRole = UserDefinedRole;
+        this.Description = Description;
+        this.type = 3630933823;
+      }
+    }
+    IFC42.IfcActorRole = IfcActorRole;
+    class IfcAddress extends IfcLineObject {
+      constructor(Purpose, Description, UserDefinedPurpose) {
+        super();
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.type = 618182010;
+      }
+    }
+    IFC42.IfcAddress = IfcAddress;
+    class IfcApplication extends IfcLineObject {
+      constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {
+        super();
+        this.ApplicationDeveloper = ApplicationDeveloper;
+        this.Version = Version;
+        this.ApplicationFullName = ApplicationFullName;
+        this.ApplicationIdentifier = ApplicationIdentifier;
+        this.type = 639542469;
+      }
+    }
+    IFC42.IfcApplication = IfcApplication;
+    class IfcAppliedValue extends IfcLineObject {
+      constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.AppliedValue = AppliedValue;
+        this.UnitBasis = UnitBasis;
+        this.ApplicableDate = ApplicableDate;
+        this.FixedUntilDate = FixedUntilDate;
+        this.Category = Category;
+        this.Condition = Condition;
+        this.ArithmeticOperator = ArithmeticOperator;
+        this.Components = Components;
+        this.type = 411424972;
+      }
+    }
+    IFC42.IfcAppliedValue = IfcAppliedValue;
+    class IfcApproval extends IfcLineObject {
+      constructor(Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) {
+        super();
+        this.Identifier = Identifier;
+        this.Name = Name;
+        this.Description = Description;
+        this.TimeOfApproval = TimeOfApproval;
+        this.Status = Status;
+        this.Level = Level;
+        this.Qualifier = Qualifier;
+        this.RequestingApproval = RequestingApproval;
+        this.GivingApproval = GivingApproval;
+        this.type = 130549933;
+      }
+    }
+    IFC42.IfcApproval = IfcApproval;
+    class IfcBoundaryCondition extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 4037036970;
+      }
+    }
+    IFC42.IfcBoundaryCondition = IfcBoundaryCondition;
+    class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {
+      constructor(Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {
+        super(Name);
+        this.Name = Name;
+        this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX;
+        this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY;
+        this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ;
+        this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;
+        this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;
+        this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;
+        this.type = 1560379544;
+      }
+    }
+    IFC42.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;
+    class IfcBoundaryFaceCondition extends IfcBoundaryCondition {
+      constructor(Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) {
+        super(Name);
+        this.Name = Name;
+        this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX;
+        this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY;
+        this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ;
+        this.type = 3367102660;
+      }
+    }
+    IFC42.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;
+    class IfcBoundaryNodeCondition extends IfcBoundaryCondition {
+      constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {
+        super(Name);
+        this.Name = Name;
+        this.TranslationalStiffnessX = TranslationalStiffnessX;
+        this.TranslationalStiffnessY = TranslationalStiffnessY;
+        this.TranslationalStiffnessZ = TranslationalStiffnessZ;
+        this.RotationalStiffnessX = RotationalStiffnessX;
+        this.RotationalStiffnessY = RotationalStiffnessY;
+        this.RotationalStiffnessZ = RotationalStiffnessZ;
+        this.type = 1387855156;
+      }
+    }
+    IFC42.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;
+    class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {
+      constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {
+        super(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);
+        this.Name = Name;
+        this.TranslationalStiffnessX = TranslationalStiffnessX;
+        this.TranslationalStiffnessY = TranslationalStiffnessY;
+        this.TranslationalStiffnessZ = TranslationalStiffnessZ;
+        this.RotationalStiffnessX = RotationalStiffnessX;
+        this.RotationalStiffnessY = RotationalStiffnessY;
+        this.RotationalStiffnessZ = RotationalStiffnessZ;
+        this.WarpingStiffness = WarpingStiffness;
+        this.type = 2069777674;
+      }
+    }
+    IFC42.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;
+    class IfcConnectionGeometry extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 2859738748;
+      }
+    }
+    IFC42.IfcConnectionGeometry = IfcConnectionGeometry;
+    class IfcConnectionPointGeometry extends IfcConnectionGeometry {
+      constructor(PointOnRelatingElement, PointOnRelatedElement) {
+        super();
+        this.PointOnRelatingElement = PointOnRelatingElement;
+        this.PointOnRelatedElement = PointOnRelatedElement;
+        this.type = 2614616156;
+      }
+    }
+    IFC42.IfcConnectionPointGeometry = IfcConnectionPointGeometry;
+    class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {
+      constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) {
+        super();
+        this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;
+        this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;
+        this.type = 2732653382;
+      }
+    }
+    IFC42.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;
+    class IfcConnectionVolumeGeometry extends IfcConnectionGeometry {
+      constructor(VolumeOnRelatingElement, VolumeOnRelatedElement) {
+        super();
+        this.VolumeOnRelatingElement = VolumeOnRelatingElement;
+        this.VolumeOnRelatedElement = VolumeOnRelatedElement;
+        this.type = 775493141;
+      }
+    }
+    IFC42.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry;
+    class IfcConstraint extends IfcLineObject {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.type = 1959218052;
+      }
+    }
+    IFC42.IfcConstraint = IfcConstraint;
+    class IfcCoordinateOperation extends IfcLineObject {
+      constructor(SourceCRS, TargetCRS) {
+        super();
+        this.SourceCRS = SourceCRS;
+        this.TargetCRS = TargetCRS;
+        this.type = 1785450214;
+      }
+    }
+    IFC42.IfcCoordinateOperation = IfcCoordinateOperation;
+    class IfcCoordinateReferenceSystem extends IfcLineObject {
+      constructor(Name, Description, GeodeticDatum, VerticalDatum) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.GeodeticDatum = GeodeticDatum;
+        this.VerticalDatum = VerticalDatum;
+        this.type = 1466758467;
+      }
+    }
+    IFC42.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem;
+    class IfcCostValue extends IfcAppliedValue {
+      constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {
+        super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components);
+        this.Name = Name;
+        this.Description = Description;
+        this.AppliedValue = AppliedValue;
+        this.UnitBasis = UnitBasis;
+        this.ApplicableDate = ApplicableDate;
+        this.FixedUntilDate = FixedUntilDate;
+        this.Category = Category;
+        this.Condition = Condition;
+        this.ArithmeticOperator = ArithmeticOperator;
+        this.Components = Components;
+        this.type = 602808272;
+      }
+    }
+    IFC42.IfcCostValue = IfcCostValue;
+    class IfcDerivedUnit extends IfcLineObject {
+      constructor(Elements, UnitType, UserDefinedType) {
+        super();
+        this.Elements = Elements;
+        this.UnitType = UnitType;
+        this.UserDefinedType = UserDefinedType;
+        this.type = 1765591967;
+      }
+    }
+    IFC42.IfcDerivedUnit = IfcDerivedUnit;
+    class IfcDerivedUnitElement extends IfcLineObject {
+      constructor(Unit, Exponent) {
+        super();
+        this.Unit = Unit;
+        this.Exponent = Exponent;
+        this.type = 1045800335;
+      }
+    }
+    IFC42.IfcDerivedUnitElement = IfcDerivedUnitElement;
+    class IfcDimensionalExponents extends IfcLineObject {
+      constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {
+        super();
+        this.LengthExponent = LengthExponent;
+        this.MassExponent = MassExponent;
+        this.TimeExponent = TimeExponent;
+        this.ElectricCurrentExponent = ElectricCurrentExponent;
+        this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;
+        this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;
+        this.LuminousIntensityExponent = LuminousIntensityExponent;
+        this.type = 2949456006;
+      }
+    }
+    IFC42.IfcDimensionalExponents = IfcDimensionalExponents;
+    class IfcExternalInformation extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 4294318154;
+      }
+    }
+    IFC42.IfcExternalInformation = IfcExternalInformation;
+    class IfcExternalReference extends IfcLineObject {
+      constructor(Location, Identification, Name) {
+        super();
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.type = 3200245327;
+      }
+    }
+    IFC42.IfcExternalReference = IfcExternalReference;
+    class IfcExternallyDefinedHatchStyle extends IfcExternalReference {
+      constructor(Location, Identification, Name) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.type = 2242383968;
+      }
+    }
+    IFC42.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;
+    class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {
+      constructor(Location, Identification, Name) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.type = 1040185647;
+      }
+    }
+    IFC42.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;
+    class IfcExternallyDefinedTextFont extends IfcExternalReference {
+      constructor(Location, Identification, Name) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.type = 3548104201;
+      }
+    }
+    IFC42.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;
+    class IfcGridAxis extends IfcLineObject {
+      constructor(AxisTag, AxisCurve, SameSense) {
+        super();
+        this.AxisTag = AxisTag;
+        this.AxisCurve = AxisCurve;
+        this.SameSense = SameSense;
+        this.type = 852622518;
+      }
+    }
+    IFC42.IfcGridAxis = IfcGridAxis;
+    class IfcIrregularTimeSeriesValue extends IfcLineObject {
+      constructor(TimeStamp, ListValues) {
+        super();
+        this.TimeStamp = TimeStamp;
+        this.ListValues = ListValues;
+        this.type = 3020489413;
+      }
+    }
+    IFC42.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;
+    class IfcLibraryInformation extends IfcExternalInformation {
+      constructor(Name, Version, Publisher, VersionDate, Location, Description) {
+        super();
+        this.Name = Name;
+        this.Version = Version;
+        this.Publisher = Publisher;
+        this.VersionDate = VersionDate;
+        this.Location = Location;
+        this.Description = Description;
+        this.type = 2655187982;
+      }
+    }
+    IFC42.IfcLibraryInformation = IfcLibraryInformation;
+    class IfcLibraryReference extends IfcExternalReference {
+      constructor(Location, Identification, Name, Description, Language, ReferencedLibrary) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.Description = Description;
+        this.Language = Language;
+        this.ReferencedLibrary = ReferencedLibrary;
+        this.type = 3452421091;
+      }
+    }
+    IFC42.IfcLibraryReference = IfcLibraryReference;
+    class IfcLightDistributionData extends IfcLineObject {
+      constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {
+        super();
+        this.MainPlaneAngle = MainPlaneAngle;
+        this.SecondaryPlaneAngle = SecondaryPlaneAngle;
+        this.LuminousIntensity = LuminousIntensity;
+        this.type = 4162380809;
+      }
+    }
+    IFC42.IfcLightDistributionData = IfcLightDistributionData;
+    class IfcLightIntensityDistribution extends IfcLineObject {
+      constructor(LightDistributionCurve, DistributionData) {
+        super();
+        this.LightDistributionCurve = LightDistributionCurve;
+        this.DistributionData = DistributionData;
+        this.type = 1566485204;
+      }
+    }
+    IFC42.IfcLightIntensityDistribution = IfcLightIntensityDistribution;
+    class IfcMapConversion extends IfcCoordinateOperation {
+      constructor(SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale) {
+        super(SourceCRS, TargetCRS);
+        this.SourceCRS = SourceCRS;
+        this.TargetCRS = TargetCRS;
+        this.Eastings = Eastings;
+        this.Northings = Northings;
+        this.OrthogonalHeight = OrthogonalHeight;
+        this.XAxisAbscissa = XAxisAbscissa;
+        this.XAxisOrdinate = XAxisOrdinate;
+        this.Scale = Scale;
+        this.type = 3057273783;
+      }
+    }
+    IFC42.IfcMapConversion = IfcMapConversion;
+    class IfcMaterialClassificationRelationship extends IfcLineObject {
+      constructor(MaterialClassifications, ClassifiedMaterial) {
+        super();
+        this.MaterialClassifications = MaterialClassifications;
+        this.ClassifiedMaterial = ClassifiedMaterial;
+        this.type = 1847130766;
+      }
+    }
+    IFC42.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;
+    class IfcMaterialDefinition extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 760658860;
+      }
+    }
+    IFC42.IfcMaterialDefinition = IfcMaterialDefinition;
+    class IfcMaterialLayer extends IfcMaterialDefinition {
+      constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) {
+        super();
+        this.Material = Material;
+        this.LayerThickness = LayerThickness;
+        this.IsVentilated = IsVentilated;
+        this.Name = Name;
+        this.Description = Description;
+        this.Category = Category;
+        this.Priority = Priority;
+        this.type = 248100487;
+      }
+    }
+    IFC42.IfcMaterialLayer = IfcMaterialLayer;
+    class IfcMaterialLayerSet extends IfcMaterialDefinition {
+      constructor(MaterialLayers, LayerSetName, Description) {
+        super();
+        this.MaterialLayers = MaterialLayers;
+        this.LayerSetName = LayerSetName;
+        this.Description = Description;
+        this.type = 3303938423;
+      }
+    }
+    IFC42.IfcMaterialLayerSet = IfcMaterialLayerSet;
+    class IfcMaterialLayerWithOffsets extends IfcMaterialLayer {
+      constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) {
+        super(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority);
+        this.Material = Material;
+        this.LayerThickness = LayerThickness;
+        this.IsVentilated = IsVentilated;
+        this.Name = Name;
+        this.Description = Description;
+        this.Category = Category;
+        this.Priority = Priority;
+        this.OffsetDirection = OffsetDirection;
+        this.OffsetValues = OffsetValues;
+        this.type = 1847252529;
+      }
+    }
+    IFC42.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets;
+    class IfcMaterialList extends IfcLineObject {
+      constructor(Materials) {
+        super();
+        this.Materials = Materials;
+        this.type = 2199411900;
+      }
+    }
+    IFC42.IfcMaterialList = IfcMaterialList;
+    class IfcMaterialProfile extends IfcMaterialDefinition {
+      constructor(Name, Description, Material, Profile, Priority, Category) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Material = Material;
+        this.Profile = Profile;
+        this.Priority = Priority;
+        this.Category = Category;
+        this.type = 2235152071;
+      }
+    }
+    IFC42.IfcMaterialProfile = IfcMaterialProfile;
+    class IfcMaterialProfileSet extends IfcMaterialDefinition {
+      constructor(Name, Description, MaterialProfiles, CompositeProfile) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.MaterialProfiles = MaterialProfiles;
+        this.CompositeProfile = CompositeProfile;
+        this.type = 164193824;
+      }
+    }
+    IFC42.IfcMaterialProfileSet = IfcMaterialProfileSet;
+    class IfcMaterialProfileWithOffsets extends IfcMaterialProfile {
+      constructor(Name, Description, Material, Profile, Priority, Category, OffsetValues) {
+        super(Name, Description, Material, Profile, Priority, Category);
+        this.Name = Name;
+        this.Description = Description;
+        this.Material = Material;
+        this.Profile = Profile;
+        this.Priority = Priority;
+        this.Category = Category;
+        this.OffsetValues = OffsetValues;
+        this.type = 552965576;
+      }
+    }
+    IFC42.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets;
+    class IfcMaterialUsageDefinition extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 1507914824;
+      }
+    }
+    IFC42.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition;
+    class IfcMeasureWithUnit extends IfcLineObject {
+      constructor(ValueComponent, UnitComponent) {
+        super();
+        this.ValueComponent = ValueComponent;
+        this.UnitComponent = UnitComponent;
+        this.type = 2597039031;
+      }
+    }
+    IFC42.IfcMeasureWithUnit = IfcMeasureWithUnit;
+    class IfcMetric extends IfcConstraint {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) {
+        super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.Benchmark = Benchmark;
+        this.ValueSource = ValueSource;
+        this.DataValue = DataValue;
+        this.ReferencePath = ReferencePath;
+        this.type = 3368373690;
+      }
+    }
+    IFC42.IfcMetric = IfcMetric;
+    class IfcMonetaryUnit extends IfcLineObject {
+      constructor(Currency) {
+        super();
+        this.Currency = Currency;
+        this.type = 2706619895;
+      }
+    }
+    IFC42.IfcMonetaryUnit = IfcMonetaryUnit;
+    class IfcNamedUnit extends IfcLineObject {
+      constructor(Dimensions, UnitType) {
+        super();
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.type = 1918398963;
+      }
+    }
+    IFC42.IfcNamedUnit = IfcNamedUnit;
+    class IfcObjectPlacement extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 3701648758;
+      }
+    }
+    IFC42.IfcObjectPlacement = IfcObjectPlacement;
+    class IfcObjective extends IfcConstraint {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) {
+        super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.BenchmarkValues = BenchmarkValues;
+        this.LogicalAggregator = LogicalAggregator;
+        this.ObjectiveQualifier = ObjectiveQualifier;
+        this.UserDefinedQualifier = UserDefinedQualifier;
+        this.type = 2251480897;
+      }
+    }
+    IFC42.IfcObjective = IfcObjective;
+    class IfcOrganization extends IfcLineObject {
+      constructor(Identification, Name, Description, Roles, Addresses) {
+        super();
+        this.Identification = Identification;
+        this.Name = Name;
+        this.Description = Description;
+        this.Roles = Roles;
+        this.Addresses = Addresses;
+        this.type = 4251960020;
+      }
+    }
+    IFC42.IfcOrganization = IfcOrganization;
+    class IfcOwnerHistory extends IfcLineObject {
+      constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {
+        super();
+        this.OwningUser = OwningUser;
+        this.OwningApplication = OwningApplication;
+        this.State = State;
+        this.ChangeAction = ChangeAction;
+        this.LastModifiedDate = LastModifiedDate;
+        this.LastModifyingUser = LastModifyingUser;
+        this.LastModifyingApplication = LastModifyingApplication;
+        this.CreationDate = CreationDate;
+        this.type = 1207048766;
+      }
+    }
+    IFC42.IfcOwnerHistory = IfcOwnerHistory;
+    class IfcPerson extends IfcLineObject {
+      constructor(Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {
+        super();
+        this.Identification = Identification;
+        this.FamilyName = FamilyName;
+        this.GivenName = GivenName;
+        this.MiddleNames = MiddleNames;
+        this.PrefixTitles = PrefixTitles;
+        this.SuffixTitles = SuffixTitles;
+        this.Roles = Roles;
+        this.Addresses = Addresses;
+        this.type = 2077209135;
+      }
+    }
+    IFC42.IfcPerson = IfcPerson;
+    class IfcPersonAndOrganization extends IfcLineObject {
+      constructor(ThePerson, TheOrganization, Roles) {
+        super();
+        this.ThePerson = ThePerson;
+        this.TheOrganization = TheOrganization;
+        this.Roles = Roles;
+        this.type = 101040310;
+      }
+    }
+    IFC42.IfcPersonAndOrganization = IfcPersonAndOrganization;
+    class IfcPhysicalQuantity extends IfcLineObject {
+      constructor(Name, Description) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2483315170;
+      }
+    }
+    IFC42.IfcPhysicalQuantity = IfcPhysicalQuantity;
+    class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {
+      constructor(Name, Description, Unit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.type = 2226359599;
+      }
+    }
+    IFC42.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;
+    class IfcPostalAddress extends IfcAddress {
+      constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {
+        super(Purpose, Description, UserDefinedPurpose);
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.InternalLocation = InternalLocation;
+        this.AddressLines = AddressLines;
+        this.PostalBox = PostalBox;
+        this.Town = Town;
+        this.Region = Region;
+        this.PostalCode = PostalCode;
+        this.Country = Country;
+        this.type = 3355820592;
+      }
+    }
+    IFC42.IfcPostalAddress = IfcPostalAddress;
+    class IfcPresentationItem extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 677532197;
+      }
+    }
+    IFC42.IfcPresentationItem = IfcPresentationItem;
+    class IfcPresentationLayerAssignment extends IfcLineObject {
+      constructor(Name, Description, AssignedItems, Identifier) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.AssignedItems = AssignedItems;
+        this.Identifier = Identifier;
+        this.type = 2022622350;
+      }
+    }
+    IFC42.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;
+    class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {
+      constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {
+        super(Name, Description, AssignedItems, Identifier);
+        this.Name = Name;
+        this.Description = Description;
+        this.AssignedItems = AssignedItems;
+        this.Identifier = Identifier;
+        this.LayerOn = LayerOn;
+        this.LayerFrozen = LayerFrozen;
+        this.LayerBlocked = LayerBlocked;
+        this.LayerStyles = LayerStyles;
+        this.type = 1304840413;
+      }
+    }
+    IFC42.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;
+    class IfcPresentationStyle extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3119450353;
+      }
+    }
+    IFC42.IfcPresentationStyle = IfcPresentationStyle;
+    class IfcPresentationStyleAssignment extends IfcLineObject {
+      constructor(Styles) {
+        super();
+        this.Styles = Styles;
+        this.type = 2417041796;
+      }
+    }
+    IFC42.IfcPresentationStyleAssignment = IfcPresentationStyleAssignment;
+    class IfcProductRepresentation extends IfcLineObject {
+      constructor(Name, Description, Representations) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.type = 2095639259;
+      }
+    }
+    IFC42.IfcProductRepresentation = IfcProductRepresentation;
+    class IfcProfileDef extends IfcLineObject {
+      constructor(ProfileType, ProfileName) {
+        super();
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.type = 3958567839;
+      }
+    }
+    IFC42.IfcProfileDef = IfcProfileDef;
+    class IfcProjectedCRS extends IfcCoordinateReferenceSystem {
+      constructor(Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) {
+        super(Name, Description, GeodeticDatum, VerticalDatum);
+        this.Name = Name;
+        this.Description = Description;
+        this.GeodeticDatum = GeodeticDatum;
+        this.VerticalDatum = VerticalDatum;
+        this.MapProjection = MapProjection;
+        this.MapZone = MapZone;
+        this.MapUnit = MapUnit;
+        this.type = 3843373140;
+      }
+    }
+    IFC42.IfcProjectedCRS = IfcProjectedCRS;
+    class IfcPropertyAbstraction extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 986844984;
+      }
+    }
+    IFC42.IfcPropertyAbstraction = IfcPropertyAbstraction;
+    class IfcPropertyEnumeration extends IfcPropertyAbstraction {
+      constructor(Name, EnumerationValues, Unit) {
+        super();
+        this.Name = Name;
+        this.EnumerationValues = EnumerationValues;
+        this.Unit = Unit;
+        this.type = 3710013099;
+      }
+    }
+    IFC42.IfcPropertyEnumeration = IfcPropertyEnumeration;
+    class IfcQuantityArea extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, AreaValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.AreaValue = AreaValue;
+        this.Formula = Formula;
+        this.type = 2044713172;
+      }
+    }
+    IFC42.IfcQuantityArea = IfcQuantityArea;
+    class IfcQuantityCount extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, CountValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.CountValue = CountValue;
+        this.Formula = Formula;
+        this.type = 2093928680;
+      }
+    }
+    IFC42.IfcQuantityCount = IfcQuantityCount;
+    class IfcQuantityLength extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, LengthValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.LengthValue = LengthValue;
+        this.Formula = Formula;
+        this.type = 931644368;
+      }
+    }
+    IFC42.IfcQuantityLength = IfcQuantityLength;
+    class IfcQuantityTime extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, TimeValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.TimeValue = TimeValue;
+        this.Formula = Formula;
+        this.type = 3252649465;
+      }
+    }
+    IFC42.IfcQuantityTime = IfcQuantityTime;
+    class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, VolumeValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.VolumeValue = VolumeValue;
+        this.Formula = Formula;
+        this.type = 2405470396;
+      }
+    }
+    IFC42.IfcQuantityVolume = IfcQuantityVolume;
+    class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, WeightValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.WeightValue = WeightValue;
+        this.Formula = Formula;
+        this.type = 825690147;
+      }
+    }
+    IFC42.IfcQuantityWeight = IfcQuantityWeight;
+    class IfcRecurrencePattern extends IfcLineObject {
+      constructor(RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) {
+        super();
+        this.RecurrenceType = RecurrenceType;
+        this.DayComponent = DayComponent;
+        this.WeekdayComponent = WeekdayComponent;
+        this.MonthComponent = MonthComponent;
+        this.Position = Position;
+        this.Interval = Interval;
+        this.Occurrences = Occurrences;
+        this.TimePeriods = TimePeriods;
+        this.type = 3915482550;
+      }
+    }
+    IFC42.IfcRecurrencePattern = IfcRecurrencePattern;
+    class IfcReference extends IfcLineObject {
+      constructor(TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) {
+        super();
+        this.TypeIdentifier = TypeIdentifier;
+        this.AttributeIdentifier = AttributeIdentifier;
+        this.InstanceName = InstanceName;
+        this.ListPositions = ListPositions;
+        this.InnerReference = InnerReference;
+        this.type = 2433181523;
+      }
+    }
+    IFC42.IfcReference = IfcReference;
+    class IfcRepresentation extends IfcLineObject {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super();
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 1076942058;
+      }
+    }
+    IFC42.IfcRepresentation = IfcRepresentation;
+    class IfcRepresentationContext extends IfcLineObject {
+      constructor(ContextIdentifier, ContextType) {
+        super();
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.type = 3377609919;
+      }
+    }
+    IFC42.IfcRepresentationContext = IfcRepresentationContext;
+    class IfcRepresentationItem extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 3008791417;
+      }
+    }
+    IFC42.IfcRepresentationItem = IfcRepresentationItem;
+    class IfcRepresentationMap extends IfcLineObject {
+      constructor(MappingOrigin, MappedRepresentation) {
+        super();
+        this.MappingOrigin = MappingOrigin;
+        this.MappedRepresentation = MappedRepresentation;
+        this.type = 1660063152;
+      }
+    }
+    IFC42.IfcRepresentationMap = IfcRepresentationMap;
+    class IfcResourceLevelRelationship extends IfcLineObject {
+      constructor(Name, Description) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2439245199;
+      }
+    }
+    IFC42.IfcResourceLevelRelationship = IfcResourceLevelRelationship;
+    class IfcRoot extends IfcLineObject {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super();
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2341007311;
+      }
+    }
+    IFC42.IfcRoot = IfcRoot;
+    class IfcSIUnit extends IfcNamedUnit {
+      constructor(UnitType, Prefix, Name) {
+        super(new Handle(0), UnitType);
+        this.UnitType = UnitType;
+        this.Prefix = Prefix;
+        this.Name = Name;
+        this.type = 448429030;
+      }
+    }
+    IFC42.IfcSIUnit = IfcSIUnit;
+    class IfcSchedulingTime extends IfcLineObject {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin) {
+        super();
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.type = 1054537805;
+      }
+    }
+    IFC42.IfcSchedulingTime = IfcSchedulingTime;
+    class IfcShapeAspect extends IfcLineObject {
+      constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {
+        super();
+        this.ShapeRepresentations = ShapeRepresentations;
+        this.Name = Name;
+        this.Description = Description;
+        this.ProductDefinitional = ProductDefinitional;
+        this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;
+        this.type = 867548509;
+      }
+    }
+    IFC42.IfcShapeAspect = IfcShapeAspect;
+    class IfcShapeModel extends IfcRepresentation {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 3982875396;
+      }
+    }
+    IFC42.IfcShapeModel = IfcShapeModel;
+    class IfcShapeRepresentation extends IfcShapeModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 4240577450;
+      }
+    }
+    IFC42.IfcShapeRepresentation = IfcShapeRepresentation;
+    class IfcStructuralConnectionCondition extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 2273995522;
+      }
+    }
+    IFC42.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;
+    class IfcStructuralLoad extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 2162789131;
+      }
+    }
+    IFC42.IfcStructuralLoad = IfcStructuralLoad;
+    class IfcStructuralLoadConfiguration extends IfcStructuralLoad {
+      constructor(Name, Values, Locations) {
+        super(Name);
+        this.Name = Name;
+        this.Values = Values;
+        this.Locations = Locations;
+        this.type = 3478079324;
+      }
+    }
+    IFC42.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration;
+    class IfcStructuralLoadOrResult extends IfcStructuralLoad {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 609421318;
+      }
+    }
+    IFC42.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult;
+    class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 2525727697;
+      }
+    }
+    IFC42.IfcStructuralLoadStatic = IfcStructuralLoadStatic;
+    class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {
+      constructor(Name, DeltaTConstant, DeltaTY, DeltaTZ) {
+        super(Name);
+        this.Name = Name;
+        this.DeltaTConstant = DeltaTConstant;
+        this.DeltaTY = DeltaTY;
+        this.DeltaTZ = DeltaTZ;
+        this.type = 3408363356;
+      }
+    }
+    IFC42.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;
+    class IfcStyleModel extends IfcRepresentation {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 2830218821;
+      }
+    }
+    IFC42.IfcStyleModel = IfcStyleModel;
+    class IfcStyledItem extends IfcRepresentationItem {
+      constructor(Item, Styles, Name) {
+        super();
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 3958052878;
+      }
+    }
+    IFC42.IfcStyledItem = IfcStyledItem;
+    class IfcStyledRepresentation extends IfcStyleModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 3049322572;
+      }
+    }
+    IFC42.IfcStyledRepresentation = IfcStyledRepresentation;
+    class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult {
+      constructor(Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) {
+        super(Name);
+        this.Name = Name;
+        this.SurfaceReinforcement1 = SurfaceReinforcement1;
+        this.SurfaceReinforcement2 = SurfaceReinforcement2;
+        this.ShearReinforcement = ShearReinforcement;
+        this.type = 2934153892;
+      }
+    }
+    IFC42.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea;
+    class IfcSurfaceStyle extends IfcPresentationStyle {
+      constructor(Name, Side, Styles) {
+        super(Name);
+        this.Name = Name;
+        this.Side = Side;
+        this.Styles = Styles;
+        this.type = 1300840506;
+      }
+    }
+    IFC42.IfcSurfaceStyle = IfcSurfaceStyle;
+    class IfcSurfaceStyleLighting extends IfcPresentationItem {
+      constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {
+        super();
+        this.DiffuseTransmissionColour = DiffuseTransmissionColour;
+        this.DiffuseReflectionColour = DiffuseReflectionColour;
+        this.TransmissionColour = TransmissionColour;
+        this.ReflectanceColour = ReflectanceColour;
+        this.type = 3303107099;
+      }
+    }
+    IFC42.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;
+    class IfcSurfaceStyleRefraction extends IfcPresentationItem {
+      constructor(RefractionIndex, DispersionFactor) {
+        super();
+        this.RefractionIndex = RefractionIndex;
+        this.DispersionFactor = DispersionFactor;
+        this.type = 1607154358;
+      }
+    }
+    IFC42.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;
+    class IfcSurfaceStyleShading extends IfcPresentationItem {
+      constructor(SurfaceColour, Transparency) {
+        super();
+        this.SurfaceColour = SurfaceColour;
+        this.Transparency = Transparency;
+        this.type = 846575682;
+      }
+    }
+    IFC42.IfcSurfaceStyleShading = IfcSurfaceStyleShading;
+    class IfcSurfaceStyleWithTextures extends IfcPresentationItem {
+      constructor(Textures) {
+        super();
+        this.Textures = Textures;
+        this.type = 1351298697;
+      }
+    }
+    IFC42.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;
+    class IfcSurfaceTexture extends IfcPresentationItem {
+      constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter) {
+        super();
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.Mode = Mode;
+        this.TextureTransform = TextureTransform;
+        this.Parameter = Parameter;
+        this.type = 626085974;
+      }
+    }
+    IFC42.IfcSurfaceTexture = IfcSurfaceTexture;
+    class IfcTable extends IfcLineObject {
+      constructor(Name, Rows, Columns) {
+        super();
+        this.Name = Name;
+        this.Rows = Rows;
+        this.Columns = Columns;
+        this.type = 985171141;
+      }
+    }
+    IFC42.IfcTable = IfcTable;
+    class IfcTableColumn extends IfcLineObject {
+      constructor(Identifier, Name, Description, Unit, ReferencePath) {
+        super();
+        this.Identifier = Identifier;
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.ReferencePath = ReferencePath;
+        this.type = 2043862942;
+      }
+    }
+    IFC42.IfcTableColumn = IfcTableColumn;
+    class IfcTableRow extends IfcLineObject {
+      constructor(RowCells, IsHeading) {
+        super();
+        this.RowCells = RowCells;
+        this.IsHeading = IsHeading;
+        this.type = 531007025;
+      }
+    }
+    IFC42.IfcTableRow = IfcTableRow;
+    class IfcTaskTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.DurationType = DurationType;
+        this.ScheduleDuration = ScheduleDuration;
+        this.ScheduleStart = ScheduleStart;
+        this.ScheduleFinish = ScheduleFinish;
+        this.EarlyStart = EarlyStart;
+        this.EarlyFinish = EarlyFinish;
+        this.LateStart = LateStart;
+        this.LateFinish = LateFinish;
+        this.FreeFloat = FreeFloat;
+        this.TotalFloat = TotalFloat;
+        this.IsCritical = IsCritical;
+        this.StatusTime = StatusTime;
+        this.ActualDuration = ActualDuration;
+        this.ActualStart = ActualStart;
+        this.ActualFinish = ActualFinish;
+        this.RemainingTime = RemainingTime;
+        this.Completion = Completion;
+        this.type = 1549132990;
+      }
+    }
+    IFC42.IfcTaskTime = IfcTaskTime;
+    class IfcTaskTimeRecurring extends IfcTaskTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) {
+        super(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.DurationType = DurationType;
+        this.ScheduleDuration = ScheduleDuration;
+        this.ScheduleStart = ScheduleStart;
+        this.ScheduleFinish = ScheduleFinish;
+        this.EarlyStart = EarlyStart;
+        this.EarlyFinish = EarlyFinish;
+        this.LateStart = LateStart;
+        this.LateFinish = LateFinish;
+        this.FreeFloat = FreeFloat;
+        this.TotalFloat = TotalFloat;
+        this.IsCritical = IsCritical;
+        this.StatusTime = StatusTime;
+        this.ActualDuration = ActualDuration;
+        this.ActualStart = ActualStart;
+        this.ActualFinish = ActualFinish;
+        this.RemainingTime = RemainingTime;
+        this.Completion = Completion;
+        this.Recurrence = Recurrence;
+        this.type = 2771591690;
+      }
+    }
+    IFC42.IfcTaskTimeRecurring = IfcTaskTimeRecurring;
+    class IfcTelecomAddress extends IfcAddress {
+      constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) {
+        super(Purpose, Description, UserDefinedPurpose);
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.TelephoneNumbers = TelephoneNumbers;
+        this.FacsimileNumbers = FacsimileNumbers;
+        this.PagerNumber = PagerNumber;
+        this.ElectronicMailAddresses = ElectronicMailAddresses;
+        this.WWWHomePageURL = WWWHomePageURL;
+        this.MessagingIDs = MessagingIDs;
+        this.type = 912023232;
+      }
+    }
+    IFC42.IfcTelecomAddress = IfcTelecomAddress;
+    class IfcTextStyle extends IfcPresentationStyle {
+      constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) {
+        super(Name);
+        this.Name = Name;
+        this.TextCharacterAppearance = TextCharacterAppearance;
+        this.TextStyle = TextStyle;
+        this.TextFontStyle = TextFontStyle;
+        this.ModelOrDraughting = ModelOrDraughting;
+        this.type = 1447204868;
+      }
+    }
+    IFC42.IfcTextStyle = IfcTextStyle;
+    class IfcTextStyleForDefinedFont extends IfcPresentationItem {
+      constructor(Colour, BackgroundColour) {
+        super();
+        this.Colour = Colour;
+        this.BackgroundColour = BackgroundColour;
+        this.type = 2636378356;
+      }
+    }
+    IFC42.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;
+    class IfcTextStyleTextModel extends IfcPresentationItem {
+      constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {
+        super();
+        this.TextIndent = TextIndent;
+        this.TextAlign = TextAlign;
+        this.TextDecoration = TextDecoration;
+        this.LetterSpacing = LetterSpacing;
+        this.WordSpacing = WordSpacing;
+        this.TextTransform = TextTransform;
+        this.LineHeight = LineHeight;
+        this.type = 1640371178;
+      }
+    }
+    IFC42.IfcTextStyleTextModel = IfcTextStyleTextModel;
+    class IfcTextureCoordinate extends IfcPresentationItem {
+      constructor(Maps) {
+        super();
+        this.Maps = Maps;
+        this.type = 280115917;
+      }
+    }
+    IFC42.IfcTextureCoordinate = IfcTextureCoordinate;
+    class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {
+      constructor(Maps, Mode, Parameter) {
+        super(Maps);
+        this.Maps = Maps;
+        this.Mode = Mode;
+        this.Parameter = Parameter;
+        this.type = 1742049831;
+      }
+    }
+    IFC42.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;
+    class IfcTextureMap extends IfcTextureCoordinate {
+      constructor(Maps, Vertices, MappedTo) {
+        super(Maps);
+        this.Maps = Maps;
+        this.Vertices = Vertices;
+        this.MappedTo = MappedTo;
+        this.type = 2552916305;
+      }
+    }
+    IFC42.IfcTextureMap = IfcTextureMap;
+    class IfcTextureVertex extends IfcPresentationItem {
+      constructor(Coordinates) {
+        super();
+        this.Coordinates = Coordinates;
+        this.type = 1210645708;
+      }
+    }
+    IFC42.IfcTextureVertex = IfcTextureVertex;
+    class IfcTextureVertexList extends IfcPresentationItem {
+      constructor(TexCoordsList) {
+        super();
+        this.TexCoordsList = TexCoordsList;
+        this.type = 3611470254;
+      }
+    }
+    IFC42.IfcTextureVertexList = IfcTextureVertexList;
+    class IfcTimePeriod extends IfcLineObject {
+      constructor(StartTime, EndTime) {
+        super();
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.type = 1199560280;
+      }
+    }
+    IFC42.IfcTimePeriod = IfcTimePeriod;
+    class IfcTimeSeries extends IfcLineObject {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.type = 3101149627;
+      }
+    }
+    IFC42.IfcTimeSeries = IfcTimeSeries;
+    class IfcTimeSeriesValue extends IfcLineObject {
+      constructor(ListValues) {
+        super();
+        this.ListValues = ListValues;
+        this.type = 581633288;
+      }
+    }
+    IFC42.IfcTimeSeriesValue = IfcTimeSeriesValue;
+    class IfcTopologicalRepresentationItem extends IfcRepresentationItem {
+      constructor() {
+        super();
+        this.type = 1377556343;
+      }
+    }
+    IFC42.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;
+    class IfcTopologyRepresentation extends IfcShapeModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 1735638870;
+      }
+    }
+    IFC42.IfcTopologyRepresentation = IfcTopologyRepresentation;
+    class IfcUnitAssignment extends IfcLineObject {
+      constructor(Units) {
+        super();
+        this.Units = Units;
+        this.type = 180925521;
+      }
+    }
+    IFC42.IfcUnitAssignment = IfcUnitAssignment;
+    class IfcVertex extends IfcTopologicalRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2799835756;
+      }
+    }
+    IFC42.IfcVertex = IfcVertex;
+    class IfcVertexPoint extends IfcVertex {
+      constructor(VertexGeometry) {
+        super();
+        this.VertexGeometry = VertexGeometry;
+        this.type = 1907098498;
+      }
+    }
+    IFC42.IfcVertexPoint = IfcVertexPoint;
+    class IfcVirtualGridIntersection extends IfcLineObject {
+      constructor(IntersectingAxes, OffsetDistances) {
+        super();
+        this.IntersectingAxes = IntersectingAxes;
+        this.OffsetDistances = OffsetDistances;
+        this.type = 891718957;
+      }
+    }
+    IFC42.IfcVirtualGridIntersection = IfcVirtualGridIntersection;
+    class IfcWorkTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, Start, Finish) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.RecurrencePattern = RecurrencePattern;
+        this.Start = Start;
+        this.Finish = Finish;
+        this.type = 1236880293;
+      }
+    }
+    IFC42.IfcWorkTime = IfcWorkTime;
+    class IfcApprovalRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingApproval, RelatedApprovals) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingApproval = RelatingApproval;
+        this.RelatedApprovals = RelatedApprovals;
+        this.type = 3869604511;
+      }
+    }
+    IFC42.IfcApprovalRelationship = IfcApprovalRelationship;
+    class IfcArbitraryClosedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, OuterCurve) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.OuterCurve = OuterCurve;
+        this.type = 3798115385;
+      }
+    }
+    IFC42.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;
+    class IfcArbitraryOpenProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Curve) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Curve = Curve;
+        this.type = 1310608509;
+      }
+    }
+    IFC42.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;
+    class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {
+      constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) {
+        super(ProfileType, ProfileName, OuterCurve);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.OuterCurve = OuterCurve;
+        this.InnerCurves = InnerCurves;
+        this.type = 2705031697;
+      }
+    }
+    IFC42.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;
+    class IfcBlobTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) {
+        super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.Mode = Mode;
+        this.TextureTransform = TextureTransform;
+        this.Parameter = Parameter;
+        this.RasterFormat = RasterFormat;
+        this.RasterCode = RasterCode;
+        this.type = 616511568;
+      }
+    }
+    IFC42.IfcBlobTexture = IfcBlobTexture;
+    class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {
+      constructor(ProfileType, ProfileName, Curve, Thickness) {
+        super(ProfileType, ProfileName, Curve);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Curve = Curve;
+        this.Thickness = Thickness;
+        this.type = 3150382593;
+      }
+    }
+    IFC42.IfcCenterLineProfileDef = IfcCenterLineProfileDef;
+    class IfcClassification extends IfcExternalInformation {
+      constructor(Source, Edition, EditionDate, Name, Description, Location, ReferenceTokens) {
+        super();
+        this.Source = Source;
+        this.Edition = Edition;
+        this.EditionDate = EditionDate;
+        this.Name = Name;
+        this.Description = Description;
+        this.Location = Location;
+        this.ReferenceTokens = ReferenceTokens;
+        this.type = 747523909;
+      }
+    }
+    IFC42.IfcClassification = IfcClassification;
+    class IfcClassificationReference extends IfcExternalReference {
+      constructor(Location, Identification, Name, ReferencedSource, Description, Sort) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.ReferencedSource = ReferencedSource;
+        this.Description = Description;
+        this.Sort = Sort;
+        this.type = 647927063;
+      }
+    }
+    IFC42.IfcClassificationReference = IfcClassificationReference;
+    class IfcColourRgbList extends IfcPresentationItem {
+      constructor(ColourList) {
+        super();
+        this.ColourList = ColourList;
+        this.type = 3285139300;
+      }
+    }
+    IFC42.IfcColourRgbList = IfcColourRgbList;
+    class IfcColourSpecification extends IfcPresentationItem {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3264961684;
+      }
+    }
+    IFC42.IfcColourSpecification = IfcColourSpecification;
+    class IfcCompositeProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Profiles, Label) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Profiles = Profiles;
+        this.Label = Label;
+        this.type = 1485152156;
+      }
+    }
+    IFC42.IfcCompositeProfileDef = IfcCompositeProfileDef;
+    class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {
+      constructor(CfsFaces) {
+        super();
+        this.CfsFaces = CfsFaces;
+        this.type = 370225590;
+      }
+    }
+    IFC42.IfcConnectedFaceSet = IfcConnectedFaceSet;
+    class IfcConnectionCurveGeometry extends IfcConnectionGeometry {
+      constructor(CurveOnRelatingElement, CurveOnRelatedElement) {
+        super();
+        this.CurveOnRelatingElement = CurveOnRelatingElement;
+        this.CurveOnRelatedElement = CurveOnRelatedElement;
+        this.type = 1981873012;
+      }
+    }
+    IFC42.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;
+    class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {
+      constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {
+        super(PointOnRelatingElement, PointOnRelatedElement);
+        this.PointOnRelatingElement = PointOnRelatingElement;
+        this.PointOnRelatedElement = PointOnRelatedElement;
+        this.EccentricityInX = EccentricityInX;
+        this.EccentricityInY = EccentricityInY;
+        this.EccentricityInZ = EccentricityInZ;
+        this.type = 45288368;
+      }
+    }
+    IFC42.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;
+    class IfcContextDependentUnit extends IfcNamedUnit {
+      constructor(Dimensions, UnitType, Name) {
+        super(Dimensions, UnitType);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Name = Name;
+        this.type = 3050246964;
+      }
+    }
+    IFC42.IfcContextDependentUnit = IfcContextDependentUnit;
+    class IfcConversionBasedUnit extends IfcNamedUnit {
+      constructor(Dimensions, UnitType, Name, ConversionFactor) {
+        super(Dimensions, UnitType);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Name = Name;
+        this.ConversionFactor = ConversionFactor;
+        this.type = 2889183280;
+      }
+    }
+    IFC42.IfcConversionBasedUnit = IfcConversionBasedUnit;
+    class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit {
+      constructor(Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) {
+        super(Dimensions, UnitType, Name, ConversionFactor);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Name = Name;
+        this.ConversionFactor = ConversionFactor;
+        this.ConversionOffset = ConversionOffset;
+        this.type = 2713554722;
+      }
+    }
+    IFC42.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset;
+    class IfcCurrencyRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingMonetaryUnit = RelatingMonetaryUnit;
+        this.RelatedMonetaryUnit = RelatedMonetaryUnit;
+        this.ExchangeRate = ExchangeRate;
+        this.RateDateTime = RateDateTime;
+        this.RateSource = RateSource;
+        this.type = 539742890;
+      }
+    }
+    IFC42.IfcCurrencyRelationship = IfcCurrencyRelationship;
+    class IfcCurveStyle extends IfcPresentationStyle {
+      constructor(Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) {
+        super(Name);
+        this.Name = Name;
+        this.CurveFont = CurveFont;
+        this.CurveWidth = CurveWidth;
+        this.CurveColour = CurveColour;
+        this.ModelOrDraughting = ModelOrDraughting;
+        this.type = 3800577675;
+      }
+    }
+    IFC42.IfcCurveStyle = IfcCurveStyle;
+    class IfcCurveStyleFont extends IfcPresentationItem {
+      constructor(Name, PatternList) {
+        super();
+        this.Name = Name;
+        this.PatternList = PatternList;
+        this.type = 1105321065;
+      }
+    }
+    IFC42.IfcCurveStyleFont = IfcCurveStyleFont;
+    class IfcCurveStyleFontAndScaling extends IfcPresentationItem {
+      constructor(Name, CurveFont, CurveFontScaling) {
+        super();
+        this.Name = Name;
+        this.CurveFont = CurveFont;
+        this.CurveFontScaling = CurveFontScaling;
+        this.type = 2367409068;
+      }
+    }
+    IFC42.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;
+    class IfcCurveStyleFontPattern extends IfcPresentationItem {
+      constructor(VisibleSegmentLength, InvisibleSegmentLength) {
+        super();
+        this.VisibleSegmentLength = VisibleSegmentLength;
+        this.InvisibleSegmentLength = InvisibleSegmentLength;
+        this.type = 3510044353;
+      }
+    }
+    IFC42.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;
+    class IfcDerivedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.ParentProfile = ParentProfile;
+        this.Operator = Operator;
+        this.Label = Label;
+        this.type = 3632507154;
+      }
+    }
+    IFC42.IfcDerivedProfileDef = IfcDerivedProfileDef;
+    class IfcDocumentInformation extends IfcExternalInformation {
+      constructor(Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {
+        super();
+        this.Identification = Identification;
+        this.Name = Name;
+        this.Description = Description;
+        this.Location = Location;
+        this.Purpose = Purpose;
+        this.IntendedUse = IntendedUse;
+        this.Scope = Scope;
+        this.Revision = Revision;
+        this.DocumentOwner = DocumentOwner;
+        this.Editors = Editors;
+        this.CreationTime = CreationTime;
+        this.LastRevisionTime = LastRevisionTime;
+        this.ElectronicFormat = ElectronicFormat;
+        this.ValidFrom = ValidFrom;
+        this.ValidUntil = ValidUntil;
+        this.Confidentiality = Confidentiality;
+        this.Status = Status;
+        this.type = 1154170062;
+      }
+    }
+    IFC42.IfcDocumentInformation = IfcDocumentInformation;
+    class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingDocument = RelatingDocument;
+        this.RelatedDocuments = RelatedDocuments;
+        this.RelationshipType = RelationshipType;
+        this.type = 770865208;
+      }
+    }
+    IFC42.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;
+    class IfcDocumentReference extends IfcExternalReference {
+      constructor(Location, Identification, Name, Description, ReferencedDocument) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.Description = Description;
+        this.ReferencedDocument = ReferencedDocument;
+        this.type = 3732053477;
+      }
+    }
+    IFC42.IfcDocumentReference = IfcDocumentReference;
+    class IfcEdge extends IfcTopologicalRepresentationItem {
+      constructor(EdgeStart, EdgeEnd) {
+        super();
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.type = 3900360178;
+      }
+    }
+    IFC42.IfcEdge = IfcEdge;
+    class IfcEdgeCurve extends IfcEdge {
+      constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {
+        super(EdgeStart, EdgeEnd);
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.EdgeGeometry = EdgeGeometry;
+        this.SameSense = SameSense;
+        this.type = 476780140;
+      }
+    }
+    IFC42.IfcEdgeCurve = IfcEdgeCurve;
+    class IfcEventTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.ActualDate = ActualDate;
+        this.EarlyDate = EarlyDate;
+        this.LateDate = LateDate;
+        this.ScheduleDate = ScheduleDate;
+        this.type = 211053100;
+      }
+    }
+    IFC42.IfcEventTime = IfcEventTime;
+    class IfcExtendedProperties extends IfcPropertyAbstraction {
+      constructor(Name, Description, Properties2) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Properties = Properties2;
+        this.type = 297599258;
+      }
+    }
+    IFC42.IfcExtendedProperties = IfcExtendedProperties;
+    class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingReference, RelatedResourceObjects) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingReference = RelatingReference;
+        this.RelatedResourceObjects = RelatedResourceObjects;
+        this.type = 1437805879;
+      }
+    }
+    IFC42.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship;
+    class IfcFace extends IfcTopologicalRepresentationItem {
+      constructor(Bounds) {
+        super();
+        this.Bounds = Bounds;
+        this.type = 2556980723;
+      }
+    }
+    IFC42.IfcFace = IfcFace;
+    class IfcFaceBound extends IfcTopologicalRepresentationItem {
+      constructor(Bound, Orientation) {
+        super();
+        this.Bound = Bound;
+        this.Orientation = Orientation;
+        this.type = 1809719519;
+      }
+    }
+    IFC42.IfcFaceBound = IfcFaceBound;
+    class IfcFaceOuterBound extends IfcFaceBound {
+      constructor(Bound, Orientation) {
+        super(Bound, Orientation);
+        this.Bound = Bound;
+        this.Orientation = Orientation;
+        this.type = 803316827;
+      }
+    }
+    IFC42.IfcFaceOuterBound = IfcFaceOuterBound;
+    class IfcFaceSurface extends IfcFace {
+      constructor(Bounds, FaceSurface, SameSense) {
+        super(Bounds);
+        this.Bounds = Bounds;
+        this.FaceSurface = FaceSurface;
+        this.SameSense = SameSense;
+        this.type = 3008276851;
+      }
+    }
+    IFC42.IfcFaceSurface = IfcFaceSurface;
+    class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {
+      constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {
+        super(Name);
+        this.Name = Name;
+        this.TensionFailureX = TensionFailureX;
+        this.TensionFailureY = TensionFailureY;
+        this.TensionFailureZ = TensionFailureZ;
+        this.CompressionFailureX = CompressionFailureX;
+        this.CompressionFailureY = CompressionFailureY;
+        this.CompressionFailureZ = CompressionFailureZ;
+        this.type = 4219587988;
+      }
+    }
+    IFC42.IfcFailureConnectionCondition = IfcFailureConnectionCondition;
+    class IfcFillAreaStyle extends IfcPresentationStyle {
+      constructor(Name, FillStyles, ModelorDraughting) {
+        super(Name);
+        this.Name = Name;
+        this.FillStyles = FillStyles;
+        this.ModelorDraughting = ModelorDraughting;
+        this.type = 738692330;
+      }
+    }
+    IFC42.IfcFillAreaStyle = IfcFillAreaStyle;
+    class IfcGeometricRepresentationContext extends IfcRepresentationContext {
+      constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {
+        super(ContextIdentifier, ContextType);
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.CoordinateSpaceDimension = CoordinateSpaceDimension;
+        this.Precision = Precision;
+        this.WorldCoordinateSystem = WorldCoordinateSystem;
+        this.TrueNorth = TrueNorth;
+        this.type = 3448662350;
+      }
+    }
+    IFC42.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;
+    class IfcGeometricRepresentationItem extends IfcRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2453401579;
+      }
+    }
+    IFC42.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;
+    class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {
+      constructor(ContextIdentifier, ContextType, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {
+        super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, new Handle(0), null);
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.ParentContext = ParentContext;
+        this.TargetScale = TargetScale;
+        this.TargetView = TargetView;
+        this.UserDefinedTargetView = UserDefinedTargetView;
+        this.type = 4142052618;
+      }
+    }
+    IFC42.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;
+    class IfcGeometricSet extends IfcGeometricRepresentationItem {
+      constructor(Elements) {
+        super();
+        this.Elements = Elements;
+        this.type = 3590301190;
+      }
+    }
+    IFC42.IfcGeometricSet = IfcGeometricSet;
+    class IfcGridPlacement extends IfcObjectPlacement {
+      constructor(PlacementLocation, PlacementRefDirection) {
+        super();
+        this.PlacementLocation = PlacementLocation;
+        this.PlacementRefDirection = PlacementRefDirection;
+        this.type = 178086475;
+      }
+    }
+    IFC42.IfcGridPlacement = IfcGridPlacement;
+    class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {
+      constructor(BaseSurface, AgreementFlag) {
+        super();
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.type = 812098782;
+      }
+    }
+    IFC42.IfcHalfSpaceSolid = IfcHalfSpaceSolid;
+    class IfcImageTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) {
+        super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.Mode = Mode;
+        this.TextureTransform = TextureTransform;
+        this.Parameter = Parameter;
+        this.URLReference = URLReference;
+        this.type = 3905492369;
+      }
+    }
+    IFC42.IfcImageTexture = IfcImageTexture;
+    class IfcIndexedColourMap extends IfcPresentationItem {
+      constructor(MappedTo, Opacity, Colours, ColourIndex) {
+        super();
+        this.MappedTo = MappedTo;
+        this.Opacity = Opacity;
+        this.Colours = Colours;
+        this.ColourIndex = ColourIndex;
+        this.type = 3570813810;
+      }
+    }
+    IFC42.IfcIndexedColourMap = IfcIndexedColourMap;
+    class IfcIndexedTextureMap extends IfcTextureCoordinate {
+      constructor(Maps, MappedTo, TexCoords) {
+        super(Maps);
+        this.Maps = Maps;
+        this.MappedTo = MappedTo;
+        this.TexCoords = TexCoords;
+        this.type = 1437953363;
+      }
+    }
+    IFC42.IfcIndexedTextureMap = IfcIndexedTextureMap;
+    class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap {
+      constructor(Maps, MappedTo, TexCoords, TexCoordIndex) {
+        super(Maps, MappedTo, TexCoords);
+        this.Maps = Maps;
+        this.MappedTo = MappedTo;
+        this.TexCoords = TexCoords;
+        this.TexCoordIndex = TexCoordIndex;
+        this.type = 2133299955;
+      }
+    }
+    IFC42.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap;
+    class IfcIrregularTimeSeries extends IfcTimeSeries {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {
+        super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.Values = Values;
+        this.type = 3741457305;
+      }
+    }
+    IFC42.IfcIrregularTimeSeries = IfcIrregularTimeSeries;
+    class IfcLagTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.LagValue = LagValue;
+        this.DurationType = DurationType;
+        this.type = 1585845231;
+      }
+    }
+    IFC42.IfcLagTime = IfcLagTime;
+    class IfcLightSource extends IfcGeometricRepresentationItem {
+      constructor(Name, LightColour, AmbientIntensity, Intensity) {
+        super();
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.type = 1402838566;
+      }
+    }
+    IFC42.IfcLightSource = IfcLightSource;
+    class IfcLightSourceAmbient extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.type = 125510826;
+      }
+    }
+    IFC42.IfcLightSourceAmbient = IfcLightSourceAmbient;
+    class IfcLightSourceDirectional extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Orientation = Orientation;
+        this.type = 2604431987;
+      }
+    }
+    IFC42.IfcLightSourceDirectional = IfcLightSourceDirectional;
+    class IfcLightSourceGoniometric extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.ColourAppearance = ColourAppearance;
+        this.ColourTemperature = ColourTemperature;
+        this.LuminousFlux = LuminousFlux;
+        this.LightEmissionSource = LightEmissionSource;
+        this.LightDistributionDataSource = LightDistributionDataSource;
+        this.type = 4266656042;
+      }
+    }
+    IFC42.IfcLightSourceGoniometric = IfcLightSourceGoniometric;
+    class IfcLightSourcePositional extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.ConstantAttenuation = ConstantAttenuation;
+        this.DistanceAttenuation = DistanceAttenuation;
+        this.QuadricAttenuation = QuadricAttenuation;
+        this.type = 1520743889;
+      }
+    }
+    IFC42.IfcLightSourcePositional = IfcLightSourcePositional;
+    class IfcLightSourceSpot extends IfcLightSourcePositional {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {
+        super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.ConstantAttenuation = ConstantAttenuation;
+        this.DistanceAttenuation = DistanceAttenuation;
+        this.QuadricAttenuation = QuadricAttenuation;
+        this.Orientation = Orientation;
+        this.ConcentrationExponent = ConcentrationExponent;
+        this.SpreadAngle = SpreadAngle;
+        this.BeamWidthAngle = BeamWidthAngle;
+        this.type = 3422422726;
+      }
+    }
+    IFC42.IfcLightSourceSpot = IfcLightSourceSpot;
+    class IfcLocalPlacement extends IfcObjectPlacement {
+      constructor(PlacementRelTo, RelativePlacement) {
+        super();
+        this.PlacementRelTo = PlacementRelTo;
+        this.RelativePlacement = RelativePlacement;
+        this.type = 2624227202;
+      }
+    }
+    IFC42.IfcLocalPlacement = IfcLocalPlacement;
+    class IfcLoop extends IfcTopologicalRepresentationItem {
+      constructor() {
+        super();
+        this.type = 1008929658;
+      }
+    }
+    IFC42.IfcLoop = IfcLoop;
+    class IfcMappedItem extends IfcRepresentationItem {
+      constructor(MappingSource, MappingTarget) {
+        super();
+        this.MappingSource = MappingSource;
+        this.MappingTarget = MappingTarget;
+        this.type = 2347385850;
+      }
+    }
+    IFC42.IfcMappedItem = IfcMappedItem;
+    class IfcMaterial extends IfcMaterialDefinition {
+      constructor(Name, Description, Category) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Category = Category;
+        this.type = 1838606355;
+      }
+    }
+    IFC42.IfcMaterial = IfcMaterial;
+    class IfcMaterialConstituent extends IfcMaterialDefinition {
+      constructor(Name, Description, Material, Fraction, Category) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Material = Material;
+        this.Fraction = Fraction;
+        this.Category = Category;
+        this.type = 3708119e3;
+      }
+    }
+    IFC42.IfcMaterialConstituent = IfcMaterialConstituent;
+    class IfcMaterialConstituentSet extends IfcMaterialDefinition {
+      constructor(Name, Description, MaterialConstituents) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.MaterialConstituents = MaterialConstituents;
+        this.type = 2852063980;
+      }
+    }
+    IFC42.IfcMaterialConstituentSet = IfcMaterialConstituentSet;
+    class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {
+      constructor(Name, Description, Representations, RepresentedMaterial) {
+        super(Name, Description, Representations);
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.RepresentedMaterial = RepresentedMaterial;
+        this.type = 2022407955;
+      }
+    }
+    IFC42.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;
+    class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition {
+      constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) {
+        super();
+        this.ForLayerSet = ForLayerSet;
+        this.LayerSetDirection = LayerSetDirection;
+        this.DirectionSense = DirectionSense;
+        this.OffsetFromReferenceLine = OffsetFromReferenceLine;
+        this.ReferenceExtent = ReferenceExtent;
+        this.type = 1303795690;
+      }
+    }
+    IFC42.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;
+    class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition {
+      constructor(ForProfileSet, CardinalPoint, ReferenceExtent) {
+        super();
+        this.ForProfileSet = ForProfileSet;
+        this.CardinalPoint = CardinalPoint;
+        this.ReferenceExtent = ReferenceExtent;
+        this.type = 3079605661;
+      }
+    }
+    IFC42.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage;
+    class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage {
+      constructor(ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) {
+        super(ForProfileSet, CardinalPoint, ReferenceExtent);
+        this.ForProfileSet = ForProfileSet;
+        this.CardinalPoint = CardinalPoint;
+        this.ReferenceExtent = ReferenceExtent;
+        this.ForProfileEndSet = ForProfileEndSet;
+        this.CardinalEndPoint = CardinalEndPoint;
+        this.type = 3404854881;
+      }
+    }
+    IFC42.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering;
+    class IfcMaterialProperties extends IfcExtendedProperties {
+      constructor(Name, Description, Properties2, Material) {
+        super(Name, Description, Properties2);
+        this.Name = Name;
+        this.Description = Description;
+        this.Properties = Properties2;
+        this.Material = Material;
+        this.type = 3265635763;
+      }
+    }
+    IFC42.IfcMaterialProperties = IfcMaterialProperties;
+    class IfcMaterialRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingMaterial, RelatedMaterials, Expression) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingMaterial = RelatingMaterial;
+        this.RelatedMaterials = RelatedMaterials;
+        this.Expression = Expression;
+        this.type = 853536259;
+      }
+    }
+    IFC42.IfcMaterialRelationship = IfcMaterialRelationship;
+    class IfcMirroredProfileDef extends IfcDerivedProfileDef {
+      constructor(ProfileType, ProfileName, ParentProfile, Label) {
+        super(ProfileType, ProfileName, ParentProfile, new Handle(0), Label);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.ParentProfile = ParentProfile;
+        this.Label = Label;
+        this.type = 2998442950;
+      }
+    }
+    IFC42.IfcMirroredProfileDef = IfcMirroredProfileDef;
+    class IfcObjectDefinition extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 219451334;
+      }
+    }
+    IFC42.IfcObjectDefinition = IfcObjectDefinition;
+    class IfcOpenShell extends IfcConnectedFaceSet {
+      constructor(CfsFaces) {
+        super(CfsFaces);
+        this.CfsFaces = CfsFaces;
+        this.type = 2665983363;
+      }
+    }
+    IFC42.IfcOpenShell = IfcOpenShell;
+    class IfcOrganizationRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingOrganization, RelatedOrganizations) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingOrganization = RelatingOrganization;
+        this.RelatedOrganizations = RelatedOrganizations;
+        this.type = 1411181986;
+      }
+    }
+    IFC42.IfcOrganizationRelationship = IfcOrganizationRelationship;
+    class IfcOrientedEdge extends IfcEdge {
+      constructor(EdgeElement, Orientation) {
+        super(new Handle(0), new Handle(0));
+        this.EdgeElement = EdgeElement;
+        this.Orientation = Orientation;
+        this.type = 1029017970;
+      }
+    }
+    IFC42.IfcOrientedEdge = IfcOrientedEdge;
+    class IfcParameterizedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Position) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.type = 2529465313;
+      }
+    }
+    IFC42.IfcParameterizedProfileDef = IfcParameterizedProfileDef;
+    class IfcPath extends IfcTopologicalRepresentationItem {
+      constructor(EdgeList) {
+        super();
+        this.EdgeList = EdgeList;
+        this.type = 2519244187;
+      }
+    }
+    IFC42.IfcPath = IfcPath;
+    class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {
+      constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.HasQuantities = HasQuantities;
+        this.Discrimination = Discrimination;
+        this.Quality = Quality;
+        this.Usage = Usage;
+        this.type = 3021840470;
+      }
+    }
+    IFC42.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;
+    class IfcPixelTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) {
+        super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.Mode = Mode;
+        this.TextureTransform = TextureTransform;
+        this.Parameter = Parameter;
+        this.Width = Width;
+        this.Height = Height;
+        this.ColourComponents = ColourComponents;
+        this.Pixel = Pixel;
+        this.type = 597895409;
+      }
+    }
+    IFC42.IfcPixelTexture = IfcPixelTexture;
+    class IfcPlacement extends IfcGeometricRepresentationItem {
+      constructor(Location) {
+        super();
+        this.Location = Location;
+        this.type = 2004835150;
+      }
+    }
+    IFC42.IfcPlacement = IfcPlacement;
+    class IfcPlanarExtent extends IfcGeometricRepresentationItem {
+      constructor(SizeInX, SizeInY) {
+        super();
+        this.SizeInX = SizeInX;
+        this.SizeInY = SizeInY;
+        this.type = 1663979128;
+      }
+    }
+    IFC42.IfcPlanarExtent = IfcPlanarExtent;
+    class IfcPoint extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2067069095;
+      }
+    }
+    IFC42.IfcPoint = IfcPoint;
+    class IfcPointOnCurve extends IfcPoint {
+      constructor(BasisCurve, PointParameter) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.PointParameter = PointParameter;
+        this.type = 4022376103;
+      }
+    }
+    IFC42.IfcPointOnCurve = IfcPointOnCurve;
+    class IfcPointOnSurface extends IfcPoint {
+      constructor(BasisSurface, PointParameterU, PointParameterV) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.PointParameterU = PointParameterU;
+        this.PointParameterV = PointParameterV;
+        this.type = 1423911732;
+      }
+    }
+    IFC42.IfcPointOnSurface = IfcPointOnSurface;
+    class IfcPolyLoop extends IfcLoop {
+      constructor(Polygon) {
+        super();
+        this.Polygon = Polygon;
+        this.type = 2924175390;
+      }
+    }
+    IFC42.IfcPolyLoop = IfcPolyLoop;
+    class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {
+      constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) {
+        super(BaseSurface, AgreementFlag);
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.Position = Position;
+        this.PolygonalBoundary = PolygonalBoundary;
+        this.type = 2775532180;
+      }
+    }
+    IFC42.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;
+    class IfcPreDefinedItem extends IfcPresentationItem {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3727388367;
+      }
+    }
+    IFC42.IfcPreDefinedItem = IfcPreDefinedItem;
+    class IfcPreDefinedProperties extends IfcPropertyAbstraction {
+      constructor() {
+        super();
+        this.type = 3778827333;
+      }
+    }
+    IFC42.IfcPreDefinedProperties = IfcPreDefinedProperties;
+    class IfcPreDefinedTextFont extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 1775413392;
+      }
+    }
+    IFC42.IfcPreDefinedTextFont = IfcPreDefinedTextFont;
+    class IfcProductDefinitionShape extends IfcProductRepresentation {
+      constructor(Name, Description, Representations) {
+        super(Name, Description, Representations);
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.type = 673634403;
+      }
+    }
+    IFC42.IfcProductDefinitionShape = IfcProductDefinitionShape;
+    class IfcProfileProperties extends IfcExtendedProperties {
+      constructor(Name, Description, Properties2, ProfileDefinition) {
+        super(Name, Description, Properties2);
+        this.Name = Name;
+        this.Description = Description;
+        this.Properties = Properties2;
+        this.ProfileDefinition = ProfileDefinition;
+        this.type = 2802850158;
+      }
+    }
+    IFC42.IfcProfileProperties = IfcProfileProperties;
+    class IfcProperty extends IfcPropertyAbstraction {
+      constructor(Name, Description) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2598011224;
+      }
+    }
+    IFC42.IfcProperty = IfcProperty;
+    class IfcPropertyDefinition extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 1680319473;
+      }
+    }
+    IFC42.IfcPropertyDefinition = IfcPropertyDefinition;
+    class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, DependingProperty, DependantProperty, Expression) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.DependingProperty = DependingProperty;
+        this.DependantProperty = DependantProperty;
+        this.Expression = Expression;
+        this.type = 148025276;
+      }
+    }
+    IFC42.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;
+    class IfcPropertySetDefinition extends IfcPropertyDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3357820518;
+      }
+    }
+    IFC42.IfcPropertySetDefinition = IfcPropertySetDefinition;
+    class IfcPropertyTemplateDefinition extends IfcPropertyDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 1482703590;
+      }
+    }
+    IFC42.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition;
+    class IfcQuantitySet extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2090586900;
+      }
+    }
+    IFC42.IfcQuantitySet = IfcQuantitySet;
+    class IfcRectangleProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.type = 3615266464;
+      }
+    }
+    IFC42.IfcRectangleProfileDef = IfcRectangleProfileDef;
+    class IfcRegularTimeSeries extends IfcTimeSeries {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {
+        super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.TimeStep = TimeStep;
+        this.Values = Values;
+        this.type = 3413951693;
+      }
+    }
+    IFC42.IfcRegularTimeSeries = IfcRegularTimeSeries;
+    class IfcReinforcementBarProperties extends IfcPreDefinedProperties {
+      constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {
+        super();
+        this.TotalCrossSectionArea = TotalCrossSectionArea;
+        this.SteelGrade = SteelGrade;
+        this.BarSurface = BarSurface;
+        this.EffectiveDepth = EffectiveDepth;
+        this.NominalBarDiameter = NominalBarDiameter;
+        this.BarCount = BarCount;
+        this.type = 1580146022;
+      }
+    }
+    IFC42.IfcReinforcementBarProperties = IfcReinforcementBarProperties;
+    class IfcRelationship extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 478536968;
+      }
+    }
+    IFC42.IfcRelationship = IfcRelationship;
+    class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatedResourceObjects, RelatingApproval) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedResourceObjects = RelatedResourceObjects;
+        this.RelatingApproval = RelatingApproval;
+        this.type = 2943643501;
+      }
+    }
+    IFC42.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship;
+    class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingConstraint, RelatedResourceObjects) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingConstraint = RelatingConstraint;
+        this.RelatedResourceObjects = RelatedResourceObjects;
+        this.type = 1608871552;
+      }
+    }
+    IFC42.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship;
+    class IfcResourceTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.ScheduleWork = ScheduleWork;
+        this.ScheduleUsage = ScheduleUsage;
+        this.ScheduleStart = ScheduleStart;
+        this.ScheduleFinish = ScheduleFinish;
+        this.ScheduleContour = ScheduleContour;
+        this.LevelingDelay = LevelingDelay;
+        this.IsOverAllocated = IsOverAllocated;
+        this.StatusTime = StatusTime;
+        this.ActualWork = ActualWork;
+        this.ActualUsage = ActualUsage;
+        this.ActualStart = ActualStart;
+        this.ActualFinish = ActualFinish;
+        this.RemainingWork = RemainingWork;
+        this.RemainingUsage = RemainingUsage;
+        this.Completion = Completion;
+        this.type = 1042787934;
+      }
+    }
+    IFC42.IfcResourceTime = IfcResourceTime;
+    class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {
+        super(ProfileType, ProfileName, Position, XDim, YDim);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.RoundingRadius = RoundingRadius;
+        this.type = 2778083089;
+      }
+    }
+    IFC42.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;
+    class IfcSectionProperties extends IfcPreDefinedProperties {
+      constructor(SectionType, StartProfile, EndProfile) {
+        super();
+        this.SectionType = SectionType;
+        this.StartProfile = StartProfile;
+        this.EndProfile = EndProfile;
+        this.type = 2042790032;
+      }
+    }
+    IFC42.IfcSectionProperties = IfcSectionProperties;
+    class IfcSectionReinforcementProperties extends IfcPreDefinedProperties {
+      constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {
+        super();
+        this.LongitudinalStartPosition = LongitudinalStartPosition;
+        this.LongitudinalEndPosition = LongitudinalEndPosition;
+        this.TransversePosition = TransversePosition;
+        this.ReinforcementRole = ReinforcementRole;
+        this.SectionDefinition = SectionDefinition;
+        this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;
+        this.type = 4165799628;
+      }
+    }
+    IFC42.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;
+    class IfcSectionedSpine extends IfcGeometricRepresentationItem {
+      constructor(SpineCurve, CrossSections, CrossSectionPositions) {
+        super();
+        this.SpineCurve = SpineCurve;
+        this.CrossSections = CrossSections;
+        this.CrossSectionPositions = CrossSectionPositions;
+        this.type = 1509187699;
+      }
+    }
+    IFC42.IfcSectionedSpine = IfcSectionedSpine;
+    class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {
+      constructor(SbsmBoundary) {
+        super();
+        this.SbsmBoundary = SbsmBoundary;
+        this.type = 4124623270;
+      }
+    }
+    IFC42.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;
+    class IfcSimpleProperty extends IfcProperty {
+      constructor(Name, Description) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3692461612;
+      }
+    }
+    IFC42.IfcSimpleProperty = IfcSimpleProperty;
+    class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {
+      constructor(Name, SlippageX, SlippageY, SlippageZ) {
+        super(Name);
+        this.Name = Name;
+        this.SlippageX = SlippageX;
+        this.SlippageY = SlippageY;
+        this.SlippageZ = SlippageZ;
+        this.type = 2609359061;
+      }
+    }
+    IFC42.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;
+    class IfcSolidModel extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 723233188;
+      }
+    }
+    IFC42.IfcSolidModel = IfcSolidModel;
+    class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {
+      constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {
+        super(Name);
+        this.Name = Name;
+        this.LinearForceX = LinearForceX;
+        this.LinearForceY = LinearForceY;
+        this.LinearForceZ = LinearForceZ;
+        this.LinearMomentX = LinearMomentX;
+        this.LinearMomentY = LinearMomentY;
+        this.LinearMomentZ = LinearMomentZ;
+        this.type = 1595516126;
+      }
+    }
+    IFC42.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;
+    class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {
+      constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) {
+        super(Name);
+        this.Name = Name;
+        this.PlanarForceX = PlanarForceX;
+        this.PlanarForceY = PlanarForceY;
+        this.PlanarForceZ = PlanarForceZ;
+        this.type = 2668620305;
+      }
+    }
+    IFC42.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;
+    class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {
+      constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {
+        super(Name);
+        this.Name = Name;
+        this.DisplacementX = DisplacementX;
+        this.DisplacementY = DisplacementY;
+        this.DisplacementZ = DisplacementZ;
+        this.RotationalDisplacementRX = RotationalDisplacementRX;
+        this.RotationalDisplacementRY = RotationalDisplacementRY;
+        this.RotationalDisplacementRZ = RotationalDisplacementRZ;
+        this.type = 2473145415;
+      }
+    }
+    IFC42.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;
+    class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {
+      constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {
+        super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);
+        this.Name = Name;
+        this.DisplacementX = DisplacementX;
+        this.DisplacementY = DisplacementY;
+        this.DisplacementZ = DisplacementZ;
+        this.RotationalDisplacementRX = RotationalDisplacementRX;
+        this.RotationalDisplacementRY = RotationalDisplacementRY;
+        this.RotationalDisplacementRZ = RotationalDisplacementRZ;
+        this.Distortion = Distortion;
+        this.type = 1973038258;
+      }
+    }
+    IFC42.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;
+    class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {
+      constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {
+        super(Name);
+        this.Name = Name;
+        this.ForceX = ForceX;
+        this.ForceY = ForceY;
+        this.ForceZ = ForceZ;
+        this.MomentX = MomentX;
+        this.MomentY = MomentY;
+        this.MomentZ = MomentZ;
+        this.type = 1597423693;
+      }
+    }
+    IFC42.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;
+    class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {
+      constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {
+        super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);
+        this.Name = Name;
+        this.ForceX = ForceX;
+        this.ForceY = ForceY;
+        this.ForceZ = ForceZ;
+        this.MomentX = MomentX;
+        this.MomentY = MomentY;
+        this.MomentZ = MomentZ;
+        this.WarpingMoment = WarpingMoment;
+        this.type = 1190533807;
+      }
+    }
+    IFC42.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;
+    class IfcSubedge extends IfcEdge {
+      constructor(EdgeStart, EdgeEnd, ParentEdge) {
+        super(EdgeStart, EdgeEnd);
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.ParentEdge = ParentEdge;
+        this.type = 2233826070;
+      }
+    }
+    IFC42.IfcSubedge = IfcSubedge;
+    class IfcSurface extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2513912981;
+      }
+    }
+    IFC42.IfcSurface = IfcSurface;
+    class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {
+      constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {
+        super(SurfaceColour, Transparency);
+        this.SurfaceColour = SurfaceColour;
+        this.Transparency = Transparency;
+        this.DiffuseColour = DiffuseColour;
+        this.TransmissionColour = TransmissionColour;
+        this.DiffuseTransmissionColour = DiffuseTransmissionColour;
+        this.ReflectionColour = ReflectionColour;
+        this.SpecularColour = SpecularColour;
+        this.SpecularHighlight = SpecularHighlight;
+        this.ReflectanceMethod = ReflectanceMethod;
+        this.type = 1878645084;
+      }
+    }
+    IFC42.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;
+    class IfcSweptAreaSolid extends IfcSolidModel {
+      constructor(SweptArea, Position) {
+        super();
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.type = 2247615214;
+      }
+    }
+    IFC42.IfcSweptAreaSolid = IfcSweptAreaSolid;
+    class IfcSweptDiskSolid extends IfcSolidModel {
+      constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) {
+        super();
+        this.Directrix = Directrix;
+        this.Radius = Radius;
+        this.InnerRadius = InnerRadius;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.type = 1260650574;
+      }
+    }
+    IFC42.IfcSweptDiskSolid = IfcSweptDiskSolid;
+    class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid {
+      constructor(Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) {
+        super(Directrix, Radius, InnerRadius, StartParam, EndParam);
+        this.Directrix = Directrix;
+        this.Radius = Radius;
+        this.InnerRadius = InnerRadius;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.FilletRadius = FilletRadius;
+        this.type = 1096409881;
+      }
+    }
+    IFC42.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal;
+    class IfcSweptSurface extends IfcSurface {
+      constructor(SweptCurve, Position) {
+        super();
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.type = 230924584;
+      }
+    }
+    IFC42.IfcSweptSurface = IfcSweptSurface;
+    class IfcTShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.FlangeEdgeRadius = FlangeEdgeRadius;
+        this.WebEdgeRadius = WebEdgeRadius;
+        this.WebSlope = WebSlope;
+        this.FlangeSlope = FlangeSlope;
+        this.type = 3071757647;
+      }
+    }
+    IFC42.IfcTShapeProfileDef = IfcTShapeProfileDef;
+    class IfcTessellatedItem extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 901063453;
+      }
+    }
+    IFC42.IfcTessellatedItem = IfcTessellatedItem;
+    class IfcTextLiteral extends IfcGeometricRepresentationItem {
+      constructor(Literal, Placement, Path) {
+        super();
+        this.Literal = Literal;
+        this.Placement = Placement;
+        this.Path = Path;
+        this.type = 4282788508;
+      }
+    }
+    IFC42.IfcTextLiteral = IfcTextLiteral;
+    class IfcTextLiteralWithExtent extends IfcTextLiteral {
+      constructor(Literal, Placement, Path, Extent, BoxAlignment) {
+        super(Literal, Placement, Path);
+        this.Literal = Literal;
+        this.Placement = Placement;
+        this.Path = Path;
+        this.Extent = Extent;
+        this.BoxAlignment = BoxAlignment;
+        this.type = 3124975700;
+      }
+    }
+    IFC42.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;
+    class IfcTextStyleFontModel extends IfcPreDefinedTextFont {
+      constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {
+        super(Name);
+        this.Name = Name;
+        this.FontFamily = FontFamily;
+        this.FontStyle = FontStyle;
+        this.FontVariant = FontVariant;
+        this.FontWeight = FontWeight;
+        this.FontSize = FontSize;
+        this.type = 1983826977;
+      }
+    }
+    IFC42.IfcTextStyleFontModel = IfcTextStyleFontModel;
+    class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.BottomXDim = BottomXDim;
+        this.TopXDim = TopXDim;
+        this.YDim = YDim;
+        this.TopXOffset = TopXOffset;
+        this.type = 2715220739;
+      }
+    }
+    IFC42.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;
+    class IfcTypeObject extends IfcObjectDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.type = 1628702193;
+      }
+    }
+    IFC42.IfcTypeObject = IfcTypeObject;
+    class IfcTypeProcess extends IfcTypeObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ProcessType = ProcessType;
+        this.type = 3736923433;
+      }
+    }
+    IFC42.IfcTypeProcess = IfcTypeProcess;
+    class IfcTypeProduct extends IfcTypeObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.type = 2347495698;
+      }
+    }
+    IFC42.IfcTypeProduct = IfcTypeProduct;
+    class IfcTypeResource extends IfcTypeObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.type = 3698973494;
+      }
+    }
+    IFC42.IfcTypeResource = IfcTypeResource;
+    class IfcUShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.FlangeSlope = FlangeSlope;
+        this.type = 427810014;
+      }
+    }
+    IFC42.IfcUShapeProfileDef = IfcUShapeProfileDef;
+    class IfcVector extends IfcGeometricRepresentationItem {
+      constructor(Orientation, Magnitude) {
+        super();
+        this.Orientation = Orientation;
+        this.Magnitude = Magnitude;
+        this.type = 1417489154;
+      }
+    }
+    IFC42.IfcVector = IfcVector;
+    class IfcVertexLoop extends IfcLoop {
+      constructor(LoopVertex) {
+        super();
+        this.LoopVertex = LoopVertex;
+        this.type = 2759199220;
+      }
+    }
+    IFC42.IfcVertexLoop = IfcVertexLoop;
+    class IfcWindowStyle extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ConstructionType, OperationType, ParameterTakesPrecedence, Sizeable) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ConstructionType = ConstructionType;
+        this.OperationType = OperationType;
+        this.ParameterTakesPrecedence = ParameterTakesPrecedence;
+        this.Sizeable = Sizeable;
+        this.type = 1299126871;
+      }
+    }
+    IFC42.IfcWindowStyle = IfcWindowStyle;
+    class IfcZShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.type = 2543172580;
+      }
+    }
+    IFC42.IfcZShapeProfileDef = IfcZShapeProfileDef;
+    class IfcAdvancedFace extends IfcFaceSurface {
+      constructor(Bounds, FaceSurface, SameSense) {
+        super(Bounds, FaceSurface, SameSense);
+        this.Bounds = Bounds;
+        this.FaceSurface = FaceSurface;
+        this.SameSense = SameSense;
+        this.type = 3406155212;
+      }
+    }
+    IFC42.IfcAdvancedFace = IfcAdvancedFace;
+    class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {
+      constructor(OuterBoundary, InnerBoundaries) {
+        super();
+        this.OuterBoundary = OuterBoundary;
+        this.InnerBoundaries = InnerBoundaries;
+        this.type = 669184980;
+      }
+    }
+    IFC42.IfcAnnotationFillArea = IfcAnnotationFillArea;
+    class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.BottomFlangeWidth = BottomFlangeWidth;
+        this.OverallDepth = OverallDepth;
+        this.WebThickness = WebThickness;
+        this.BottomFlangeThickness = BottomFlangeThickness;
+        this.BottomFlangeFilletRadius = BottomFlangeFilletRadius;
+        this.TopFlangeWidth = TopFlangeWidth;
+        this.TopFlangeThickness = TopFlangeThickness;
+        this.TopFlangeFilletRadius = TopFlangeFilletRadius;
+        this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius;
+        this.BottomFlangeSlope = BottomFlangeSlope;
+        this.TopFlangeEdgeRadius = TopFlangeEdgeRadius;
+        this.TopFlangeSlope = TopFlangeSlope;
+        this.type = 3207858831;
+      }
+    }
+    IFC42.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;
+    class IfcAxis1Placement extends IfcPlacement {
+      constructor(Location, Axis) {
+        super(Location);
+        this.Location = Location;
+        this.Axis = Axis;
+        this.type = 4261334040;
+      }
+    }
+    IFC42.IfcAxis1Placement = IfcAxis1Placement;
+    class IfcAxis2Placement2D extends IfcPlacement {
+      constructor(Location, RefDirection) {
+        super(Location);
+        this.Location = Location;
+        this.RefDirection = RefDirection;
+        this.type = 3125803723;
+      }
+    }
+    IFC42.IfcAxis2Placement2D = IfcAxis2Placement2D;
+    class IfcAxis2Placement3D extends IfcPlacement {
+      constructor(Location, Axis, RefDirection) {
+        super(Location);
+        this.Location = Location;
+        this.Axis = Axis;
+        this.RefDirection = RefDirection;
+        this.type = 2740243338;
+      }
+    }
+    IFC42.IfcAxis2Placement3D = IfcAxis2Placement3D;
+    class IfcBooleanResult extends IfcGeometricRepresentationItem {
+      constructor(Operator, FirstOperand, SecondOperand) {
+        super();
+        this.Operator = Operator;
+        this.FirstOperand = FirstOperand;
+        this.SecondOperand = SecondOperand;
+        this.type = 2736907675;
+      }
+    }
+    IFC42.IfcBooleanResult = IfcBooleanResult;
+    class IfcBoundedSurface extends IfcSurface {
+      constructor() {
+        super();
+        this.type = 4182860854;
+      }
+    }
+    IFC42.IfcBoundedSurface = IfcBoundedSurface;
+    class IfcBoundingBox extends IfcGeometricRepresentationItem {
+      constructor(Corner, XDim, YDim, ZDim) {
+        super();
+        this.Corner = Corner;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.ZDim = ZDim;
+        this.type = 2581212453;
+      }
+    }
+    IFC42.IfcBoundingBox = IfcBoundingBox;
+    class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {
+      constructor(BaseSurface, AgreementFlag, Enclosure) {
+        super(BaseSurface, AgreementFlag);
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.Enclosure = Enclosure;
+        this.type = 2713105998;
+      }
+    }
+    IFC42.IfcBoxedHalfSpace = IfcBoxedHalfSpace;
+    class IfcCShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.Width = Width;
+        this.WallThickness = WallThickness;
+        this.Girth = Girth;
+        this.InternalFilletRadius = InternalFilletRadius;
+        this.type = 2898889636;
+      }
+    }
+    IFC42.IfcCShapeProfileDef = IfcCShapeProfileDef;
+    class IfcCartesianPoint extends IfcPoint {
+      constructor(Coordinates) {
+        super();
+        this.Coordinates = Coordinates;
+        this.type = 1123145078;
+      }
+    }
+    IFC42.IfcCartesianPoint = IfcCartesianPoint;
+    class IfcCartesianPointList extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 574549367;
+      }
+    }
+    IFC42.IfcCartesianPointList = IfcCartesianPointList;
+    class IfcCartesianPointList2D extends IfcCartesianPointList {
+      constructor(CoordList) {
+        super();
+        this.CoordList = CoordList;
+        this.type = 1675464909;
+      }
+    }
+    IFC42.IfcCartesianPointList2D = IfcCartesianPointList2D;
+    class IfcCartesianPointList3D extends IfcCartesianPointList {
+      constructor(CoordList) {
+        super();
+        this.CoordList = CoordList;
+        this.type = 2059837836;
+      }
+    }
+    IFC42.IfcCartesianPointList3D = IfcCartesianPointList3D;
+    class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {
+      constructor(Axis1, Axis2, LocalOrigin, Scale) {
+        super();
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.type = 59481748;
+      }
+    }
+    IFC42.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;
+    class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {
+      constructor(Axis1, Axis2, LocalOrigin, Scale) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.type = 3749851601;
+      }
+    }
+    IFC42.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;
+    class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Scale2 = Scale2;
+        this.type = 3486308946;
+      }
+    }
+    IFC42.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;
+    class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Axis3 = Axis3;
+        this.type = 3331915920;
+      }
+    }
+    IFC42.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;
+    class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {
+        super(Axis1, Axis2, LocalOrigin, Scale, Axis3);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Axis3 = Axis3;
+        this.Scale2 = Scale2;
+        this.Scale3 = Scale3;
+        this.type = 1416205885;
+      }
+    }
+    IFC42.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;
+    class IfcCircleProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Radius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 1383045692;
+      }
+    }
+    IFC42.IfcCircleProfileDef = IfcCircleProfileDef;
+    class IfcClosedShell extends IfcConnectedFaceSet {
+      constructor(CfsFaces) {
+        super(CfsFaces);
+        this.CfsFaces = CfsFaces;
+        this.type = 2205249479;
+      }
+    }
+    IFC42.IfcClosedShell = IfcClosedShell;
+    class IfcColourRgb extends IfcColourSpecification {
+      constructor(Name, Red, Green, Blue) {
+        super(Name);
+        this.Name = Name;
+        this.Red = Red;
+        this.Green = Green;
+        this.Blue = Blue;
+        this.type = 776857604;
+      }
+    }
+    IFC42.IfcColourRgb = IfcColourRgb;
+    class IfcComplexProperty extends IfcProperty {
+      constructor(Name, Description, UsageName, HasProperties) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.UsageName = UsageName;
+        this.HasProperties = HasProperties;
+        this.type = 2542286263;
+      }
+    }
+    IFC42.IfcComplexProperty = IfcComplexProperty;
+    class IfcCompositeCurveSegment extends IfcGeometricRepresentationItem {
+      constructor(Transition, SameSense, ParentCurve) {
+        super();
+        this.Transition = Transition;
+        this.SameSense = SameSense;
+        this.ParentCurve = ParentCurve;
+        this.type = 2485617015;
+      }
+    }
+    IFC42.IfcCompositeCurveSegment = IfcCompositeCurveSegment;
+    class IfcConstructionResourceType extends IfcTypeResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.type = 2574617495;
+      }
+    }
+    IFC42.IfcConstructionResourceType = IfcConstructionResourceType;
+    class IfcContext extends IfcObjectDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.Phase = Phase;
+        this.RepresentationContexts = RepresentationContexts;
+        this.UnitsInContext = UnitsInContext;
+        this.type = 3419103109;
+      }
+    }
+    IFC42.IfcContext = IfcContext;
+    class IfcCrewResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 1815067380;
+      }
+    }
+    IFC42.IfcCrewResourceType = IfcCrewResourceType;
+    class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2506170314;
+      }
+    }
+    IFC42.IfcCsgPrimitive3D = IfcCsgPrimitive3D;
+    class IfcCsgSolid extends IfcSolidModel {
+      constructor(TreeRootExpression) {
+        super();
+        this.TreeRootExpression = TreeRootExpression;
+        this.type = 2147822146;
+      }
+    }
+    IFC42.IfcCsgSolid = IfcCsgSolid;
+    class IfcCurve extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2601014836;
+      }
+    }
+    IFC42.IfcCurve = IfcCurve;
+    class IfcCurveBoundedPlane extends IfcBoundedSurface {
+      constructor(BasisSurface, OuterBoundary, InnerBoundaries) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.OuterBoundary = OuterBoundary;
+        this.InnerBoundaries = InnerBoundaries;
+        this.type = 2827736869;
+      }
+    }
+    IFC42.IfcCurveBoundedPlane = IfcCurveBoundedPlane;
+    class IfcCurveBoundedSurface extends IfcBoundedSurface {
+      constructor(BasisSurface, Boundaries, ImplicitOuter) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.Boundaries = Boundaries;
+        this.ImplicitOuter = ImplicitOuter;
+        this.type = 2629017746;
+      }
+    }
+    IFC42.IfcCurveBoundedSurface = IfcCurveBoundedSurface;
+    class IfcDirection extends IfcGeometricRepresentationItem {
+      constructor(DirectionRatios) {
+        super();
+        this.DirectionRatios = DirectionRatios;
+        this.type = 32440307;
+      }
+    }
+    IFC42.IfcDirection = IfcDirection;
+    class IfcDoorStyle extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, OperationType, ConstructionType, ParameterTakesPrecedence, Sizeable) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.OperationType = OperationType;
+        this.ConstructionType = ConstructionType;
+        this.ParameterTakesPrecedence = ParameterTakesPrecedence;
+        this.Sizeable = Sizeable;
+        this.type = 526551008;
+      }
+    }
+    IFC42.IfcDoorStyle = IfcDoorStyle;
+    class IfcEdgeLoop extends IfcLoop {
+      constructor(EdgeList) {
+        super();
+        this.EdgeList = EdgeList;
+        this.type = 1472233963;
+      }
+    }
+    IFC42.IfcEdgeLoop = IfcEdgeLoop;
+    class IfcElementQuantity extends IfcQuantitySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.MethodOfMeasurement = MethodOfMeasurement;
+        this.Quantities = Quantities;
+        this.type = 1883228015;
+      }
+    }
+    IFC42.IfcElementQuantity = IfcElementQuantity;
+    class IfcElementType extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 339256511;
+      }
+    }
+    IFC42.IfcElementType = IfcElementType;
+    class IfcElementarySurface extends IfcSurface {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2777663545;
+      }
+    }
+    IFC42.IfcElementarySurface = IfcElementarySurface;
+    class IfcEllipseProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.SemiAxis1 = SemiAxis1;
+        this.SemiAxis2 = SemiAxis2;
+        this.type = 2835456948;
+      }
+    }
+    IFC42.IfcEllipseProfileDef = IfcEllipseProfileDef;
+    class IfcEventType extends IfcTypeProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ProcessType = ProcessType;
+        this.PredefinedType = PredefinedType;
+        this.EventTriggerType = EventTriggerType;
+        this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;
+        this.type = 4024345920;
+      }
+    }
+    IFC42.IfcEventType = IfcEventType;
+    class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, ExtrudedDirection, Depth) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.ExtrudedDirection = ExtrudedDirection;
+        this.Depth = Depth;
+        this.type = 477187591;
+      }
+    }
+    IFC42.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;
+    class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid {
+      constructor(SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) {
+        super(SweptArea, Position, ExtrudedDirection, Depth);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.ExtrudedDirection = ExtrudedDirection;
+        this.Depth = Depth;
+        this.EndSweptArea = EndSweptArea;
+        this.type = 2804161546;
+      }
+    }
+    IFC42.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered;
+    class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {
+      constructor(FbsmFaces) {
+        super();
+        this.FbsmFaces = FbsmFaces;
+        this.type = 2047409740;
+      }
+    }
+    IFC42.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;
+    class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {
+      constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {
+        super();
+        this.HatchLineAppearance = HatchLineAppearance;
+        this.StartOfNextHatchLine = StartOfNextHatchLine;
+        this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;
+        this.PatternStart = PatternStart;
+        this.HatchLineAngle = HatchLineAngle;
+        this.type = 374418227;
+      }
+    }
+    IFC42.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;
+    class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {
+      constructor(TilingPattern, Tiles, TilingScale) {
+        super();
+        this.TilingPattern = TilingPattern;
+        this.Tiles = Tiles;
+        this.TilingScale = TilingScale;
+        this.type = 315944413;
+      }
+    }
+    IFC42.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;
+    class IfcFixedReferenceSweptAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Directrix = Directrix;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.FixedReference = FixedReference;
+        this.type = 2652556860;
+      }
+    }
+    IFC42.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid;
+    class IfcFurnishingElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 4238390223;
+      }
+    }
+    IFC42.IfcFurnishingElementType = IfcFurnishingElementType;
+    class IfcFurnitureType extends IfcFurnishingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.AssemblyPlace = AssemblyPlace;
+        this.PredefinedType = PredefinedType;
+        this.type = 1268542332;
+      }
+    }
+    IFC42.IfcFurnitureType = IfcFurnitureType;
+    class IfcGeographicElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4095422895;
+      }
+    }
+    IFC42.IfcGeographicElementType = IfcGeographicElementType;
+    class IfcGeometricCurveSet extends IfcGeometricSet {
+      constructor(Elements) {
+        super(Elements);
+        this.Elements = Elements;
+        this.type = 987898635;
+      }
+    }
+    IFC42.IfcGeometricCurveSet = IfcGeometricCurveSet;
+    class IfcIShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.OverallWidth = OverallWidth;
+        this.OverallDepth = OverallDepth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.FlangeEdgeRadius = FlangeEdgeRadius;
+        this.FlangeSlope = FlangeSlope;
+        this.type = 1484403080;
+      }
+    }
+    IFC42.IfcIShapeProfileDef = IfcIShapeProfileDef;
+    class IfcIndexedPolygonalFace extends IfcTessellatedItem {
+      constructor(CoordIndex) {
+        super();
+        this.CoordIndex = CoordIndex;
+        this.type = 178912537;
+      }
+    }
+    IFC42.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace;
+    class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace {
+      constructor(CoordIndex, InnerCoordIndices) {
+        super(CoordIndex);
+        this.CoordIndex = CoordIndex;
+        this.InnerCoordIndices = InnerCoordIndices;
+        this.type = 2294589976;
+      }
+    }
+    IFC42.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids;
+    class IfcLShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.Width = Width;
+        this.Thickness = Thickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.LegSlope = LegSlope;
+        this.type = 572779678;
+      }
+    }
+    IFC42.IfcLShapeProfileDef = IfcLShapeProfileDef;
+    class IfcLaborResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 428585644;
+      }
+    }
+    IFC42.IfcLaborResourceType = IfcLaborResourceType;
+    class IfcLine extends IfcCurve {
+      constructor(Pnt, Dir) {
+        super();
+        this.Pnt = Pnt;
+        this.Dir = Dir;
+        this.type = 1281925730;
+      }
+    }
+    IFC42.IfcLine = IfcLine;
+    class IfcManifoldSolidBrep extends IfcSolidModel {
+      constructor(Outer) {
+        super();
+        this.Outer = Outer;
+        this.type = 1425443689;
+      }
+    }
+    IFC42.IfcManifoldSolidBrep = IfcManifoldSolidBrep;
+    class IfcObject extends IfcObjectDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 3888040117;
+      }
+    }
+    IFC42.IfcObject = IfcObject;
+    class IfcOffsetCurve2D extends IfcCurve {
+      constructor(BasisCurve, Distance, SelfIntersect) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.Distance = Distance;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 3388369263;
+      }
+    }
+    IFC42.IfcOffsetCurve2D = IfcOffsetCurve2D;
+    class IfcOffsetCurve3D extends IfcCurve {
+      constructor(BasisCurve, Distance, SelfIntersect, RefDirection) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.Distance = Distance;
+        this.SelfIntersect = SelfIntersect;
+        this.RefDirection = RefDirection;
+        this.type = 3505215534;
+      }
+    }
+    IFC42.IfcOffsetCurve3D = IfcOffsetCurve3D;
+    class IfcPcurve extends IfcCurve {
+      constructor(BasisSurface, ReferenceCurve) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.ReferenceCurve = ReferenceCurve;
+        this.type = 1682466193;
+      }
+    }
+    IFC42.IfcPcurve = IfcPcurve;
+    class IfcPlanarBox extends IfcPlanarExtent {
+      constructor(SizeInX, SizeInY, Placement) {
+        super(SizeInX, SizeInY);
+        this.SizeInX = SizeInX;
+        this.SizeInY = SizeInY;
+        this.Placement = Placement;
+        this.type = 603570806;
+      }
+    }
+    IFC42.IfcPlanarBox = IfcPlanarBox;
+    class IfcPlane extends IfcElementarySurface {
+      constructor(Position) {
+        super(Position);
+        this.Position = Position;
+        this.type = 220341763;
+      }
+    }
+    IFC42.IfcPlane = IfcPlane;
+    class IfcPreDefinedColour extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 759155922;
+      }
+    }
+    IFC42.IfcPreDefinedColour = IfcPreDefinedColour;
+    class IfcPreDefinedCurveFont extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 2559016684;
+      }
+    }
+    IFC42.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;
+    class IfcPreDefinedPropertySet extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3967405729;
+      }
+    }
+    IFC42.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet;
+    class IfcProcedureType extends IfcTypeProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ProcessType = ProcessType;
+        this.PredefinedType = PredefinedType;
+        this.type = 569719735;
+      }
+    }
+    IFC42.IfcProcedureType = IfcProcedureType;
+    class IfcProcess extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.type = 2945172077;
+      }
+    }
+    IFC42.IfcProcess = IfcProcess;
+    class IfcProduct extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 4208778838;
+      }
+    }
+    IFC42.IfcProduct = IfcProduct;
+    class IfcProject extends IfcContext {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.Phase = Phase;
+        this.RepresentationContexts = RepresentationContexts;
+        this.UnitsInContext = UnitsInContext;
+        this.type = 103090709;
+      }
+    }
+    IFC42.IfcProject = IfcProject;
+    class IfcProjectLibrary extends IfcContext {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.Phase = Phase;
+        this.RepresentationContexts = RepresentationContexts;
+        this.UnitsInContext = UnitsInContext;
+        this.type = 653396225;
+      }
+    }
+    IFC42.IfcProjectLibrary = IfcProjectLibrary;
+    class IfcPropertyBoundedValue extends IfcSimpleProperty {
+      constructor(Name, Description, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.UpperBoundValue = UpperBoundValue;
+        this.LowerBoundValue = LowerBoundValue;
+        this.Unit = Unit;
+        this.SetPointValue = SetPointValue;
+        this.type = 871118103;
+      }
+    }
+    IFC42.IfcPropertyBoundedValue = IfcPropertyBoundedValue;
+    class IfcPropertyEnumeratedValue extends IfcSimpleProperty {
+      constructor(Name, Description, EnumerationValues, EnumerationReference) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.EnumerationValues = EnumerationValues;
+        this.EnumerationReference = EnumerationReference;
+        this.type = 4166981789;
+      }
+    }
+    IFC42.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;
+    class IfcPropertyListValue extends IfcSimpleProperty {
+      constructor(Name, Description, ListValues, Unit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.ListValues = ListValues;
+        this.Unit = Unit;
+        this.type = 2752243245;
+      }
+    }
+    IFC42.IfcPropertyListValue = IfcPropertyListValue;
+    class IfcPropertyReferenceValue extends IfcSimpleProperty {
+      constructor(Name, Description, UsageName, PropertyReference) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.UsageName = UsageName;
+        this.PropertyReference = PropertyReference;
+        this.type = 941946838;
+      }
+    }
+    IFC42.IfcPropertyReferenceValue = IfcPropertyReferenceValue;
+    class IfcPropertySet extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.HasProperties = HasProperties;
+        this.type = 1451395588;
+      }
+    }
+    IFC42.IfcPropertySet = IfcPropertySet;
+    class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.TemplateType = TemplateType;
+        this.ApplicableEntity = ApplicableEntity;
+        this.HasPropertyTemplates = HasPropertyTemplates;
+        this.type = 492091185;
+      }
+    }
+    IFC42.IfcPropertySetTemplate = IfcPropertySetTemplate;
+    class IfcPropertySingleValue extends IfcSimpleProperty {
+      constructor(Name, Description, NominalValue, Unit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.NominalValue = NominalValue;
+        this.Unit = Unit;
+        this.type = 3650150729;
+      }
+    }
+    IFC42.IfcPropertySingleValue = IfcPropertySingleValue;
+    class IfcPropertyTableValue extends IfcSimpleProperty {
+      constructor(Name, Description, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.DefiningValues = DefiningValues;
+        this.DefinedValues = DefinedValues;
+        this.Expression = Expression;
+        this.DefiningUnit = DefiningUnit;
+        this.DefinedUnit = DefinedUnit;
+        this.CurveInterpolation = CurveInterpolation;
+        this.type = 110355661;
+      }
+    }
+    IFC42.IfcPropertyTableValue = IfcPropertyTableValue;
+    class IfcPropertyTemplate extends IfcPropertyTemplateDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3521284610;
+      }
+    }
+    IFC42.IfcPropertyTemplate = IfcPropertyTemplate;
+    class IfcProxy extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, ProxyType, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.ProxyType = ProxyType;
+        this.Tag = Tag;
+        this.type = 3219374653;
+      }
+    }
+    IFC42.IfcProxy = IfcProxy;
+    class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {
+        super(ProfileType, ProfileName, Position, XDim, YDim);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.WallThickness = WallThickness;
+        this.InnerFilletRadius = InnerFilletRadius;
+        this.OuterFilletRadius = OuterFilletRadius;
+        this.type = 2770003689;
+      }
+    }
+    IFC42.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;
+    class IfcRectangularPyramid extends IfcCsgPrimitive3D {
+      constructor(Position, XLength, YLength, Height) {
+        super(Position);
+        this.Position = Position;
+        this.XLength = XLength;
+        this.YLength = YLength;
+        this.Height = Height;
+        this.type = 2798486643;
+      }
+    }
+    IFC42.IfcRectangularPyramid = IfcRectangularPyramid;
+    class IfcRectangularTrimmedSurface extends IfcBoundedSurface {
+      constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.U1 = U1;
+        this.V1 = V1;
+        this.U2 = U2;
+        this.V2 = V2;
+        this.Usense = Usense;
+        this.Vsense = Vsense;
+        this.type = 3454111270;
+      }
+    }
+    IFC42.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;
+    class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.DefinitionType = DefinitionType;
+        this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;
+        this.type = 3765753017;
+      }
+    }
+    IFC42.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;
+    class IfcRelAssigns extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.type = 3939117080;
+      }
+    }
+    IFC42.IfcRelAssigns = IfcRelAssigns;
+    class IfcRelAssignsToActor extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingActor = RelatingActor;
+        this.ActingRole = ActingRole;
+        this.type = 1683148259;
+      }
+    }
+    IFC42.IfcRelAssignsToActor = IfcRelAssignsToActor;
+    class IfcRelAssignsToControl extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingControl = RelatingControl;
+        this.type = 2495723537;
+      }
+    }
+    IFC42.IfcRelAssignsToControl = IfcRelAssignsToControl;
+    class IfcRelAssignsToGroup extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingGroup = RelatingGroup;
+        this.type = 1307041759;
+      }
+    }
+    IFC42.IfcRelAssignsToGroup = IfcRelAssignsToGroup;
+    class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingGroup = RelatingGroup;
+        this.Factor = Factor;
+        this.type = 1027710054;
+      }
+    }
+    IFC42.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor;
+    class IfcRelAssignsToProcess extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingProcess = RelatingProcess;
+        this.QuantityInProcess = QuantityInProcess;
+        this.type = 4278684876;
+      }
+    }
+    IFC42.IfcRelAssignsToProcess = IfcRelAssignsToProcess;
+    class IfcRelAssignsToProduct extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingProduct = RelatingProduct;
+        this.type = 2857406711;
+      }
+    }
+    IFC42.IfcRelAssignsToProduct = IfcRelAssignsToProduct;
+    class IfcRelAssignsToResource extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingResource = RelatingResource;
+        this.type = 205026976;
+      }
+    }
+    IFC42.IfcRelAssignsToResource = IfcRelAssignsToResource;
+    class IfcRelAssociates extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 1865459582;
+      }
+    }
+    IFC42.IfcRelAssociates = IfcRelAssociates;
+    class IfcRelAssociatesApproval extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingApproval = RelatingApproval;
+        this.type = 4095574036;
+      }
+    }
+    IFC42.IfcRelAssociatesApproval = IfcRelAssociatesApproval;
+    class IfcRelAssociatesClassification extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingClassification = RelatingClassification;
+        this.type = 919958153;
+      }
+    }
+    IFC42.IfcRelAssociatesClassification = IfcRelAssociatesClassification;
+    class IfcRelAssociatesConstraint extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.Intent = Intent;
+        this.RelatingConstraint = RelatingConstraint;
+        this.type = 2728634034;
+      }
+    }
+    IFC42.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;
+    class IfcRelAssociatesDocument extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingDocument = RelatingDocument;
+        this.type = 982818633;
+      }
+    }
+    IFC42.IfcRelAssociatesDocument = IfcRelAssociatesDocument;
+    class IfcRelAssociatesLibrary extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingLibrary = RelatingLibrary;
+        this.type = 3840914261;
+      }
+    }
+    IFC42.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;
+    class IfcRelAssociatesMaterial extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingMaterial = RelatingMaterial;
+        this.type = 2655215786;
+      }
+    }
+    IFC42.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;
+    class IfcRelConnects extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 826625072;
+      }
+    }
+    IFC42.IfcRelConnects = IfcRelConnects;
+    class IfcRelConnectsElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.type = 1204542856;
+      }
+    }
+    IFC42.IfcRelConnectsElements = IfcRelConnectsElements;
+    class IfcRelConnectsPathElements extends IfcRelConnectsElements {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.RelatingPriorities = RelatingPriorities;
+        this.RelatedPriorities = RelatedPriorities;
+        this.RelatedConnectionType = RelatedConnectionType;
+        this.RelatingConnectionType = RelatingConnectionType;
+        this.type = 3945020480;
+      }
+    }
+    IFC42.IfcRelConnectsPathElements = IfcRelConnectsPathElements;
+    class IfcRelConnectsPortToElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingPort = RelatingPort;
+        this.RelatedElement = RelatedElement;
+        this.type = 4201705270;
+      }
+    }
+    IFC42.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;
+    class IfcRelConnectsPorts extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingPort = RelatingPort;
+        this.RelatedPort = RelatedPort;
+        this.RealizingElement = RealizingElement;
+        this.type = 3190031847;
+      }
+    }
+    IFC42.IfcRelConnectsPorts = IfcRelConnectsPorts;
+    class IfcRelConnectsStructuralActivity extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedStructuralActivity = RelatedStructuralActivity;
+        this.type = 2127690289;
+      }
+    }
+    IFC42.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;
+    class IfcRelConnectsStructuralMember extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingStructuralMember = RelatingStructuralMember;
+        this.RelatedStructuralConnection = RelatedStructuralConnection;
+        this.AppliedCondition = AppliedCondition;
+        this.AdditionalConditions = AdditionalConditions;
+        this.SupportedLength = SupportedLength;
+        this.ConditionCoordinateSystem = ConditionCoordinateSystem;
+        this.type = 1638771189;
+      }
+    }
+    IFC42.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;
+    class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingStructuralMember = RelatingStructuralMember;
+        this.RelatedStructuralConnection = RelatedStructuralConnection;
+        this.AppliedCondition = AppliedCondition;
+        this.AdditionalConditions = AdditionalConditions;
+        this.SupportedLength = SupportedLength;
+        this.ConditionCoordinateSystem = ConditionCoordinateSystem;
+        this.ConnectionConstraint = ConnectionConstraint;
+        this.type = 504942748;
+      }
+    }
+    IFC42.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;
+    class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.RealizingElements = RealizingElements;
+        this.ConnectionType = ConnectionType;
+        this.type = 3678494232;
+      }
+    }
+    IFC42.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;
+    class IfcRelContainedInSpatialStructure extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedElements = RelatedElements;
+        this.RelatingStructure = RelatingStructure;
+        this.type = 3242617779;
+      }
+    }
+    IFC42.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;
+    class IfcRelCoversBldgElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingBuildingElement = RelatingBuildingElement;
+        this.RelatedCoverings = RelatedCoverings;
+        this.type = 886880790;
+      }
+    }
+    IFC42.IfcRelCoversBldgElements = IfcRelCoversBldgElements;
+    class IfcRelCoversSpaces extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedCoverings = RelatedCoverings;
+        this.type = 2802773753;
+      }
+    }
+    IFC42.IfcRelCoversSpaces = IfcRelCoversSpaces;
+    class IfcRelDeclares extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingContext = RelatingContext;
+        this.RelatedDefinitions = RelatedDefinitions;
+        this.type = 2565941209;
+      }
+    }
+    IFC42.IfcRelDeclares = IfcRelDeclares;
+    class IfcRelDecomposes extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2551354335;
+      }
+    }
+    IFC42.IfcRelDecomposes = IfcRelDecomposes;
+    class IfcRelDefines extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 693640335;
+      }
+    }
+    IFC42.IfcRelDefines = IfcRelDefines;
+    class IfcRelDefinesByObject extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingObject = RelatingObject;
+        this.type = 1462361463;
+      }
+    }
+    IFC42.IfcRelDefinesByObject = IfcRelDefinesByObject;
+    class IfcRelDefinesByProperties extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingPropertyDefinition = RelatingPropertyDefinition;
+        this.type = 4186316022;
+      }
+    }
+    IFC42.IfcRelDefinesByProperties = IfcRelDefinesByProperties;
+    class IfcRelDefinesByTemplate extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedPropertySets = RelatedPropertySets;
+        this.RelatingTemplate = RelatingTemplate;
+        this.type = 307848117;
+      }
+    }
+    IFC42.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate;
+    class IfcRelDefinesByType extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingType = RelatingType;
+        this.type = 781010003;
+      }
+    }
+    IFC42.IfcRelDefinesByType = IfcRelDefinesByType;
+    class IfcRelFillsElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingOpeningElement = RelatingOpeningElement;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.type = 3940055652;
+      }
+    }
+    IFC42.IfcRelFillsElement = IfcRelFillsElement;
+    class IfcRelFlowControlElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedControlElements = RelatedControlElements;
+        this.RelatingFlowElement = RelatingFlowElement;
+        this.type = 279856033;
+      }
+    }
+    IFC42.IfcRelFlowControlElements = IfcRelFlowControlElements;
+    class IfcRelInterferesElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceType, ImpliedOrder) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.InterferenceGeometry = InterferenceGeometry;
+        this.InterferenceType = InterferenceType;
+        this.ImpliedOrder = ImpliedOrder;
+        this.type = 427948657;
+      }
+    }
+    IFC42.IfcRelInterferesElements = IfcRelInterferesElements;
+    class IfcRelNests extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingObject = RelatingObject;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 3268803585;
+      }
+    }
+    IFC42.IfcRelNests = IfcRelNests;
+    class IfcRelProjectsElement extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedFeatureElement = RelatedFeatureElement;
+        this.type = 750771296;
+      }
+    }
+    IFC42.IfcRelProjectsElement = IfcRelProjectsElement;
+    class IfcRelReferencedInSpatialStructure extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedElements = RelatedElements;
+        this.RelatingStructure = RelatingStructure;
+        this.type = 1245217292;
+      }
+    }
+    IFC42.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;
+    class IfcRelSequence extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingProcess = RelatingProcess;
+        this.RelatedProcess = RelatedProcess;
+        this.TimeLag = TimeLag;
+        this.SequenceType = SequenceType;
+        this.UserDefinedSequenceType = UserDefinedSequenceType;
+        this.type = 4122056220;
+      }
+    }
+    IFC42.IfcRelSequence = IfcRelSequence;
+    class IfcRelServicesBuildings extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSystem = RelatingSystem;
+        this.RelatedBuildings = RelatedBuildings;
+        this.type = 366585022;
+      }
+    }
+    IFC42.IfcRelServicesBuildings = IfcRelServicesBuildings;
+    class IfcRelSpaceBoundary extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;
+        this.InternalOrExternalBoundary = InternalOrExternalBoundary;
+        this.type = 3451746338;
+      }
+    }
+    IFC42.IfcRelSpaceBoundary = IfcRelSpaceBoundary;
+    class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;
+        this.InternalOrExternalBoundary = InternalOrExternalBoundary;
+        this.ParentBoundary = ParentBoundary;
+        this.type = 3523091289;
+      }
+    }
+    IFC42.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel;
+    class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;
+        this.InternalOrExternalBoundary = InternalOrExternalBoundary;
+        this.ParentBoundary = ParentBoundary;
+        this.CorrespondingBoundary = CorrespondingBoundary;
+        this.type = 1521410863;
+      }
+    }
+    IFC42.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel;
+    class IfcRelVoidsElement extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingBuildingElement = RelatingBuildingElement;
+        this.RelatedOpeningElement = RelatedOpeningElement;
+        this.type = 1401173127;
+      }
+    }
+    IFC42.IfcRelVoidsElement = IfcRelVoidsElement;
+    class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment {
+      constructor(Transition, SameSense, ParentCurve, ParamLength) {
+        super(Transition, SameSense, ParentCurve);
+        this.Transition = Transition;
+        this.SameSense = SameSense;
+        this.ParentCurve = ParentCurve;
+        this.ParamLength = ParamLength;
+        this.type = 816062949;
+      }
+    }
+    IFC42.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment;
+    class IfcResource extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.type = 2914609552;
+      }
+    }
+    IFC42.IfcResource = IfcResource;
+    class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, Axis, Angle) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Axis = Axis;
+        this.Angle = Angle;
+        this.type = 1856042241;
+      }
+    }
+    IFC42.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;
+    class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid {
+      constructor(SweptArea, Position, Axis, Angle, EndSweptArea) {
+        super(SweptArea, Position, Axis, Angle);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Axis = Axis;
+        this.Angle = Angle;
+        this.EndSweptArea = EndSweptArea;
+        this.type = 3243963512;
+      }
+    }
+    IFC42.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered;
+    class IfcRightCircularCone extends IfcCsgPrimitive3D {
+      constructor(Position, Height, BottomRadius) {
+        super(Position);
+        this.Position = Position;
+        this.Height = Height;
+        this.BottomRadius = BottomRadius;
+        this.type = 4158566097;
+      }
+    }
+    IFC42.IfcRightCircularCone = IfcRightCircularCone;
+    class IfcRightCircularCylinder extends IfcCsgPrimitive3D {
+      constructor(Position, Height, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Height = Height;
+        this.Radius = Radius;
+        this.type = 3626867408;
+      }
+    }
+    IFC42.IfcRightCircularCylinder = IfcRightCircularCylinder;
+    class IfcSimplePropertyTemplate extends IfcPropertyTemplate {
+      constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.TemplateType = TemplateType;
+        this.PrimaryMeasureType = PrimaryMeasureType;
+        this.SecondaryMeasureType = SecondaryMeasureType;
+        this.Enumerators = Enumerators;
+        this.PrimaryUnit = PrimaryUnit;
+        this.SecondaryUnit = SecondaryUnit;
+        this.Expression = Expression;
+        this.AccessState = AccessState;
+        this.type = 3663146110;
+      }
+    }
+    IFC42.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate;
+    class IfcSpatialElement extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.type = 1412071761;
+      }
+    }
+    IFC42.IfcSpatialElement = IfcSpatialElement;
+    class IfcSpatialElementType extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 710998568;
+      }
+    }
+    IFC42.IfcSpatialElementType = IfcSpatialElementType;
+    class IfcSpatialStructureElement extends IfcSpatialElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.type = 2706606064;
+      }
+    }
+    IFC42.IfcSpatialStructureElement = IfcSpatialStructureElement;
+    class IfcSpatialStructureElementType extends IfcSpatialElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3893378262;
+      }
+    }
+    IFC42.IfcSpatialStructureElementType = IfcSpatialStructureElementType;
+    class IfcSpatialZone extends IfcSpatialElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.PredefinedType = PredefinedType;
+        this.type = 463610769;
+      }
+    }
+    IFC42.IfcSpatialZone = IfcSpatialZone;
+    class IfcSpatialZoneType extends IfcSpatialElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.LongName = LongName;
+        this.type = 2481509218;
+      }
+    }
+    IFC42.IfcSpatialZoneType = IfcSpatialZoneType;
+    class IfcSphere extends IfcCsgPrimitive3D {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 451544542;
+      }
+    }
+    IFC42.IfcSphere = IfcSphere;
+    class IfcSphericalSurface extends IfcElementarySurface {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 4015995234;
+      }
+    }
+    IFC42.IfcSphericalSurface = IfcSphericalSurface;
+    class IfcStructuralActivity extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 3544373492;
+      }
+    }
+    IFC42.IfcStructuralActivity = IfcStructuralActivity;
+    class IfcStructuralItem extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 3136571912;
+      }
+    }
+    IFC42.IfcStructuralItem = IfcStructuralItem;
+    class IfcStructuralMember extends IfcStructuralItem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 530289379;
+      }
+    }
+    IFC42.IfcStructuralMember = IfcStructuralMember;
+    class IfcStructuralReaction extends IfcStructuralActivity {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 3689010777;
+      }
+    }
+    IFC42.IfcStructuralReaction = IfcStructuralReaction;
+    class IfcStructuralSurfaceMember extends IfcStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Thickness = Thickness;
+        this.type = 3979015343;
+      }
+    }
+    IFC42.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;
+    class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Thickness = Thickness;
+        this.type = 2218152070;
+      }
+    }
+    IFC42.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;
+    class IfcStructuralSurfaceReaction extends IfcStructuralReaction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.PredefinedType = PredefinedType;
+        this.type = 603775116;
+      }
+    }
+    IFC42.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction;
+    class IfcSubContractResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 4095615324;
+      }
+    }
+    IFC42.IfcSubContractResourceType = IfcSubContractResourceType;
+    class IfcSurfaceCurve extends IfcCurve {
+      constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {
+        super();
+        this.Curve3D = Curve3D;
+        this.AssociatedGeometry = AssociatedGeometry;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 699246055;
+      }
+    }
+    IFC42.IfcSurfaceCurve = IfcSurfaceCurve;
+    class IfcSurfaceCurveSweptAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Directrix = Directrix;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.ReferenceSurface = ReferenceSurface;
+        this.type = 2028607225;
+      }
+    }
+    IFC42.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;
+    class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {
+      constructor(SweptCurve, Position, ExtrudedDirection, Depth) {
+        super(SweptCurve, Position);
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.ExtrudedDirection = ExtrudedDirection;
+        this.Depth = Depth;
+        this.type = 2809605785;
+      }
+    }
+    IFC42.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;
+    class IfcSurfaceOfRevolution extends IfcSweptSurface {
+      constructor(SweptCurve, Position, AxisPosition) {
+        super(SweptCurve, Position);
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.AxisPosition = AxisPosition;
+        this.type = 4124788165;
+      }
+    }
+    IFC42.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;
+    class IfcSystemFurnitureElementType extends IfcFurnishingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1580310250;
+      }
+    }
+    IFC42.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;
+    class IfcTask extends IfcProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Status = Status;
+        this.WorkMethod = WorkMethod;
+        this.IsMilestone = IsMilestone;
+        this.Priority = Priority;
+        this.TaskTime = TaskTime;
+        this.PredefinedType = PredefinedType;
+        this.type = 3473067441;
+      }
+    }
+    IFC42.IfcTask = IfcTask;
+    class IfcTaskType extends IfcTypeProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ProcessType = ProcessType;
+        this.PredefinedType = PredefinedType;
+        this.WorkMethod = WorkMethod;
+        this.type = 3206491090;
+      }
+    }
+    IFC42.IfcTaskType = IfcTaskType;
+    class IfcTessellatedFaceSet extends IfcTessellatedItem {
+      constructor(Coordinates) {
+        super();
+        this.Coordinates = Coordinates;
+        this.type = 2387106220;
+      }
+    }
+    IFC42.IfcTessellatedFaceSet = IfcTessellatedFaceSet;
+    class IfcToroidalSurface extends IfcElementarySurface {
+      constructor(Position, MajorRadius, MinorRadius) {
+        super(Position);
+        this.Position = Position;
+        this.MajorRadius = MajorRadius;
+        this.MinorRadius = MinorRadius;
+        this.type = 1935646853;
+      }
+    }
+    IFC42.IfcToroidalSurface = IfcToroidalSurface;
+    class IfcTransportElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2097647324;
+      }
+    }
+    IFC42.IfcTransportElementType = IfcTransportElementType;
+    class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet {
+      constructor(Coordinates, Normals, Closed, CoordIndex, PnIndex) {
+        super(Coordinates);
+        this.Coordinates = Coordinates;
+        this.Normals = Normals;
+        this.Closed = Closed;
+        this.CoordIndex = CoordIndex;
+        this.PnIndex = PnIndex;
+        this.type = 2916149573;
+      }
+    }
+    IFC42.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet;
+    class IfcWindowLiningProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.LiningDepth = LiningDepth;
+        this.LiningThickness = LiningThickness;
+        this.TransomThickness = TransomThickness;
+        this.MullionThickness = MullionThickness;
+        this.FirstTransomOffset = FirstTransomOffset;
+        this.SecondTransomOffset = SecondTransomOffset;
+        this.FirstMullionOffset = FirstMullionOffset;
+        this.SecondMullionOffset = SecondMullionOffset;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.LiningOffset = LiningOffset;
+        this.LiningToPanelOffsetX = LiningToPanelOffsetX;
+        this.LiningToPanelOffsetY = LiningToPanelOffsetY;
+        this.type = 336235671;
+      }
+    }
+    IFC42.IfcWindowLiningProperties = IfcWindowLiningProperties;
+    class IfcWindowPanelProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.OperationType = OperationType;
+        this.PanelPosition = PanelPosition;
+        this.FrameDepth = FrameDepth;
+        this.FrameThickness = FrameThickness;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 512836454;
+      }
+    }
+    IFC42.IfcWindowPanelProperties = IfcWindowPanelProperties;
+    class IfcActor extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheActor = TheActor;
+        this.type = 2296667514;
+      }
+    }
+    IFC42.IfcActor = IfcActor;
+    class IfcAdvancedBrep extends IfcManifoldSolidBrep {
+      constructor(Outer) {
+        super(Outer);
+        this.Outer = Outer;
+        this.type = 1635779807;
+      }
+    }
+    IFC42.IfcAdvancedBrep = IfcAdvancedBrep;
+    class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep {
+      constructor(Outer, Voids) {
+        super(Outer);
+        this.Outer = Outer;
+        this.Voids = Voids;
+        this.type = 2603310189;
+      }
+    }
+    IFC42.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids;
+    class IfcAnnotation extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 1674181508;
+      }
+    }
+    IFC42.IfcAnnotation = IfcAnnotation;
+    class IfcBSplineSurface extends IfcBoundedSurface {
+      constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) {
+        super();
+        this.UDegree = UDegree;
+        this.VDegree = VDegree;
+        this.ControlPointsList = ControlPointsList;
+        this.SurfaceForm = SurfaceForm;
+        this.UClosed = UClosed;
+        this.VClosed = VClosed;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 2887950389;
+      }
+    }
+    IFC42.IfcBSplineSurface = IfcBSplineSurface;
+    class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface {
+      constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) {
+        super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect);
+        this.UDegree = UDegree;
+        this.VDegree = VDegree;
+        this.ControlPointsList = ControlPointsList;
+        this.SurfaceForm = SurfaceForm;
+        this.UClosed = UClosed;
+        this.VClosed = VClosed;
+        this.SelfIntersect = SelfIntersect;
+        this.UMultiplicities = UMultiplicities;
+        this.VMultiplicities = VMultiplicities;
+        this.UKnots = UKnots;
+        this.VKnots = VKnots;
+        this.KnotSpec = KnotSpec;
+        this.type = 167062518;
+      }
+    }
+    IFC42.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots;
+    class IfcBlock extends IfcCsgPrimitive3D {
+      constructor(Position, XLength, YLength, ZLength) {
+        super(Position);
+        this.Position = Position;
+        this.XLength = XLength;
+        this.YLength = YLength;
+        this.ZLength = ZLength;
+        this.type = 1334484129;
+      }
+    }
+    IFC42.IfcBlock = IfcBlock;
+    class IfcBooleanClippingResult extends IfcBooleanResult {
+      constructor(Operator, FirstOperand, SecondOperand) {
+        super(Operator, FirstOperand, SecondOperand);
+        this.Operator = Operator;
+        this.FirstOperand = FirstOperand;
+        this.SecondOperand = SecondOperand;
+        this.type = 3649129432;
+      }
+    }
+    IFC42.IfcBooleanClippingResult = IfcBooleanClippingResult;
+    class IfcBoundedCurve extends IfcCurve {
+      constructor() {
+        super();
+        this.type = 1260505505;
+      }
+    }
+    IFC42.IfcBoundedCurve = IfcBoundedCurve;
+    class IfcBuilding extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.ElevationOfRefHeight = ElevationOfRefHeight;
+        this.ElevationOfTerrain = ElevationOfTerrain;
+        this.BuildingAddress = BuildingAddress;
+        this.type = 4031249490;
+      }
+    }
+    IFC42.IfcBuilding = IfcBuilding;
+    class IfcBuildingElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1950629157;
+      }
+    }
+    IFC42.IfcBuildingElementType = IfcBuildingElementType;
+    class IfcBuildingStorey extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.Elevation = Elevation;
+        this.type = 3124254112;
+      }
+    }
+    IFC42.IfcBuildingStorey = IfcBuildingStorey;
+    class IfcChimneyType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2197970202;
+      }
+    }
+    IFC42.IfcChimneyType = IfcChimneyType;
+    class IfcCircleHollowProfileDef extends IfcCircleProfileDef {
+      constructor(ProfileType, ProfileName, Position, Radius, WallThickness) {
+        super(ProfileType, ProfileName, Position, Radius);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.WallThickness = WallThickness;
+        this.type = 2937912522;
+      }
+    }
+    IFC42.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;
+    class IfcCivilElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3893394355;
+      }
+    }
+    IFC42.IfcCivilElementType = IfcCivilElementType;
+    class IfcColumnType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 300633059;
+      }
+    }
+    IFC42.IfcColumnType = IfcColumnType;
+    class IfcComplexPropertyTemplate extends IfcPropertyTemplate {
+      constructor(GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.UsageName = UsageName;
+        this.TemplateType = TemplateType;
+        this.HasPropertyTemplates = HasPropertyTemplates;
+        this.type = 3875453745;
+      }
+    }
+    IFC42.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate;
+    class IfcCompositeCurve extends IfcBoundedCurve {
+      constructor(Segments, SelfIntersect) {
+        super();
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 3732776249;
+      }
+    }
+    IFC42.IfcCompositeCurve = IfcCompositeCurve;
+    class IfcCompositeCurveOnSurface extends IfcCompositeCurve {
+      constructor(Segments, SelfIntersect) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 15328376;
+      }
+    }
+    IFC42.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface;
+    class IfcConic extends IfcCurve {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2510884976;
+      }
+    }
+    IFC42.IfcConic = IfcConic;
+    class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 2185764099;
+      }
+    }
+    IFC42.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType;
+    class IfcConstructionMaterialResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 4105962743;
+      }
+    }
+    IFC42.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType;
+    class IfcConstructionProductResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 1525564444;
+      }
+    }
+    IFC42.IfcConstructionProductResourceType = IfcConstructionProductResourceType;
+    class IfcConstructionResource extends IfcResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.type = 2559216714;
+      }
+    }
+    IFC42.IfcConstructionResource = IfcConstructionResource;
+    class IfcControl extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.type = 3293443760;
+      }
+    }
+    IFC42.IfcControl = IfcControl;
+    class IfcCostItem extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.CostValues = CostValues;
+        this.CostQuantities = CostQuantities;
+        this.type = 3895139033;
+      }
+    }
+    IFC42.IfcCostItem = IfcCostItem;
+    class IfcCostSchedule extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.SubmittedOn = SubmittedOn;
+        this.UpdateDate = UpdateDate;
+        this.type = 1419761937;
+      }
+    }
+    IFC42.IfcCostSchedule = IfcCostSchedule;
+    class IfcCoveringType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1916426348;
+      }
+    }
+    IFC42.IfcCoveringType = IfcCoveringType;
+    class IfcCrewResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 3295246426;
+      }
+    }
+    IFC42.IfcCrewResource = IfcCrewResource;
+    class IfcCurtainWallType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1457835157;
+      }
+    }
+    IFC42.IfcCurtainWallType = IfcCurtainWallType;
+    class IfcCylindricalSurface extends IfcElementarySurface {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 1213902940;
+      }
+    }
+    IFC42.IfcCylindricalSurface = IfcCylindricalSurface;
+    class IfcDistributionElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3256556792;
+      }
+    }
+    IFC42.IfcDistributionElementType = IfcDistributionElementType;
+    class IfcDistributionFlowElementType extends IfcDistributionElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3849074793;
+      }
+    }
+    IFC42.IfcDistributionFlowElementType = IfcDistributionFlowElementType;
+    class IfcDoorLiningProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.LiningDepth = LiningDepth;
+        this.LiningThickness = LiningThickness;
+        this.ThresholdDepth = ThresholdDepth;
+        this.ThresholdThickness = ThresholdThickness;
+        this.TransomThickness = TransomThickness;
+        this.TransomOffset = TransomOffset;
+        this.LiningOffset = LiningOffset;
+        this.ThresholdOffset = ThresholdOffset;
+        this.CasingThickness = CasingThickness;
+        this.CasingDepth = CasingDepth;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.LiningToPanelOffsetX = LiningToPanelOffsetX;
+        this.LiningToPanelOffsetY = LiningToPanelOffsetY;
+        this.type = 2963535650;
+      }
+    }
+    IFC42.IfcDoorLiningProperties = IfcDoorLiningProperties;
+    class IfcDoorPanelProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.PanelDepth = PanelDepth;
+        this.PanelOperation = PanelOperation;
+        this.PanelWidth = PanelWidth;
+        this.PanelPosition = PanelPosition;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 1714330368;
+      }
+    }
+    IFC42.IfcDoorPanelProperties = IfcDoorPanelProperties;
+    class IfcDoorType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.OperationType = OperationType;
+        this.ParameterTakesPrecedence = ParameterTakesPrecedence;
+        this.UserDefinedOperationType = UserDefinedOperationType;
+        this.type = 2323601079;
+      }
+    }
+    IFC42.IfcDoorType = IfcDoorType;
+    class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 445594917;
+      }
+    }
+    IFC42.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;
+    class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 4006246654;
+      }
+    }
+    IFC42.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;
+    class IfcElement extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1758889154;
+      }
+    }
+    IFC42.IfcElement = IfcElement;
+    class IfcElementAssembly extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.AssemblyPlace = AssemblyPlace;
+        this.PredefinedType = PredefinedType;
+        this.type = 4123344466;
+      }
+    }
+    IFC42.IfcElementAssembly = IfcElementAssembly;
+    class IfcElementAssemblyType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2397081782;
+      }
+    }
+    IFC42.IfcElementAssemblyType = IfcElementAssemblyType;
+    class IfcElementComponent extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1623761950;
+      }
+    }
+    IFC42.IfcElementComponent = IfcElementComponent;
+    class IfcElementComponentType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2590856083;
+      }
+    }
+    IFC42.IfcElementComponentType = IfcElementComponentType;
+    class IfcEllipse extends IfcConic {
+      constructor(Position, SemiAxis1, SemiAxis2) {
+        super(Position);
+        this.Position = Position;
+        this.SemiAxis1 = SemiAxis1;
+        this.SemiAxis2 = SemiAxis2;
+        this.type = 1704287377;
+      }
+    }
+    IFC42.IfcEllipse = IfcEllipse;
+    class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2107101300;
+      }
+    }
+    IFC42.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;
+    class IfcEngineType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 132023988;
+      }
+    }
+    IFC42.IfcEngineType = IfcEngineType;
+    class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3174744832;
+      }
+    }
+    IFC42.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;
+    class IfcEvaporatorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3390157468;
+      }
+    }
+    IFC42.IfcEvaporatorType = IfcEvaporatorType;
+    class IfcEvent extends IfcProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.PredefinedType = PredefinedType;
+        this.EventTriggerType = EventTriggerType;
+        this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;
+        this.EventOccurenceTime = EventOccurenceTime;
+        this.type = 4148101412;
+      }
+    }
+    IFC42.IfcEvent = IfcEvent;
+    class IfcExternalSpatialStructureElement extends IfcSpatialElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.type = 2853485674;
+      }
+    }
+    IFC42.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement;
+    class IfcFacetedBrep extends IfcManifoldSolidBrep {
+      constructor(Outer) {
+        super(Outer);
+        this.Outer = Outer;
+        this.type = 807026263;
+      }
+    }
+    IFC42.IfcFacetedBrep = IfcFacetedBrep;
+    class IfcFacetedBrepWithVoids extends IfcFacetedBrep {
+      constructor(Outer, Voids) {
+        super(Outer);
+        this.Outer = Outer;
+        this.Voids = Voids;
+        this.type = 3737207727;
+      }
+    }
+    IFC42.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;
+    class IfcFastener extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 647756555;
+      }
+    }
+    IFC42.IfcFastener = IfcFastener;
+    class IfcFastenerType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2489546625;
+      }
+    }
+    IFC42.IfcFastenerType = IfcFastenerType;
+    class IfcFeatureElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2827207264;
+      }
+    }
+    IFC42.IfcFeatureElement = IfcFeatureElement;
+    class IfcFeatureElementAddition extends IfcFeatureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2143335405;
+      }
+    }
+    IFC42.IfcFeatureElementAddition = IfcFeatureElementAddition;
+    class IfcFeatureElementSubtraction extends IfcFeatureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1287392070;
+      }
+    }
+    IFC42.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;
+    class IfcFlowControllerType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3907093117;
+      }
+    }
+    IFC42.IfcFlowControllerType = IfcFlowControllerType;
+    class IfcFlowFittingType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3198132628;
+      }
+    }
+    IFC42.IfcFlowFittingType = IfcFlowFittingType;
+    class IfcFlowMeterType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3815607619;
+      }
+    }
+    IFC42.IfcFlowMeterType = IfcFlowMeterType;
+    class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1482959167;
+      }
+    }
+    IFC42.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;
+    class IfcFlowSegmentType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1834744321;
+      }
+    }
+    IFC42.IfcFlowSegmentType = IfcFlowSegmentType;
+    class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1339347760;
+      }
+    }
+    IFC42.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;
+    class IfcFlowTerminalType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2297155007;
+      }
+    }
+    IFC42.IfcFlowTerminalType = IfcFlowTerminalType;
+    class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3009222698;
+      }
+    }
+    IFC42.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;
+    class IfcFootingType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1893162501;
+      }
+    }
+    IFC42.IfcFootingType = IfcFootingType;
+    class IfcFurnishingElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 263784265;
+      }
+    }
+    IFC42.IfcFurnishingElement = IfcFurnishingElement;
+    class IfcFurniture extends IfcFurnishingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1509553395;
+      }
+    }
+    IFC42.IfcFurniture = IfcFurniture;
+    class IfcGeographicElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3493046030;
+      }
+    }
+    IFC42.IfcGeographicElement = IfcGeographicElement;
+    class IfcGrid extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.UAxes = UAxes;
+        this.VAxes = VAxes;
+        this.WAxes = WAxes;
+        this.PredefinedType = PredefinedType;
+        this.type = 3009204131;
+      }
+    }
+    IFC42.IfcGrid = IfcGrid;
+    class IfcGroup extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2706460486;
+      }
+    }
+    IFC42.IfcGroup = IfcGroup;
+    class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1251058090;
+      }
+    }
+    IFC42.IfcHeatExchangerType = IfcHeatExchangerType;
+    class IfcHumidifierType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1806887404;
+      }
+    }
+    IFC42.IfcHumidifierType = IfcHumidifierType;
+    class IfcIndexedPolyCurve extends IfcBoundedCurve {
+      constructor(Points, Segments, SelfIntersect) {
+        super();
+        this.Points = Points;
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 2571569899;
+      }
+    }
+    IFC42.IfcIndexedPolyCurve = IfcIndexedPolyCurve;
+    class IfcInterceptorType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3946677679;
+      }
+    }
+    IFC42.IfcInterceptorType = IfcInterceptorType;
+    class IfcIntersectionCurve extends IfcSurfaceCurve {
+      constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {
+        super(Curve3D, AssociatedGeometry, MasterRepresentation);
+        this.Curve3D = Curve3D;
+        this.AssociatedGeometry = AssociatedGeometry;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 3113134337;
+      }
+    }
+    IFC42.IfcIntersectionCurve = IfcIntersectionCurve;
+    class IfcInventory extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.Jurisdiction = Jurisdiction;
+        this.ResponsiblePersons = ResponsiblePersons;
+        this.LastUpdateDate = LastUpdateDate;
+        this.CurrentValue = CurrentValue;
+        this.OriginalValue = OriginalValue;
+        this.type = 2391368822;
+      }
+    }
+    IFC42.IfcInventory = IfcInventory;
+    class IfcJunctionBoxType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4288270099;
+      }
+    }
+    IFC42.IfcJunctionBoxType = IfcJunctionBoxType;
+    class IfcLaborResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 3827777499;
+      }
+    }
+    IFC42.IfcLaborResource = IfcLaborResource;
+    class IfcLampType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1051575348;
+      }
+    }
+    IFC42.IfcLampType = IfcLampType;
+    class IfcLightFixtureType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1161773419;
+      }
+    }
+    IFC42.IfcLightFixtureType = IfcLightFixtureType;
+    class IfcMechanicalFastener extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.NominalDiameter = NominalDiameter;
+        this.NominalLength = NominalLength;
+        this.PredefinedType = PredefinedType;
+        this.type = 377706215;
+      }
+    }
+    IFC42.IfcMechanicalFastener = IfcMechanicalFastener;
+    class IfcMechanicalFastenerType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.NominalLength = NominalLength;
+        this.type = 2108223431;
+      }
+    }
+    IFC42.IfcMechanicalFastenerType = IfcMechanicalFastenerType;
+    class IfcMedicalDeviceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1114901282;
+      }
+    }
+    IFC42.IfcMedicalDeviceType = IfcMedicalDeviceType;
+    class IfcMemberType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3181161470;
+      }
+    }
+    IFC42.IfcMemberType = IfcMemberType;
+    class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 977012517;
+      }
+    }
+    IFC42.IfcMotorConnectionType = IfcMotorConnectionType;
+    class IfcOccupant extends IfcActor {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheActor = TheActor;
+        this.PredefinedType = PredefinedType;
+        this.type = 4143007308;
+      }
+    }
+    IFC42.IfcOccupant = IfcOccupant;
+    class IfcOpeningElement extends IfcFeatureElementSubtraction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3588315303;
+      }
+    }
+    IFC42.IfcOpeningElement = IfcOpeningElement;
+    class IfcOpeningStandardCase extends IfcOpeningElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3079942009;
+      }
+    }
+    IFC42.IfcOpeningStandardCase = IfcOpeningStandardCase;
+    class IfcOutletType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2837617999;
+      }
+    }
+    IFC42.IfcOutletType = IfcOutletType;
+    class IfcPerformanceHistory extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LifeCyclePhase = LifeCyclePhase;
+        this.PredefinedType = PredefinedType;
+        this.type = 2382730787;
+      }
+    }
+    IFC42.IfcPerformanceHistory = IfcPerformanceHistory;
+    class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.OperationType = OperationType;
+        this.PanelPosition = PanelPosition;
+        this.FrameDepth = FrameDepth;
+        this.FrameThickness = FrameThickness;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 3566463478;
+      }
+    }
+    IFC42.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;
+    class IfcPermit extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.LongDescription = LongDescription;
+        this.type = 3327091369;
+      }
+    }
+    IFC42.IfcPermit = IfcPermit;
+    class IfcPileType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1158309216;
+      }
+    }
+    IFC42.IfcPileType = IfcPileType;
+    class IfcPipeFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 804291784;
+      }
+    }
+    IFC42.IfcPipeFittingType = IfcPipeFittingType;
+    class IfcPipeSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4231323485;
+      }
+    }
+    IFC42.IfcPipeSegmentType = IfcPipeSegmentType;
+    class IfcPlateType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4017108033;
+      }
+    }
+    IFC42.IfcPlateType = IfcPlateType;
+    class IfcPolygonalFaceSet extends IfcTessellatedFaceSet {
+      constructor(Coordinates, Closed, Faces, PnIndex) {
+        super(Coordinates);
+        this.Coordinates = Coordinates;
+        this.Closed = Closed;
+        this.Faces = Faces;
+        this.PnIndex = PnIndex;
+        this.type = 2839578677;
+      }
+    }
+    IFC42.IfcPolygonalFaceSet = IfcPolygonalFaceSet;
+    class IfcPolyline extends IfcBoundedCurve {
+      constructor(Points) {
+        super();
+        this.Points = Points;
+        this.type = 3724593414;
+      }
+    }
+    IFC42.IfcPolyline = IfcPolyline;
+    class IfcPort extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 3740093272;
+      }
+    }
+    IFC42.IfcPort = IfcPort;
+    class IfcProcedure extends IfcProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.PredefinedType = PredefinedType;
+        this.type = 2744685151;
+      }
+    }
+    IFC42.IfcProcedure = IfcProcedure;
+    class IfcProjectOrder extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.LongDescription = LongDescription;
+        this.type = 2904328755;
+      }
+    }
+    IFC42.IfcProjectOrder = IfcProjectOrder;
+    class IfcProjectionElement extends IfcFeatureElementAddition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3651124850;
+      }
+    }
+    IFC42.IfcProjectionElement = IfcProjectionElement;
+    class IfcProtectiveDeviceType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1842657554;
+      }
+    }
+    IFC42.IfcProtectiveDeviceType = IfcProtectiveDeviceType;
+    class IfcPumpType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2250791053;
+      }
+    }
+    IFC42.IfcPumpType = IfcPumpType;
+    class IfcRailingType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2893384427;
+      }
+    }
+    IFC42.IfcRailingType = IfcRailingType;
+    class IfcRampFlightType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2324767716;
+      }
+    }
+    IFC42.IfcRampFlightType = IfcRampFlightType;
+    class IfcRampType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1469900589;
+      }
+    }
+    IFC42.IfcRampType = IfcRampType;
+    class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots {
+      constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) {
+        super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec);
+        this.UDegree = UDegree;
+        this.VDegree = VDegree;
+        this.ControlPointsList = ControlPointsList;
+        this.SurfaceForm = SurfaceForm;
+        this.UClosed = UClosed;
+        this.VClosed = VClosed;
+        this.SelfIntersect = SelfIntersect;
+        this.UMultiplicities = UMultiplicities;
+        this.VMultiplicities = VMultiplicities;
+        this.UKnots = UKnots;
+        this.VKnots = VKnots;
+        this.KnotSpec = KnotSpec;
+        this.WeightsData = WeightsData;
+        this.type = 683857671;
+      }
+    }
+    IFC42.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots;
+    class IfcReinforcingElement extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.type = 3027567501;
+      }
+    }
+    IFC42.IfcReinforcingElement = IfcReinforcingElement;
+    class IfcReinforcingElementType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 964333572;
+      }
+    }
+    IFC42.IfcReinforcingElementType = IfcReinforcingElementType;
+    class IfcReinforcingMesh extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.MeshLength = MeshLength;
+        this.MeshWidth = MeshWidth;
+        this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;
+        this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;
+        this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;
+        this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;
+        this.LongitudinalBarSpacing = LongitudinalBarSpacing;
+        this.TransverseBarSpacing = TransverseBarSpacing;
+        this.PredefinedType = PredefinedType;
+        this.type = 2320036040;
+      }
+    }
+    IFC42.IfcReinforcingMesh = IfcReinforcingMesh;
+    class IfcReinforcingMeshType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.MeshLength = MeshLength;
+        this.MeshWidth = MeshWidth;
+        this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;
+        this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;
+        this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;
+        this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;
+        this.LongitudinalBarSpacing = LongitudinalBarSpacing;
+        this.TransverseBarSpacing = TransverseBarSpacing;
+        this.BendingShapeCode = BendingShapeCode;
+        this.BendingParameters = BendingParameters;
+        this.type = 2310774935;
+      }
+    }
+    IFC42.IfcReinforcingMeshType = IfcReinforcingMeshType;
+    class IfcRelAggregates extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingObject = RelatingObject;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 160246688;
+      }
+    }
+    IFC42.IfcRelAggregates = IfcRelAggregates;
+    class IfcRoofType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2781568857;
+      }
+    }
+    IFC42.IfcRoofType = IfcRoofType;
+    class IfcSanitaryTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1768891740;
+      }
+    }
+    IFC42.IfcSanitaryTerminalType = IfcSanitaryTerminalType;
+    class IfcSeamCurve extends IfcSurfaceCurve {
+      constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {
+        super(Curve3D, AssociatedGeometry, MasterRepresentation);
+        this.Curve3D = Curve3D;
+        this.AssociatedGeometry = AssociatedGeometry;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 2157484638;
+      }
+    }
+    IFC42.IfcSeamCurve = IfcSeamCurve;
+    class IfcShadingDeviceType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4074543187;
+      }
+    }
+    IFC42.IfcShadingDeviceType = IfcShadingDeviceType;
+    class IfcSite extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.RefLatitude = RefLatitude;
+        this.RefLongitude = RefLongitude;
+        this.RefElevation = RefElevation;
+        this.LandTitleNumber = LandTitleNumber;
+        this.SiteAddress = SiteAddress;
+        this.type = 4097777520;
+      }
+    }
+    IFC42.IfcSite = IfcSite;
+    class IfcSlabType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2533589738;
+      }
+    }
+    IFC42.IfcSlabType = IfcSlabType;
+    class IfcSolarDeviceType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1072016465;
+      }
+    }
+    IFC42.IfcSolarDeviceType = IfcSolarDeviceType;
+    class IfcSpace extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.PredefinedType = PredefinedType;
+        this.ElevationWithFlooring = ElevationWithFlooring;
+        this.type = 3856911033;
+      }
+    }
+    IFC42.IfcSpace = IfcSpace;
+    class IfcSpaceHeaterType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1305183839;
+      }
+    }
+    IFC42.IfcSpaceHeaterType = IfcSpaceHeaterType;
+    class IfcSpaceType extends IfcSpatialStructureElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.LongName = LongName;
+        this.type = 3812236995;
+      }
+    }
+    IFC42.IfcSpaceType = IfcSpaceType;
+    class IfcStackTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3112655638;
+      }
+    }
+    IFC42.IfcStackTerminalType = IfcStackTerminalType;
+    class IfcStairFlightType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1039846685;
+      }
+    }
+    IFC42.IfcStairFlightType = IfcStairFlightType;
+    class IfcStairType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 338393293;
+      }
+    }
+    IFC42.IfcStairType = IfcStairType;
+    class IfcStructuralAction extends IfcStructuralActivity {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.type = 682877961;
+      }
+    }
+    IFC42.IfcStructuralAction = IfcStructuralAction;
+    class IfcStructuralConnection extends IfcStructuralItem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.type = 1179482911;
+      }
+    }
+    IFC42.IfcStructuralConnection = IfcStructuralConnection;
+    class IfcStructuralCurveAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.PredefinedType = PredefinedType;
+        this.type = 1004757350;
+      }
+    }
+    IFC42.IfcStructuralCurveAction = IfcStructuralCurveAction;
+    class IfcStructuralCurveConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, Axis) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.Axis = Axis;
+        this.type = 4243806635;
+      }
+    }
+    IFC42.IfcStructuralCurveConnection = IfcStructuralCurveConnection;
+    class IfcStructuralCurveMember extends IfcStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Axis = Axis;
+        this.type = 214636428;
+      }
+    }
+    IFC42.IfcStructuralCurveMember = IfcStructuralCurveMember;
+    class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Axis = Axis;
+        this.type = 2445595289;
+      }
+    }
+    IFC42.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;
+    class IfcStructuralCurveReaction extends IfcStructuralReaction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.PredefinedType = PredefinedType;
+        this.type = 2757150158;
+      }
+    }
+    IFC42.IfcStructuralCurveReaction = IfcStructuralCurveReaction;
+    class IfcStructuralLinearAction extends IfcStructuralCurveAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.PredefinedType = PredefinedType;
+        this.type = 1807405624;
+      }
+    }
+    IFC42.IfcStructuralLinearAction = IfcStructuralLinearAction;
+    class IfcStructuralLoadGroup extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.ActionType = ActionType;
+        this.ActionSource = ActionSource;
+        this.Coefficient = Coefficient;
+        this.Purpose = Purpose;
+        this.type = 1252848954;
+      }
+    }
+    IFC42.IfcStructuralLoadGroup = IfcStructuralLoadGroup;
+    class IfcStructuralPointAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.type = 2082059205;
+      }
+    }
+    IFC42.IfcStructuralPointAction = IfcStructuralPointAction;
+    class IfcStructuralPointConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.ConditionCoordinateSystem = ConditionCoordinateSystem;
+        this.type = 734778138;
+      }
+    }
+    IFC42.IfcStructuralPointConnection = IfcStructuralPointConnection;
+    class IfcStructuralPointReaction extends IfcStructuralReaction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 1235345126;
+      }
+    }
+    IFC42.IfcStructuralPointReaction = IfcStructuralPointReaction;
+    class IfcStructuralResultGroup extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheoryType = TheoryType;
+        this.ResultForLoadGroup = ResultForLoadGroup;
+        this.IsLinear = IsLinear;
+        this.type = 2986769608;
+      }
+    }
+    IFC42.IfcStructuralResultGroup = IfcStructuralResultGroup;
+    class IfcStructuralSurfaceAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.PredefinedType = PredefinedType;
+        this.type = 3657597509;
+      }
+    }
+    IFC42.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction;
+    class IfcStructuralSurfaceConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.type = 1975003073;
+      }
+    }
+    IFC42.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;
+    class IfcSubContractResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 148013059;
+      }
+    }
+    IFC42.IfcSubContractResource = IfcSubContractResource;
+    class IfcSurfaceFeature extends IfcFeatureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3101698114;
+      }
+    }
+    IFC42.IfcSurfaceFeature = IfcSurfaceFeature;
+    class IfcSwitchingDeviceType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2315554128;
+      }
+    }
+    IFC42.IfcSwitchingDeviceType = IfcSwitchingDeviceType;
+    class IfcSystem extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2254336722;
+      }
+    }
+    IFC42.IfcSystem = IfcSystem;
+    class IfcSystemFurnitureElement extends IfcFurnishingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 413509423;
+      }
+    }
+    IFC42.IfcSystemFurnitureElement = IfcSystemFurnitureElement;
+    class IfcTankType extends IfcFlowStorageDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 5716631;
+      }
+    }
+    IFC42.IfcTankType = IfcTankType;
+    class IfcTendon extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.TensionForce = TensionForce;
+        this.PreStress = PreStress;
+        this.FrictionCoefficient = FrictionCoefficient;
+        this.AnchorageSlip = AnchorageSlip;
+        this.MinCurvatureRadius = MinCurvatureRadius;
+        this.type = 3824725483;
+      }
+    }
+    IFC42.IfcTendon = IfcTendon;
+    class IfcTendonAnchor extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.PredefinedType = PredefinedType;
+        this.type = 2347447852;
+      }
+    }
+    IFC42.IfcTendonAnchor = IfcTendonAnchor;
+    class IfcTendonAnchorType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3081323446;
+      }
+    }
+    IFC42.IfcTendonAnchorType = IfcTendonAnchorType;
+    class IfcTendonType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.SheathDiameter = SheathDiameter;
+        this.type = 2415094496;
+      }
+    }
+    IFC42.IfcTendonType = IfcTendonType;
+    class IfcTransformerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1692211062;
+      }
+    }
+    IFC42.IfcTransformerType = IfcTransformerType;
+    class IfcTransportElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1620046519;
+      }
+    }
+    IFC42.IfcTransportElement = IfcTransportElement;
+    class IfcTrimmedCurve extends IfcBoundedCurve {
+      constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.Trim1 = Trim1;
+        this.Trim2 = Trim2;
+        this.SenseAgreement = SenseAgreement;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 3593883385;
+      }
+    }
+    IFC42.IfcTrimmedCurve = IfcTrimmedCurve;
+    class IfcTubeBundleType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1600972822;
+      }
+    }
+    IFC42.IfcTubeBundleType = IfcTubeBundleType;
+    class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1911125066;
+      }
+    }
+    IFC42.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;
+    class IfcValveType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 728799441;
+      }
+    }
+    IFC42.IfcValveType = IfcValveType;
+    class IfcVibrationIsolator extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2391383451;
+      }
+    }
+    IFC42.IfcVibrationIsolator = IfcVibrationIsolator;
+    class IfcVibrationIsolatorType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3313531582;
+      }
+    }
+    IFC42.IfcVibrationIsolatorType = IfcVibrationIsolatorType;
+    class IfcVirtualElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2769231204;
+      }
+    }
+    IFC42.IfcVirtualElement = IfcVirtualElement;
+    class IfcVoidingFeature extends IfcFeatureElementSubtraction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 926996030;
+      }
+    }
+    IFC42.IfcVoidingFeature = IfcVoidingFeature;
+    class IfcWallType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1898987631;
+      }
+    }
+    IFC42.IfcWallType = IfcWallType;
+    class IfcWasteTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1133259667;
+      }
+    }
+    IFC42.IfcWasteTerminalType = IfcWasteTerminalType;
+    class IfcWindowType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.PartitioningType = PartitioningType;
+        this.ParameterTakesPrecedence = ParameterTakesPrecedence;
+        this.UserDefinedPartitioningType = UserDefinedPartitioningType;
+        this.type = 4009809668;
+      }
+    }
+    IFC42.IfcWindowType = IfcWindowType;
+    class IfcWorkCalendar extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.WorkingTimes = WorkingTimes;
+        this.ExceptionTimes = ExceptionTimes;
+        this.PredefinedType = PredefinedType;
+        this.type = 4088093105;
+      }
+    }
+    IFC42.IfcWorkCalendar = IfcWorkCalendar;
+    class IfcWorkControl extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.type = 1028945134;
+      }
+    }
+    IFC42.IfcWorkControl = IfcWorkControl;
+    class IfcWorkPlan extends IfcWorkControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.PredefinedType = PredefinedType;
+        this.type = 4218914973;
+      }
+    }
+    IFC42.IfcWorkPlan = IfcWorkPlan;
+    class IfcWorkSchedule extends IfcWorkControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.PredefinedType = PredefinedType;
+        this.type = 3342526732;
+      }
+    }
+    IFC42.IfcWorkSchedule = IfcWorkSchedule;
+    class IfcZone extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.type = 1033361043;
+      }
+    }
+    IFC42.IfcZone = IfcZone;
+    class IfcActionRequest extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.LongDescription = LongDescription;
+        this.type = 3821786052;
+      }
+    }
+    IFC42.IfcActionRequest = IfcActionRequest;
+    class IfcAirTerminalBoxType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1411407467;
+      }
+    }
+    IFC42.IfcAirTerminalBoxType = IfcAirTerminalBoxType;
+    class IfcAirTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3352864051;
+      }
+    }
+    IFC42.IfcAirTerminalType = IfcAirTerminalType;
+    class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1871374353;
+      }
+    }
+    IFC42.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;
+    class IfcAsset extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.OriginalValue = OriginalValue;
+        this.CurrentValue = CurrentValue;
+        this.TotalReplacementCost = TotalReplacementCost;
+        this.Owner = Owner;
+        this.User = User;
+        this.ResponsiblePerson = ResponsiblePerson;
+        this.IncorporationDate = IncorporationDate;
+        this.DepreciatedValue = DepreciatedValue;
+        this.type = 3460190687;
+      }
+    }
+    IFC42.IfcAsset = IfcAsset;
+    class IfcAudioVisualApplianceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1532957894;
+      }
+    }
+    IFC42.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType;
+    class IfcBSplineCurve extends IfcBoundedCurve {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {
+        super();
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 1967976161;
+      }
+    }
+    IFC42.IfcBSplineCurve = IfcBSplineCurve;
+    class IfcBSplineCurveWithKnots extends IfcBSplineCurve {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) {
+        super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.KnotMultiplicities = KnotMultiplicities;
+        this.Knots = Knots;
+        this.KnotSpec = KnotSpec;
+        this.type = 2461110595;
+      }
+    }
+    IFC42.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots;
+    class IfcBeamType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 819618141;
+      }
+    }
+    IFC42.IfcBeamType = IfcBeamType;
+    class IfcBoilerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 231477066;
+      }
+    }
+    IFC42.IfcBoilerType = IfcBoilerType;
+    class IfcBoundaryCurve extends IfcCompositeCurveOnSurface {
+      constructor(Segments, SelfIntersect) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 1136057603;
+      }
+    }
+    IFC42.IfcBoundaryCurve = IfcBoundaryCurve;
+    class IfcBuildingElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3299480353;
+      }
+    }
+    IFC42.IfcBuildingElement = IfcBuildingElement;
+    class IfcBuildingElementPart extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2979338954;
+      }
+    }
+    IFC42.IfcBuildingElementPart = IfcBuildingElementPart;
+    class IfcBuildingElementPartType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 39481116;
+      }
+    }
+    IFC42.IfcBuildingElementPartType = IfcBuildingElementPartType;
+    class IfcBuildingElementProxy extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1095909175;
+      }
+    }
+    IFC42.IfcBuildingElementProxy = IfcBuildingElementProxy;
+    class IfcBuildingElementProxyType extends IfcBuildingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1909888760;
+      }
+    }
+    IFC42.IfcBuildingElementProxyType = IfcBuildingElementProxyType;
+    class IfcBuildingSystem extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.LongName = LongName;
+        this.type = 1177604601;
+      }
+    }
+    IFC42.IfcBuildingSystem = IfcBuildingSystem;
+    class IfcBurnerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2188180465;
+      }
+    }
+    IFC42.IfcBurnerType = IfcBurnerType;
+    class IfcCableCarrierFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 395041908;
+      }
+    }
+    IFC42.IfcCableCarrierFittingType = IfcCableCarrierFittingType;
+    class IfcCableCarrierSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3293546465;
+      }
+    }
+    IFC42.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;
+    class IfcCableFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2674252688;
+      }
+    }
+    IFC42.IfcCableFittingType = IfcCableFittingType;
+    class IfcCableSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1285652485;
+      }
+    }
+    IFC42.IfcCableSegmentType = IfcCableSegmentType;
+    class IfcChillerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2951183804;
+      }
+    }
+    IFC42.IfcChillerType = IfcChillerType;
+    class IfcChimney extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3296154744;
+      }
+    }
+    IFC42.IfcChimney = IfcChimney;
+    class IfcCircle extends IfcConic {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 2611217952;
+      }
+    }
+    IFC42.IfcCircle = IfcCircle;
+    class IfcCivilElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1677625105;
+      }
+    }
+    IFC42.IfcCivilElement = IfcCivilElement;
+    class IfcCoilType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2301859152;
+      }
+    }
+    IFC42.IfcCoilType = IfcCoilType;
+    class IfcColumn extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 843113511;
+      }
+    }
+    IFC42.IfcColumn = IfcColumn;
+    class IfcColumnStandardCase extends IfcColumn {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 905975707;
+      }
+    }
+    IFC42.IfcColumnStandardCase = IfcColumnStandardCase;
+    class IfcCommunicationsApplianceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 400855858;
+      }
+    }
+    IFC42.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType;
+    class IfcCompressorType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3850581409;
+      }
+    }
+    IFC42.IfcCompressorType = IfcCompressorType;
+    class IfcCondenserType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2816379211;
+      }
+    }
+    IFC42.IfcCondenserType = IfcCondenserType;
+    class IfcConstructionEquipmentResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 3898045240;
+      }
+    }
+    IFC42.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;
+    class IfcConstructionMaterialResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 1060000209;
+      }
+    }
+    IFC42.IfcConstructionMaterialResource = IfcConstructionMaterialResource;
+    class IfcConstructionProductResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 488727124;
+      }
+    }
+    IFC42.IfcConstructionProductResource = IfcConstructionProductResource;
+    class IfcCooledBeamType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 335055490;
+      }
+    }
+    IFC42.IfcCooledBeamType = IfcCooledBeamType;
+    class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2954562838;
+      }
+    }
+    IFC42.IfcCoolingTowerType = IfcCoolingTowerType;
+    class IfcCovering extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1973544240;
+      }
+    }
+    IFC42.IfcCovering = IfcCovering;
+    class IfcCurtainWall extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3495092785;
+      }
+    }
+    IFC42.IfcCurtainWall = IfcCurtainWall;
+    class IfcDamperType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3961806047;
+      }
+    }
+    IFC42.IfcDamperType = IfcDamperType;
+    class IfcDiscreteAccessory extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1335981549;
+      }
+    }
+    IFC42.IfcDiscreteAccessory = IfcDiscreteAccessory;
+    class IfcDiscreteAccessoryType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2635815018;
+      }
+    }
+    IFC42.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;
+    class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1599208980;
+      }
+    }
+    IFC42.IfcDistributionChamberElementType = IfcDistributionChamberElementType;
+    class IfcDistributionControlElementType extends IfcDistributionElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2063403501;
+      }
+    }
+    IFC42.IfcDistributionControlElementType = IfcDistributionControlElementType;
+    class IfcDistributionElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1945004755;
+      }
+    }
+    IFC42.IfcDistributionElement = IfcDistributionElement;
+    class IfcDistributionFlowElement extends IfcDistributionElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3040386961;
+      }
+    }
+    IFC42.IfcDistributionFlowElement = IfcDistributionFlowElement;
+    class IfcDistributionPort extends IfcPort {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.FlowDirection = FlowDirection;
+        this.PredefinedType = PredefinedType;
+        this.SystemType = SystemType;
+        this.type = 3041715199;
+      }
+    }
+    IFC42.IfcDistributionPort = IfcDistributionPort;
+    class IfcDistributionSystem extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.PredefinedType = PredefinedType;
+        this.type = 3205830791;
+      }
+    }
+    IFC42.IfcDistributionSystem = IfcDistributionSystem;
+    class IfcDoor extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OverallHeight = OverallHeight;
+        this.OverallWidth = OverallWidth;
+        this.PredefinedType = PredefinedType;
+        this.OperationType = OperationType;
+        this.UserDefinedOperationType = UserDefinedOperationType;
+        this.type = 395920057;
+      }
+    }
+    IFC42.IfcDoor = IfcDoor;
+    class IfcDoorStandardCase extends IfcDoor {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OverallHeight = OverallHeight;
+        this.OverallWidth = OverallWidth;
+        this.PredefinedType = PredefinedType;
+        this.OperationType = OperationType;
+        this.UserDefinedOperationType = UserDefinedOperationType;
+        this.type = 3242481149;
+      }
+    }
+    IFC42.IfcDoorStandardCase = IfcDoorStandardCase;
+    class IfcDuctFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 869906466;
+      }
+    }
+    IFC42.IfcDuctFittingType = IfcDuctFittingType;
+    class IfcDuctSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3760055223;
+      }
+    }
+    IFC42.IfcDuctSegmentType = IfcDuctSegmentType;
+    class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2030761528;
+      }
+    }
+    IFC42.IfcDuctSilencerType = IfcDuctSilencerType;
+    class IfcElectricApplianceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 663422040;
+      }
+    }
+    IFC42.IfcElectricApplianceType = IfcElectricApplianceType;
+    class IfcElectricDistributionBoardType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2417008758;
+      }
+    }
+    IFC42.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType;
+    class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3277789161;
+      }
+    }
+    IFC42.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;
+    class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1534661035;
+      }
+    }
+    IFC42.IfcElectricGeneratorType = IfcElectricGeneratorType;
+    class IfcElectricMotorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1217240411;
+      }
+    }
+    IFC42.IfcElectricMotorType = IfcElectricMotorType;
+    class IfcElectricTimeControlType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 712377611;
+      }
+    }
+    IFC42.IfcElectricTimeControlType = IfcElectricTimeControlType;
+    class IfcEnergyConversionDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1658829314;
+      }
+    }
+    IFC42.IfcEnergyConversionDevice = IfcEnergyConversionDevice;
+    class IfcEngine extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2814081492;
+      }
+    }
+    IFC42.IfcEngine = IfcEngine;
+    class IfcEvaporativeCooler extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3747195512;
+      }
+    }
+    IFC42.IfcEvaporativeCooler = IfcEvaporativeCooler;
+    class IfcEvaporator extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 484807127;
+      }
+    }
+    IFC42.IfcEvaporator = IfcEvaporator;
+    class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.PredefinedType = PredefinedType;
+        this.type = 1209101575;
+      }
+    }
+    IFC42.IfcExternalSpatialElement = IfcExternalSpatialElement;
+    class IfcFanType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 346874300;
+      }
+    }
+    IFC42.IfcFanType = IfcFanType;
+    class IfcFilterType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1810631287;
+      }
+    }
+    IFC42.IfcFilterType = IfcFilterType;
+    class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4222183408;
+      }
+    }
+    IFC42.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;
+    class IfcFlowController extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2058353004;
+      }
+    }
+    IFC42.IfcFlowController = IfcFlowController;
+    class IfcFlowFitting extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 4278956645;
+      }
+    }
+    IFC42.IfcFlowFitting = IfcFlowFitting;
+    class IfcFlowInstrumentType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4037862832;
+      }
+    }
+    IFC42.IfcFlowInstrumentType = IfcFlowInstrumentType;
+    class IfcFlowMeter extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2188021234;
+      }
+    }
+    IFC42.IfcFlowMeter = IfcFlowMeter;
+    class IfcFlowMovingDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3132237377;
+      }
+    }
+    IFC42.IfcFlowMovingDevice = IfcFlowMovingDevice;
+    class IfcFlowSegment extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 987401354;
+      }
+    }
+    IFC42.IfcFlowSegment = IfcFlowSegment;
+    class IfcFlowStorageDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 707683696;
+      }
+    }
+    IFC42.IfcFlowStorageDevice = IfcFlowStorageDevice;
+    class IfcFlowTerminal extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2223149337;
+      }
+    }
+    IFC42.IfcFlowTerminal = IfcFlowTerminal;
+    class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3508470533;
+      }
+    }
+    IFC42.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;
+    class IfcFooting extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 900683007;
+      }
+    }
+    IFC42.IfcFooting = IfcFooting;
+    class IfcHeatExchanger extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3319311131;
+      }
+    }
+    IFC42.IfcHeatExchanger = IfcHeatExchanger;
+    class IfcHumidifier extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2068733104;
+      }
+    }
+    IFC42.IfcHumidifier = IfcHumidifier;
+    class IfcInterceptor extends IfcFlowTreatmentDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4175244083;
+      }
+    }
+    IFC42.IfcInterceptor = IfcInterceptor;
+    class IfcJunctionBox extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2176052936;
+      }
+    }
+    IFC42.IfcJunctionBox = IfcJunctionBox;
+    class IfcLamp extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 76236018;
+      }
+    }
+    IFC42.IfcLamp = IfcLamp;
+    class IfcLightFixture extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 629592764;
+      }
+    }
+    IFC42.IfcLightFixture = IfcLightFixture;
+    class IfcMedicalDevice extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1437502449;
+      }
+    }
+    IFC42.IfcMedicalDevice = IfcMedicalDevice;
+    class IfcMember extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1073191201;
+      }
+    }
+    IFC42.IfcMember = IfcMember;
+    class IfcMemberStandardCase extends IfcMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1911478936;
+      }
+    }
+    IFC42.IfcMemberStandardCase = IfcMemberStandardCase;
+    class IfcMotorConnection extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2474470126;
+      }
+    }
+    IFC42.IfcMotorConnection = IfcMotorConnection;
+    class IfcOuterBoundaryCurve extends IfcBoundaryCurve {
+      constructor(Segments, SelfIntersect) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 144952367;
+      }
+    }
+    IFC42.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve;
+    class IfcOutlet extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3694346114;
+      }
+    }
+    IFC42.IfcOutlet = IfcOutlet;
+    class IfcPile extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.ConstructionType = ConstructionType;
+        this.type = 1687234759;
+      }
+    }
+    IFC42.IfcPile = IfcPile;
+    class IfcPipeFitting extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 310824031;
+      }
+    }
+    IFC42.IfcPipeFitting = IfcPipeFitting;
+    class IfcPipeSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3612865200;
+      }
+    }
+    IFC42.IfcPipeSegment = IfcPipeSegment;
+    class IfcPlate extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3171933400;
+      }
+    }
+    IFC42.IfcPlate = IfcPlate;
+    class IfcPlateStandardCase extends IfcPlate {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1156407060;
+      }
+    }
+    IFC42.IfcPlateStandardCase = IfcPlateStandardCase;
+    class IfcProtectiveDevice extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 738039164;
+      }
+    }
+    IFC42.IfcProtectiveDevice = IfcProtectiveDevice;
+    class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 655969474;
+      }
+    }
+    IFC42.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType;
+    class IfcPump extends IfcFlowMovingDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 90941305;
+      }
+    }
+    IFC42.IfcPump = IfcPump;
+    class IfcRailing extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2262370178;
+      }
+    }
+    IFC42.IfcRailing = IfcRailing;
+    class IfcRamp extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3024970846;
+      }
+    }
+    IFC42.IfcRamp = IfcRamp;
+    class IfcRampFlight extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3283111854;
+      }
+    }
+    IFC42.IfcRampFlight = IfcRampFlight;
+    class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) {
+        super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec);
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.KnotMultiplicities = KnotMultiplicities;
+        this.Knots = Knots;
+        this.KnotSpec = KnotSpec;
+        this.WeightsData = WeightsData;
+        this.type = 1232101972;
+      }
+    }
+    IFC42.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots;
+    class IfcReinforcingBar extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.BarLength = BarLength;
+        this.PredefinedType = PredefinedType;
+        this.BarSurface = BarSurface;
+        this.type = 979691226;
+      }
+    }
+    IFC42.IfcReinforcingBar = IfcReinforcingBar;
+    class IfcReinforcingBarType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.BarLength = BarLength;
+        this.BarSurface = BarSurface;
+        this.BendingShapeCode = BendingShapeCode;
+        this.BendingParameters = BendingParameters;
+        this.type = 2572171363;
+      }
+    }
+    IFC42.IfcReinforcingBarType = IfcReinforcingBarType;
+    class IfcRoof extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2016517767;
+      }
+    }
+    IFC42.IfcRoof = IfcRoof;
+    class IfcSanitaryTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3053780830;
+      }
+    }
+    IFC42.IfcSanitaryTerminal = IfcSanitaryTerminal;
+    class IfcSensorType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1783015770;
+      }
+    }
+    IFC42.IfcSensorType = IfcSensorType;
+    class IfcShadingDevice extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1329646415;
+      }
+    }
+    IFC42.IfcShadingDevice = IfcShadingDevice;
+    class IfcSlab extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1529196076;
+      }
+    }
+    IFC42.IfcSlab = IfcSlab;
+    class IfcSlabElementedCase extends IfcSlab {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3127900445;
+      }
+    }
+    IFC42.IfcSlabElementedCase = IfcSlabElementedCase;
+    class IfcSlabStandardCase extends IfcSlab {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3027962421;
+      }
+    }
+    IFC42.IfcSlabStandardCase = IfcSlabStandardCase;
+    class IfcSolarDevice extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3420628829;
+      }
+    }
+    IFC42.IfcSolarDevice = IfcSolarDevice;
+    class IfcSpaceHeater extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1999602285;
+      }
+    }
+    IFC42.IfcSpaceHeater = IfcSpaceHeater;
+    class IfcStackTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1404847402;
+      }
+    }
+    IFC42.IfcStackTerminal = IfcStackTerminal;
+    class IfcStair extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 331165859;
+      }
+    }
+    IFC42.IfcStair = IfcStair;
+    class IfcStairFlight extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.NumberOfRisers = NumberOfRisers;
+        this.NumberOfTreads = NumberOfTreads;
+        this.RiserHeight = RiserHeight;
+        this.TreadLength = TreadLength;
+        this.PredefinedType = PredefinedType;
+        this.type = 4252922144;
+      }
+    }
+    IFC42.IfcStairFlight = IfcStairFlight;
+    class IfcStructuralAnalysisModel extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.OrientationOf2DPlane = OrientationOf2DPlane;
+        this.LoadedBy = LoadedBy;
+        this.HasResults = HasResults;
+        this.SharedPlacement = SharedPlacement;
+        this.type = 2515109513;
+      }
+    }
+    IFC42.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;
+    class IfcStructuralLoadCase extends IfcStructuralLoadGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.ActionType = ActionType;
+        this.ActionSource = ActionSource;
+        this.Coefficient = Coefficient;
+        this.Purpose = Purpose;
+        this.SelfWeightCoefficients = SelfWeightCoefficients;
+        this.type = 385403989;
+      }
+    }
+    IFC42.IfcStructuralLoadCase = IfcStructuralLoadCase;
+    class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.PredefinedType = PredefinedType;
+        this.type = 1621171031;
+      }
+    }
+    IFC42.IfcStructuralPlanarAction = IfcStructuralPlanarAction;
+    class IfcSwitchingDevice extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1162798199;
+      }
+    }
+    IFC42.IfcSwitchingDevice = IfcSwitchingDevice;
+    class IfcTank extends IfcFlowStorageDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 812556717;
+      }
+    }
+    IFC42.IfcTank = IfcTank;
+    class IfcTransformer extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3825984169;
+      }
+    }
+    IFC42.IfcTransformer = IfcTransformer;
+    class IfcTubeBundle extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3026737570;
+      }
+    }
+    IFC42.IfcTubeBundle = IfcTubeBundle;
+    class IfcUnitaryControlElementType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3179687236;
+      }
+    }
+    IFC42.IfcUnitaryControlElementType = IfcUnitaryControlElementType;
+    class IfcUnitaryEquipment extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4292641817;
+      }
+    }
+    IFC42.IfcUnitaryEquipment = IfcUnitaryEquipment;
+    class IfcValve extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4207607924;
+      }
+    }
+    IFC42.IfcValve = IfcValve;
+    class IfcWall extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2391406946;
+      }
+    }
+    IFC42.IfcWall = IfcWall;
+    class IfcWallElementedCase extends IfcWall {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4156078855;
+      }
+    }
+    IFC42.IfcWallElementedCase = IfcWallElementedCase;
+    class IfcWallStandardCase extends IfcWall {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3512223829;
+      }
+    }
+    IFC42.IfcWallStandardCase = IfcWallStandardCase;
+    class IfcWasteTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4237592921;
+      }
+    }
+    IFC42.IfcWasteTerminal = IfcWasteTerminal;
+    class IfcWindow extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OverallHeight = OverallHeight;
+        this.OverallWidth = OverallWidth;
+        this.PredefinedType = PredefinedType;
+        this.PartitioningType = PartitioningType;
+        this.UserDefinedPartitioningType = UserDefinedPartitioningType;
+        this.type = 3304561284;
+      }
+    }
+    IFC42.IfcWindow = IfcWindow;
+    class IfcWindowStandardCase extends IfcWindow {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OverallHeight = OverallHeight;
+        this.OverallWidth = OverallWidth;
+        this.PredefinedType = PredefinedType;
+        this.PartitioningType = PartitioningType;
+        this.UserDefinedPartitioningType = UserDefinedPartitioningType;
+        this.type = 486154966;
+      }
+    }
+    IFC42.IfcWindowStandardCase = IfcWindowStandardCase;
+    class IfcActuatorType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2874132201;
+      }
+    }
+    IFC42.IfcActuatorType = IfcActuatorType;
+    class IfcAirTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1634111441;
+      }
+    }
+    IFC42.IfcAirTerminal = IfcAirTerminal;
+    class IfcAirTerminalBox extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 177149247;
+      }
+    }
+    IFC42.IfcAirTerminalBox = IfcAirTerminalBox;
+    class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2056796094;
+      }
+    }
+    IFC42.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery;
+    class IfcAlarmType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3001207471;
+      }
+    }
+    IFC42.IfcAlarmType = IfcAlarmType;
+    class IfcAudioVisualAppliance extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 277319702;
+      }
+    }
+    IFC42.IfcAudioVisualAppliance = IfcAudioVisualAppliance;
+    class IfcBeam extends IfcBuildingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 753842376;
+      }
+    }
+    IFC42.IfcBeam = IfcBeam;
+    class IfcBeamStandardCase extends IfcBeam {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2906023776;
+      }
+    }
+    IFC42.IfcBeamStandardCase = IfcBeamStandardCase;
+    class IfcBoiler extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 32344328;
+      }
+    }
+    IFC42.IfcBoiler = IfcBoiler;
+    class IfcBurner extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2938176219;
+      }
+    }
+    IFC42.IfcBurner = IfcBurner;
+    class IfcCableCarrierFitting extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 635142910;
+      }
+    }
+    IFC42.IfcCableCarrierFitting = IfcCableCarrierFitting;
+    class IfcCableCarrierSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3758799889;
+      }
+    }
+    IFC42.IfcCableCarrierSegment = IfcCableCarrierSegment;
+    class IfcCableFitting extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1051757585;
+      }
+    }
+    IFC42.IfcCableFitting = IfcCableFitting;
+    class IfcCableSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4217484030;
+      }
+    }
+    IFC42.IfcCableSegment = IfcCableSegment;
+    class IfcChiller extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3902619387;
+      }
+    }
+    IFC42.IfcChiller = IfcChiller;
+    class IfcCoil extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 639361253;
+      }
+    }
+    IFC42.IfcCoil = IfcCoil;
+    class IfcCommunicationsAppliance extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3221913625;
+      }
+    }
+    IFC42.IfcCommunicationsAppliance = IfcCommunicationsAppliance;
+    class IfcCompressor extends IfcFlowMovingDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3571504051;
+      }
+    }
+    IFC42.IfcCompressor = IfcCompressor;
+    class IfcCondenser extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2272882330;
+      }
+    }
+    IFC42.IfcCondenser = IfcCondenser;
+    class IfcControllerType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 578613899;
+      }
+    }
+    IFC42.IfcControllerType = IfcControllerType;
+    class IfcCooledBeam extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4136498852;
+      }
+    }
+    IFC42.IfcCooledBeam = IfcCooledBeam;
+    class IfcCoolingTower extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3640358203;
+      }
+    }
+    IFC42.IfcCoolingTower = IfcCoolingTower;
+    class IfcDamper extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4074379575;
+      }
+    }
+    IFC42.IfcDamper = IfcDamper;
+    class IfcDistributionChamberElement extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1052013943;
+      }
+    }
+    IFC42.IfcDistributionChamberElement = IfcDistributionChamberElement;
+    class IfcDistributionCircuit extends IfcDistributionSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.PredefinedType = PredefinedType;
+        this.type = 562808652;
+      }
+    }
+    IFC42.IfcDistributionCircuit = IfcDistributionCircuit;
+    class IfcDistributionControlElement extends IfcDistributionElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1062813311;
+      }
+    }
+    IFC42.IfcDistributionControlElement = IfcDistributionControlElement;
+    class IfcDuctFitting extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 342316401;
+      }
+    }
+    IFC42.IfcDuctFitting = IfcDuctFitting;
+    class IfcDuctSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3518393246;
+      }
+    }
+    IFC42.IfcDuctSegment = IfcDuctSegment;
+    class IfcDuctSilencer extends IfcFlowTreatmentDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1360408905;
+      }
+    }
+    IFC42.IfcDuctSilencer = IfcDuctSilencer;
+    class IfcElectricAppliance extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1904799276;
+      }
+    }
+    IFC42.IfcElectricAppliance = IfcElectricAppliance;
+    class IfcElectricDistributionBoard extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 862014818;
+      }
+    }
+    IFC42.IfcElectricDistributionBoard = IfcElectricDistributionBoard;
+    class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3310460725;
+      }
+    }
+    IFC42.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice;
+    class IfcElectricGenerator extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 264262732;
+      }
+    }
+    IFC42.IfcElectricGenerator = IfcElectricGenerator;
+    class IfcElectricMotor extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 402227799;
+      }
+    }
+    IFC42.IfcElectricMotor = IfcElectricMotor;
+    class IfcElectricTimeControl extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1003880860;
+      }
+    }
+    IFC42.IfcElectricTimeControl = IfcElectricTimeControl;
+    class IfcFan extends IfcFlowMovingDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3415622556;
+      }
+    }
+    IFC42.IfcFan = IfcFan;
+    class IfcFilter extends IfcFlowTreatmentDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 819412036;
+      }
+    }
+    IFC42.IfcFilter = IfcFilter;
+    class IfcFireSuppressionTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1426591983;
+      }
+    }
+    IFC42.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal;
+    class IfcFlowInstrument extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 182646315;
+      }
+    }
+    IFC42.IfcFlowInstrument = IfcFlowInstrument;
+    class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2295281155;
+      }
+    }
+    IFC42.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit;
+    class IfcSensor extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4086658281;
+      }
+    }
+    IFC42.IfcSensor = IfcSensor;
+    class IfcUnitaryControlElement extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 630975310;
+      }
+    }
+    IFC42.IfcUnitaryControlElement = IfcUnitaryControlElement;
+    class IfcActuator extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4288193352;
+      }
+    }
+    IFC42.IfcActuator = IfcActuator;
+    class IfcAlarm extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3087945054;
+      }
+    }
+    IFC42.IfcAlarm = IfcAlarm;
+    class IfcController extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 25142252;
+      }
+    }
+    IFC42.IfcController = IfcController;
+  })(IFC4 || (IFC4 = {}));
+  SchemaNames[3] = ["IFC4X3", "IFC4X3_RC3", "IFC4X3_RC1", "IFC4X3_RC2"];
+  FromRawLineData[3] = {
+    3630933823: (v) => new IFC4X3.IfcActorRole(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value)),
+    618182010: (v) => new IFC4X3.IfcAddress(v[0], !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),
+    2879124712: (v) => new IFC4X3.IfcAlignmentParameterSegment(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value)),
+    3633395639: (v) => new IFC4X3.IfcAlignmentVerticalSegment(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcRatioMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcRatioMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLengthMeasure(!v[7] ? null : v[7].value), v[8]),
+    639542469: (v) => new IFC4X3.IfcApplication(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value)),
+    411424972: (v) => {
+      var _a;
+      return new IFC4X3.IfcAppliedValue(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    130549933: (v) => new IFC4X3.IfcApproval(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    4037036970: (v) => new IFC4X3.IfcBoundaryCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    1560379544: (v) => new IFC4X3.IfcBoundaryEdgeCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])),
+    3367102660: (v) => new IFC4X3.IfcBoundaryFaceCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3])),
+    1387855156: (v) => new IFC4X3.IfcBoundaryNodeCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6])),
+    2069777674: (v) => new IFC4X3.IfcBoundaryNodeConditionWarping(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : TypeInitialiser(3, v[1]), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : TypeInitialiser(3, v[5]), !v[6] ? null : TypeInitialiser(3, v[6]), !v[7] ? null : TypeInitialiser(3, v[7])),
+    2859738748: (_) => new IFC4X3.IfcConnectionGeometry(),
+    2614616156: (v) => new IFC4X3.IfcConnectionPointGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    2732653382: (v) => new IFC4X3.IfcConnectionSurfaceGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    775493141: (v) => new IFC4X3.IfcConnectionVolumeGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    1959218052: (v) => new IFC4X3.IfcConstraint(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value)),
+    1785450214: (v) => new IFC4X3.IfcCoordinateOperation(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1466758467: (v) => new IFC4X3.IfcCoordinateReferenceSystem(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value)),
+    602808272: (v) => {
+      var _a;
+      return new IFC4X3.IfcCostValue(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDate(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1765591967: (v) => {
+      var _a;
+      return new IFC4X3.IfcDerivedUnit(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value));
+    },
+    1045800335: (v) => new IFC4X3.IfcDerivedUnitElement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : v[1].value),
+    2949456006: (v) => new IFC4X3.IfcDimensionalExponents(!v[0] ? null : v[0].value, !v[1] ? null : v[1].value, !v[2] ? null : v[2].value, !v[3] ? null : v[3].value, !v[4] ? null : v[4].value, !v[5] ? null : v[5].value, !v[6] ? null : v[6].value),
+    4294318154: (_) => new IFC4X3.IfcExternalInformation(),
+    3200245327: (v) => new IFC4X3.IfcExternalReference(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),
+    2242383968: (v) => new IFC4X3.IfcExternallyDefinedHatchStyle(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),
+    1040185647: (v) => new IFC4X3.IfcExternallyDefinedSurfaceStyle(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),
+    3548104201: (v) => new IFC4X3.IfcExternallyDefinedTextFont(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),
+    852622518: (v) => new IFC4X3.IfcGridAxis(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value)),
+    3020489413: (v) => {
+      var _a;
+      return new IFC4X3.IfcIrregularTimeSeriesValue(new IFC4X3.IfcDateTime(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []);
+    },
+    2655187982: (v) => new IFC4X3.IfcLibraryInformation(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcURIReference(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcText(!v[5] ? null : v[5].value)),
+    3452421091: (v) => new IFC4X3.IfcLibraryReference(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLanguageId(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),
+    4162380809: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcLightDistributionData(new IFC4X3.IfcPlaneAngleMeasure(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPlaneAngleMeasure(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLuminousIntensityDistributionMeasure(p.value) : null)) || []);
+    },
+    1566485204: (v) => {
+      var _a;
+      return new IFC4X3.IfcLightIntensityDistribution(v[0], ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3057273783: (v) => new IFC4X3.IfcMapConversion(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcReal(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcReal(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcReal(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcReal(!v[9] ? null : v[9].value)),
+    1847130766: (v) => {
+      var _a;
+      return new IFC4X3.IfcMaterialClassificationRelationship(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));
+    },
+    760658860: (_) => new IFC4X3.IfcMaterialDefinition(),
+    248100487: (v) => new IFC4X3.IfcMaterialLayer(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcInteger(!v[6] ? null : v[6].value)),
+    3303938423: (v) => {
+      var _a;
+      return new IFC4X3.IfcMaterialLayerSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value));
+    },
+    1847252529: (v) => new IFC4X3.IfcMaterialLayerWithOffsets(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLogical(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcInteger(!v[6] ? null : v[6].value), v[7], new IFC4X3.IfcLengthMeasure(!v[8] ? null : v[8].value)),
+    2199411900: (v) => {
+      var _a;
+      return new IFC4X3.IfcMaterialList(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2235152071: (v) => new IFC4X3.IfcMaterialProfile(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value)),
+    164193824: (v) => {
+      var _a;
+      return new IFC4X3.IfcMaterialProfileSet(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    552965576: (v) => new IFC4X3.IfcMaterialProfileWithOffsets(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), new IFC4X3.IfcLengthMeasure(!v[6] ? null : v[6].value)),
+    1507914824: (_) => new IFC4X3.IfcMaterialUsageDefinition(),
+    2597039031: (v) => new IFC4X3.IfcMeasureWithUnit(TypeInitialiser(3, v[0]), new Handle(!v[1] ? null : v[1].value)),
+    3368373690: (v) => new IFC4X3.IfcMetric(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),
+    2706619895: (v) => new IFC4X3.IfcMonetaryUnit(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    1918398963: (v) => new IFC4X3.IfcNamedUnit(new Handle(!v[0] ? null : v[0].value), v[1]),
+    3701648758: (v) => new IFC4X3.IfcObjectPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value)),
+    2251480897: (v) => {
+      var _a;
+      return new IFC4X3.IfcObjective(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[8], v[9], !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value));
+    },
+    4251960020: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcOrganization(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1207048766: (v) => new IFC4X3.IfcOwnerHistory(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], v[3], !v[4] ? null : new IFC4X3.IfcTimeStamp(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4X3.IfcTimeStamp(!v[7] ? null : v[7].value)),
+    2077209135: (v) => {
+      var _a, _b, _c, _d, _e;
+      return new IFC4X3.IfcPerson(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[6] ? null : ((_d = v[6]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_e = v[7]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    101040310: (v) => {
+      var _a;
+      return new IFC4X3.IfcPersonAndOrganization(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2483315170: (v) => new IFC4X3.IfcPhysicalQuantity(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value)),
+    2226359599: (v) => new IFC4X3.IfcPhysicalSimpleQuantity(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    3355820592: (v) => {
+      var _a;
+      return new IFC4X3.IfcPostalAddress(v[0], !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcLabel(!v[9] ? null : v[9].value));
+    },
+    677532197: (_) => new IFC4X3.IfcPresentationItem(),
+    2022622350: (v) => {
+      var _a;
+      return new IFC4X3.IfcPresentationLayerAssignment(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value));
+    },
+    1304840413: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPresentationLayerWithStyle(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value), new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3.IfcLogical(!v[6] ? null : v[6].value), !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3119450353: (v) => new IFC4X3.IfcPresentationStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2095639259: (v) => {
+      var _a;
+      return new IFC4X3.IfcProductRepresentation(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3958567839: (v) => new IFC4X3.IfcProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value)),
+    3843373140: (v) => new IFC4X3.IfcProjectedCRS(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcIdentifier(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    986844984: (_) => new IFC4X3.IfcPropertyAbstraction(),
+    3710013099: (v) => {
+      var _a;
+      return new IFC4X3.IfcPropertyEnumeration(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[2] ? null : new Handle(!v[2] ? null : v[2].value));
+    },
+    2044713172: (v) => new IFC4X3.IfcQuantityArea(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcAreaMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    2093928680: (v) => new IFC4X3.IfcQuantityCount(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcCountMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    931644368: (v) => new IFC4X3.IfcQuantityLength(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    2691318326: (v) => new IFC4X3.IfcQuantityNumber(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcNumericMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    3252649465: (v) => new IFC4X3.IfcQuantityTime(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcTimeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    2405470396: (v) => new IFC4X3.IfcQuantityVolume(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcVolumeMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    825690147: (v) => new IFC4X3.IfcQuantityWeight(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcMassMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    3915482550: (v) => {
+      var _a, _b, _c, _d;
+      return new IFC4X3.IfcRecurrencePattern(v[0], !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcDayInMonthNumber(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcDayInWeekNumber(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcMonthInYearNumber(p.value) : null)) || [], !v[4] ? null : new IFC4X3.IfcInteger(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcInteger(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcInteger(!v[6] ? null : v[6].value), !v[7] ? null : ((_d = v[7]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2433181523: (v) => {
+      var _a;
+      return new IFC4X3.IfcReference(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], !v[4] ? null : new Handle(!v[4] ? null : v[4].value));
+    },
+    1076942058: (v) => {
+      var _a;
+      return new IFC4X3.IfcRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3377609919: (v) => new IFC4X3.IfcRepresentationContext(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value)),
+    3008791417: (_) => new IFC4X3.IfcRepresentationItem(),
+    1660063152: (v) => new IFC4X3.IfcRepresentationMap(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    2439245199: (v) => new IFC4X3.IfcResourceLevelRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value)),
+    2341007311: (v) => new IFC4X3.IfcRoot(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    448429030: (v) => new IFC4X3.IfcSIUnit(new Handle(!v[0] ? null : v[0].value), v[1], v[2], v[3]),
+    1054537805: (v) => new IFC4X3.IfcSchedulingTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),
+    867548509: (v) => {
+      var _a;
+      return new IFC4X3.IfcShapeAspect(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), new IFC4X3.IfcLogical(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value));
+    },
+    3982875396: (v) => {
+      var _a;
+      return new IFC4X3.IfcShapeModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    4240577450: (v) => {
+      var _a;
+      return new IFC4X3.IfcShapeRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2273995522: (v) => new IFC4X3.IfcStructuralConnectionCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2162789131: (v) => new IFC4X3.IfcStructuralLoad(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    3478079324: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcStructuralLoadConfiguration(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcLengthMeasure(p2.value) : null)) || []));
+    },
+    609421318: (v) => new IFC4X3.IfcStructuralLoadOrResult(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2525727697: (v) => new IFC4X3.IfcStructuralLoadStatic(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    3408363356: (v) => new IFC4X3.IfcStructuralLoadTemperature(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcThermodynamicTemperatureMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcThermodynamicTemperatureMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcThermodynamicTemperatureMeasure(!v[3] ? null : v[3].value)),
+    2830218821: (v) => {
+      var _a;
+      return new IFC4X3.IfcStyleModel(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3958052878: (v) => {
+      var _a;
+      return new IFC4X3.IfcStyledItem(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    3049322572: (v) => {
+      var _a;
+      return new IFC4X3.IfcStyledRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2934153892: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSurfaceReinforcementArea(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLengthMeasure(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLengthMeasure(p.value) : null)) || [], !v[3] ? null : new IFC4X3.IfcRatioMeasure(!v[3] ? null : v[3].value));
+    },
+    1300840506: (v) => {
+      var _a;
+      return new IFC4X3.IfcSurfaceStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3303107099: (v) => new IFC4X3.IfcSurfaceStyleLighting(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    1607154358: (v) => new IFC4X3.IfcSurfaceStyleRefraction(!v[0] ? null : new IFC4X3.IfcReal(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcReal(!v[1] ? null : v[1].value)),
+    846575682: (v) => new IFC4X3.IfcSurfaceStyleShading(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value)),
+    1351298697: (v) => {
+      var _a;
+      return new IFC4X3.IfcSurfaceStyleWithTextures(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    626085974: (v) => {
+      var _a;
+      return new IFC4X3.IfcSurfaceTexture(new IFC4X3.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || []);
+    },
+    985171141: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTable(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2043862942: (v) => new IFC4X3.IfcTableColumn(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    531007025: (v) => {
+      var _a;
+      return new IFC4X3.IfcTableRow(!v[0] ? null : ((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value));
+    },
+    1549132990: (v) => new IFC4X3.IfcTaskTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4X3.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value)),
+    2771591690: (v) => new IFC4X3.IfcTaskTimeRecurring(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), v[3], !v[4] ? null : new IFC4X3.IfcDuration(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcDateTime(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDateTime(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDuration(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcBoolean(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcDateTime(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3.IfcDateTime(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3.IfcDuration(!v[18] ? null : v[18].value), !v[19] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[19] ? null : v[19].value), new Handle(!v[20] ? null : v[20].value)),
+    912023232: (v) => {
+      var _a, _b, _c, _d;
+      return new IFC4X3.IfcTelecomAddress(v[0], !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[4] ? null : ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcURIReference(!v[7] ? null : v[7].value), !v[8] ? null : ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcURIReference(p.value) : null)) || []);
+    },
+    1447204868: (v) => new IFC4X3.IfcTextStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcBoolean(!v[4] ? null : v[4].value)),
+    2636378356: (v) => new IFC4X3.IfcTextStyleForDefinedFont(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    1640371178: (v) => new IFC4X3.IfcTextStyleTextModel(!v[0] ? null : TypeInitialiser(3, v[0]), !v[1] ? null : new IFC4X3.IfcTextAlignment(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcTextDecoration(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), !v[5] ? null : new IFC4X3.IfcTextTransformation(!v[5] ? null : v[5].value), !v[6] ? null : TypeInitialiser(3, v[6])),
+    280115917: (v) => {
+      var _a;
+      return new IFC4X3.IfcTextureCoordinate(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1742049831: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTextureCoordinateGenerator(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || []);
+    },
+    222769930: (v) => {
+      var _a;
+      return new IFC4X3.IfcTextureCoordinateIndices(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value));
+    },
+    1010789467: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTextureCoordinateIndicesWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), (_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []));
+    },
+    2552916305: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[2] ? null : v[2].value));
+    },
+    1210645708: (v) => {
+      var _a;
+      return new IFC4X3.IfcTextureVertex(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || []);
+    },
+    3611470254: (v) => {
+      var _a;
+      return new IFC4X3.IfcTextureVertexList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcParameterValue(p2.value) : null)) || []));
+    },
+    1199560280: (v) => new IFC4X3.IfcTimePeriod(new IFC4X3.IfcTime(!v[0] ? null : v[0].value), new IFC4X3.IfcTime(!v[1] ? null : v[1].value)),
+    3101149627: (v) => new IFC4X3.IfcTimeSeries(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new IFC4X3.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    581633288: (v) => {
+      var _a;
+      return new IFC4X3.IfcTimeSeriesValue(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []);
+    },
+    1377556343: (_) => new IFC4X3.IfcTopologicalRepresentationItem(),
+    1735638870: (v) => {
+      var _a;
+      return new IFC4X3.IfcTopologyRepresentation(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    180925521: (v) => {
+      var _a;
+      return new IFC4X3.IfcUnitAssignment(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2799835756: (_) => new IFC4X3.IfcVertex(),
+    1907098498: (v) => new IFC4X3.IfcVertexPoint(new Handle(!v[0] ? null : v[0].value)),
+    891718957: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcVirtualGridIntersection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLengthMeasure(p.value) : null)) || []);
+    },
+    1236880293: (v) => new IFC4X3.IfcWorkTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcDate(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDate(!v[5] ? null : v[5].value)),
+    3752311538: (v) => new IFC4X3.IfcAlignmentCantSegment(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLengthMeasure(!v[7] ? null : v[7].value), v[8]),
+    536804194: (v) => new IFC4X3.IfcAlignmentHorizontalSegment(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), v[8]),
+    3869604511: (v) => {
+      var _a;
+      return new IFC4X3.IfcApprovalRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3798115385: (v) => new IFC4X3.IfcArbitraryClosedProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1310608509: (v) => new IFC4X3.IfcArbitraryOpenProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2705031697: (v) => {
+      var _a;
+      return new IFC4X3.IfcArbitraryProfileDefWithVoids(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    616511568: (v) => {
+      var _a;
+      return new IFC4X3.IfcBlobTexture(new IFC4X3.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || [], new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcBinary(!v[6] ? null : v[6].value));
+    },
+    3150382593: (v) => new IFC4X3.IfcCenterLineProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    747523909: (v) => {
+      var _a;
+      return new IFC4X3.IfcClassification(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcDate(!v[2] ? null : v[2].value), new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcURIReference(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || []);
+    },
+    647927063: (v) => new IFC4X3.IfcClassificationReference(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value)),
+    3285139300: (v) => {
+      var _a;
+      return new IFC4X3.IfcColourRgbList((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcNormalisedRatioMeasure(p2.value) : null)) || []));
+    },
+    3264961684: (v) => new IFC4X3.IfcColourSpecification(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    1485152156: (v) => {
+      var _a;
+      return new IFC4X3.IfcCompositeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : new IFC4X3.IfcLabel(!v[3] ? null : v[3].value));
+    },
+    370225590: (v) => {
+      var _a;
+      return new IFC4X3.IfcConnectedFaceSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1981873012: (v) => new IFC4X3.IfcConnectionCurveGeometry(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    45288368: (v) => new IFC4X3.IfcConnectionPointEccentricity(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value)),
+    3050246964: (v) => new IFC4X3.IfcContextDependentUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),
+    2889183280: (v) => new IFC4X3.IfcConversionBasedUnit(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    2713554722: (v) => new IFC4X3.IfcConversionBasedUnitWithOffset(new Handle(!v[0] ? null : v[0].value), v[1], new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), new IFC4X3.IfcReal(!v[4] ? null : v[4].value)),
+    539742890: (v) => new IFC4X3.IfcCurrencyRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    3800577675: (v) => new IFC4X3.IfcCurveStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcBoolean(!v[4] ? null : v[4].value)),
+    1105321065: (v) => {
+      var _a;
+      return new IFC4X3.IfcCurveStyleFont(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2367409068: (v) => new IFC4X3.IfcCurveStyleFontAndScaling(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value)),
+    3510044353: (v) => new IFC4X3.IfcCurveStyleFontPattern(new IFC4X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    3632507154: (v) => new IFC4X3.IfcDerivedProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    1154170062: (v) => {
+      var _a;
+      return new IFC4X3.IfcDocumentInformation(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcURIReference(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcText(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new IFC4X3.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcIdentifier(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcDate(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcDate(!v[14] ? null : v[14].value), v[15], v[16]);
+    },
+    770865208: (v) => {
+      var _a;
+      return new IFC4X3.IfcDocumentInformationRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value));
+    },
+    3732053477: (v) => new IFC4X3.IfcDocumentReference(!v[0] ? null : new IFC4X3.IfcURIReference(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcIdentifier(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    3900360178: (v) => new IFC4X3.IfcEdge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    476780140: (v) => new IFC4X3.IfcEdgeCurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcBoolean(!v[3] ? null : v[3].value)),
+    211053100: (v) => new IFC4X3.IfcEventTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcDateTime(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value)),
+    297599258: (v) => {
+      var _a;
+      return new IFC4X3.IfcExtendedProperties(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1437805879: (v) => {
+      var _a;
+      return new IFC4X3.IfcExternalReferenceRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2556980723: (v) => {
+      var _a;
+      return new IFC4X3.IfcFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1809719519: (v) => new IFC4X3.IfcFaceBound(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value)),
+    803316827: (v) => new IFC4X3.IfcFaceOuterBound(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value)),
+    3008276851: (v) => {
+      var _a;
+      return new IFC4X3.IfcFaceSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    4219587988: (v) => new IFC4X3.IfcFailureConnectionCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcForceMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcForceMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcForceMeasure(!v[6] ? null : v[6].value)),
+    738692330: (v) => {
+      var _a;
+      return new IFC4X3.IfcFillAreaStyle(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    3448662350: (v) => new IFC4X3.IfcGeometricRepresentationContext(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcDimensionCount(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value)),
+    2453401579: (_) => new IFC4X3.IfcGeometricRepresentationItem(),
+    4142052618: (v) => new IFC4X3.IfcGeometricRepresentationSubContext(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value)),
+    3590301190: (v) => {
+      var _a;
+      return new IFC4X3.IfcGeometricSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    178086475: (v) => new IFC4X3.IfcGridPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    812098782: (v) => new IFC4X3.IfcHalfSpaceSolid(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value)),
+    3905492369: (v) => {
+      var _a;
+      return new IFC4X3.IfcImageTexture(new IFC4X3.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || [], new IFC4X3.IfcURIReference(!v[5] ? null : v[5].value));
+    },
+    3570813810: (v) => {
+      var _a;
+      return new IFC4X3.IfcIndexedColourMap(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || []);
+    },
+    1437953363: (v) => {
+      var _a;
+      return new IFC4X3.IfcIndexedTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value));
+    },
+    2133299955: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcIndexedTriangleTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []));
+    },
+    3741457305: (v) => {
+      var _a;
+      return new IFC4X3.IfcIrregularTimeSeries(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new IFC4X3.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1585845231: (v) => new IFC4X3.IfcLagTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), TypeInitialiser(3, v[3]), v[4]),
+    1402838566: (v) => new IFC4X3.IfcLightSource(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    125510826: (v) => new IFC4X3.IfcLightSourceAmbient(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    2604431987: (v) => new IFC4X3.IfcLightSourceDirectional(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),
+    4266656042: (v) => new IFC4X3.IfcLightSourceGoniometric(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), new IFC4X3.IfcThermodynamicTemperatureMeasure(!v[6] ? null : v[6].value), new IFC4X3.IfcLuminousFluxMeasure(!v[7] ? null : v[7].value), v[8], new Handle(!v[9] ? null : v[9].value)),
+    1520743889: (v) => new IFC4X3.IfcLightSourcePositional(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcReal(!v[6] ? null : v[6].value), new IFC4X3.IfcReal(!v[7] ? null : v[7].value), new IFC4X3.IfcReal(!v[8] ? null : v[8].value)),
+    3422422726: (v) => new IFC4X3.IfcLightSourceSpot(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcReal(!v[6] ? null : v[6].value), new IFC4X3.IfcReal(!v[7] ? null : v[7].value), new IFC4X3.IfcReal(!v[8] ? null : v[8].value), new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcReal(!v[10] ? null : v[10].value), new IFC4X3.IfcPositivePlaneAngleMeasure(!v[11] ? null : v[11].value), new IFC4X3.IfcPositivePlaneAngleMeasure(!v[12] ? null : v[12].value)),
+    388784114: (v) => new IFC4X3.IfcLinearPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    2624227202: (v) => new IFC4X3.IfcLocalPlacement(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1008929658: (_) => new IFC4X3.IfcLoop(),
+    2347385850: (v) => new IFC4X3.IfcMappedItem(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1838606355: (v) => new IFC4X3.IfcMaterial(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value)),
+    3708119e3: (v) => new IFC4X3.IfcMaterialConstituent(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    2852063980: (v) => {
+      var _a;
+      return new IFC4X3.IfcMaterialConstituentSet(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2022407955: (v) => {
+      var _a;
+      return new IFC4X3.IfcMaterialDefinitionRepresentation(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    1303795690: (v) => new IFC4X3.IfcMaterialLayerSetUsage(new Handle(!v[0] ? null : v[0].value), v[1], v[2], new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    3079605661: (v) => new IFC4X3.IfcMaterialProfileSetUsage(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    3404854881: (v) => new IFC4X3.IfcMaterialProfileSetUsageTapering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcCardinalPointReference(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcCardinalPointReference(!v[4] ? null : v[4].value)),
+    3265635763: (v) => {
+      var _a;
+      return new IFC4X3.IfcMaterialProperties(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    853536259: (v) => {
+      var _a;
+      return new IFC4X3.IfcMaterialRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value));
+    },
+    2998442950: (v) => new IFC4X3.IfcMirroredProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    219451334: (v) => new IFC4X3.IfcObjectDefinition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    182550632: (v) => {
+      var _a, _b, _c;
+      return new IFC4X3.IfcOpenCrossProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcNonNegativeLengthMeasure(p.value) : null)) || [], ((_b = v[4]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPlaneAngleMeasure(p.value) : null)) || [], !v[5] ? null : ((_c = v[5]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || [], !v[6] ? null : new Handle(!v[6] ? null : v[6].value));
+    },
+    2665983363: (v) => {
+      var _a;
+      return new IFC4X3.IfcOpenShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1411181986: (v) => {
+      var _a;
+      return new IFC4X3.IfcOrganizationRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1029017970: (v) => new IFC4X3.IfcOrientedEdge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value)),
+    2529465313: (v) => new IFC4X3.IfcParameterizedProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    2519244187: (v) => {
+      var _a;
+      return new IFC4X3.IfcPath(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3021840470: (v) => {
+      var _a;
+      return new IFC4X3.IfcPhysicalComplexQuantity(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLabel(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value));
+    },
+    597895409: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPixelTexture(new IFC4X3.IfcBoolean(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcIdentifier(p.value) : null)) || [], new IFC4X3.IfcInteger(!v[5] ? null : v[5].value), new IFC4X3.IfcInteger(!v[6] ? null : v[6].value), new IFC4X3.IfcInteger(!v[7] ? null : v[7].value), ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcBinary(p.value) : null)) || []);
+    },
+    2004835150: (v) => new IFC4X3.IfcPlacement(new Handle(!v[0] ? null : v[0].value)),
+    1663979128: (v) => new IFC4X3.IfcPlanarExtent(new IFC4X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),
+    2067069095: (_) => new IFC4X3.IfcPoint(),
+    2165702409: (v) => new IFC4X3.IfcPointByDistanceExpression(TypeInitialiser(3, v[0]), !v[1] ? null : new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),
+    4022376103: (v) => new IFC4X3.IfcPointOnCurve(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcParameterValue(!v[1] ? null : v[1].value)),
+    1423911732: (v) => new IFC4X3.IfcPointOnSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4X3.IfcParameterValue(!v[2] ? null : v[2].value)),
+    2924175390: (v) => {
+      var _a;
+      return new IFC4X3.IfcPolyLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2775532180: (v) => new IFC4X3.IfcPolygonalBoundedHalfSpace(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    3727388367: (v) => new IFC4X3.IfcPreDefinedItem(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    3778827333: (_) => new IFC4X3.IfcPreDefinedProperties(),
+    1775413392: (v) => new IFC4X3.IfcPreDefinedTextFont(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    673634403: (v) => {
+      var _a;
+      return new IFC4X3.IfcProductDefinitionShape(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2802850158: (v) => {
+      var _a;
+      return new IFC4X3.IfcProfileProperties(!v[0] ? null : new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    2598011224: (v) => new IFC4X3.IfcProperty(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value)),
+    1680319473: (v) => new IFC4X3.IfcPropertyDefinition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    148025276: (v) => new IFC4X3.IfcPropertyDependencyRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value)),
+    3357820518: (v) => new IFC4X3.IfcPropertySetDefinition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    1482703590: (v) => new IFC4X3.IfcPropertyTemplateDefinition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    2090586900: (v) => new IFC4X3.IfcQuantitySet(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    3615266464: (v) => new IFC4X3.IfcRectangleProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    3413951693: (v) => {
+      var _a;
+      return new IFC4X3.IfcRegularTimeSeries(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new IFC4X3.IfcDateTime(!v[2] ? null : v[2].value), new IFC4X3.IfcDateTime(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new IFC4X3.IfcTimeMeasure(!v[8] ? null : v[8].value), ((_a = v[9]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1580146022: (v) => new IFC4X3.IfcReinforcementBarProperties(new IFC4X3.IfcAreaMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), v[2], !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcCountMeasure(!v[5] ? null : v[5].value)),
+    478536968: (v) => new IFC4X3.IfcRelationship(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    2943643501: (v) => {
+      var _a;
+      return new IFC4X3.IfcResourceApprovalRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[3] ? null : v[3].value));
+    },
+    1608871552: (v) => {
+      var _a;
+      return new IFC4X3.IfcResourceConstraintRelationship(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1042787934: (v) => new IFC4X3.IfcResourceTime(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), v[1], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcDuration(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcDateTime(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcDuration(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDateTime(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcDuration(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcDateTime(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcDateTime(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcDuration(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3.IfcPositiveRatioMeasure(!v[17] ? null : v[17].value)),
+    2778083089: (v) => new IFC4X3.IfcRoundedRectangleProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value)),
+    2042790032: (v) => new IFC4X3.IfcSectionProperties(v[0], new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    4165799628: (v) => {
+      var _a;
+      return new IFC4X3.IfcSectionReinforcementProperties(new IFC4X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), v[3], new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1509187699: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSectionedSpine(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    823603102: (v) => new IFC4X3.IfcSegment(v[0]),
+    4124623270: (v) => {
+      var _a;
+      return new IFC4X3.IfcShellBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3692461612: (v) => new IFC4X3.IfcSimpleProperty(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value)),
+    2609359061: (v) => new IFC4X3.IfcSlippageConnectionCondition(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    723233188: (_) => new IFC4X3.IfcSolidModel(),
+    1595516126: (v) => new IFC4X3.IfcStructuralLoadLinearForce(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLinearForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLinearForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLinearForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLinearMomentMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLinearMomentMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLinearMomentMeasure(!v[6] ? null : v[6].value)),
+    2668620305: (v) => new IFC4X3.IfcStructuralLoadPlanarForce(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcPlanarForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPlanarForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcPlanarForceMeasure(!v[3] ? null : v[3].value)),
+    2473145415: (v) => new IFC4X3.IfcStructuralLoadSingleDisplacement(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value)),
+    1973038258: (v) => new IFC4X3.IfcStructuralLoadSingleDisplacementDistortion(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcCurvatureMeasure(!v[7] ? null : v[7].value)),
+    1597423693: (v) => new IFC4X3.IfcStructuralLoadSingleForce(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcTorqueMeasure(!v[6] ? null : v[6].value)),
+    1190533807: (v) => new IFC4X3.IfcStructuralLoadSingleForceWarping(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcForceMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcForceMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcForceMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcTorqueMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcTorqueMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcTorqueMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcWarpingMomentMeasure(!v[7] ? null : v[7].value)),
+    2233826070: (v) => new IFC4X3.IfcSubedge(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2513912981: (_) => new IFC4X3.IfcSurface(),
+    1878645084: (v) => new IFC4X3.IfcSurfaceStyleRendering(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : TypeInitialiser(3, v[7]), v[8]),
+    2247615214: (v) => new IFC4X3.IfcSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    1260650574: (v) => new IFC4X3.IfcSweptDiskSolid(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcParameterValue(!v[4] ? null : v[4].value)),
+    1096409881: (v) => new IFC4X3.IfcSweptDiskSolidPolygonal(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcParameterValue(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcParameterValue(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value)),
+    230924584: (v) => new IFC4X3.IfcSweptSurface(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    3071757647: (v) => new IFC4X3.IfcTShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[11] ? null : v[11].value)),
+    901063453: (_) => new IFC4X3.IfcTessellatedItem(),
+    4282788508: (v) => new IFC4X3.IfcTextLiteral(new IFC4X3.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2]),
+    3124975700: (v) => new IFC4X3.IfcTextLiteralWithExtent(new IFC4X3.IfcPresentableText(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), v[2], new Handle(!v[3] ? null : v[3].value), new IFC4X3.IfcBoxAlignment(!v[4] ? null : v[4].value)),
+    1983826977: (v) => {
+      var _a;
+      return new IFC4X3.IfcTextStyleFontModel(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcTextFontName(p.value) : null)) || [], !v[2] ? null : new IFC4X3.IfcFontStyle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcFontVariant(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcFontWeight(!v[4] ? null : v[4].value), TypeInitialiser(3, v[5]));
+    },
+    2715220739: (v) => new IFC4X3.IfcTrapeziumProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcLengthMeasure(!v[6] ? null : v[6].value)),
+    1628702193: (v) => {
+      var _a;
+      return new IFC4X3.IfcTypeObject(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3736923433: (v) => {
+      var _a;
+      return new IFC4X3.IfcTypeProcess(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2347495698: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTypeProduct(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value));
+    },
+    3698973494: (v) => {
+      var _a;
+      return new IFC4X3.IfcTypeResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    427810014: (v) => new IFC4X3.IfcUShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)),
+    1417489154: (v) => new IFC4X3.IfcVector(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),
+    2759199220: (v) => new IFC4X3.IfcVertexLoop(new Handle(!v[0] ? null : v[0].value)),
+    2543172580: (v) => new IFC4X3.IfcZShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value)),
+    3406155212: (v) => {
+      var _a;
+      return new IFC4X3.IfcAdvancedFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    669184980: (v) => {
+      var _a;
+      return new IFC4X3.IfcAnnotationFillArea(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3207858831: (v) => new IFC4X3.IfcAsymmetricIShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[14] ? null : v[14].value)),
+    4261334040: (v) => new IFC4X3.IfcAxis1Placement(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    3125803723: (v) => new IFC4X3.IfcAxis2Placement2D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value)),
+    2740243338: (v) => new IFC4X3.IfcAxis2Placement3D(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    3425423356: (v) => new IFC4X3.IfcAxis2PlacementLinear(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value)),
+    2736907675: (v) => new IFC4X3.IfcBooleanResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    4182860854: (_) => new IFC4X3.IfcBoundedSurface(),
+    2581212453: (v) => new IFC4X3.IfcBoundingBox(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2713105998: (v) => new IFC4X3.IfcBoxedHalfSpace(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2898889636: (v) => new IFC4X3.IfcCShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)),
+    1123145078: (v) => {
+      var _a;
+      return new IFC4X3.IfcCartesianPoint(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLengthMeasure(p.value) : null)) || []);
+    },
+    574549367: (_) => new IFC4X3.IfcCartesianPointList(),
+    1675464909: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCartesianPointList2D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcLengthMeasure(p2.value) : null)) || []), !v[1] ? null : ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || []);
+    },
+    2059837836: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCartesianPointList3D((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcLengthMeasure(p2.value) : null)) || []), !v[1] ? null : ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcLabel(p.value) : null)) || []);
+    },
+    59481748: (v) => new IFC4X3.IfcCartesianTransformationOperator(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value)),
+    3749851601: (v) => new IFC4X3.IfcCartesianTransformationOperator2D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value)),
+    3486308946: (v) => new IFC4X3.IfcCartesianTransformationOperator2DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcReal(!v[4] ? null : v[4].value)),
+    3331915920: (v) => new IFC4X3.IfcCartesianTransformationOperator3D(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value)),
+    1416205885: (v) => new IFC4X3.IfcCartesianTransformationOperator3DnonUniform(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcReal(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcReal(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcReal(!v[6] ? null : v[6].value)),
+    1383045692: (v) => new IFC4X3.IfcCircleProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2205249479: (v) => {
+      var _a;
+      return new IFC4X3.IfcClosedShell(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    776857604: (v) => new IFC4X3.IfcColourRgb(!v[0] ? null : new IFC4X3.IfcLabel(!v[0] ? null : v[0].value), new IFC4X3.IfcNormalisedRatioMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcNormalisedRatioMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcNormalisedRatioMeasure(!v[3] ? null : v[3].value)),
+    2542286263: (v) => {
+      var _a;
+      return new IFC4X3.IfcComplexProperty(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), new IFC4X3.IfcIdentifier(!v[2] ? null : v[2].value), ((_a = v[3]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2485617015: (v) => new IFC4X3.IfcCompositeCurveSegment(v[0], new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    2574617495: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcConstructionResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value));
+    },
+    3419103109: (v) => {
+      var _a;
+      return new IFC4X3.IfcContext(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));
+    },
+    1815067380: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCrewResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    2506170314: (v) => new IFC4X3.IfcCsgPrimitive3D(new Handle(!v[0] ? null : v[0].value)),
+    2147822146: (v) => new IFC4X3.IfcCsgSolid(new Handle(!v[0] ? null : v[0].value)),
+    2601014836: (_) => new IFC4X3.IfcCurve(),
+    2827736869: (v) => {
+      var _a;
+      return new IFC4X3.IfcCurveBoundedPlane(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2629017746: (v) => {
+      var _a;
+      return new IFC4X3.IfcCurveBoundedSurface(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcBoolean(!v[2] ? null : v[2].value));
+    },
+    4212018352: (v) => new IFC4X3.IfcCurveSegment(v[0], new Handle(!v[1] ? null : v[1].value), TypeInitialiser(3, v[2]), TypeInitialiser(3, v[3]), new Handle(!v[4] ? null : v[4].value)),
+    32440307: (v) => {
+      var _a;
+      return new IFC4X3.IfcDirection(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || []);
+    },
+    593015953: (v) => new IFC4X3.IfcDirectrixCurveSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4])),
+    1472233963: (v) => {
+      var _a;
+      return new IFC4X3.IfcEdgeLoop(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1883228015: (v) => {
+      var _a;
+      return new IFC4X3.IfcElementQuantity(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    339256511: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2777663545: (v) => new IFC4X3.IfcElementarySurface(new Handle(!v[0] ? null : v[0].value)),
+    2835456948: (v) => new IFC4X3.IfcEllipseProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    4024345920: (v) => {
+      var _a;
+      return new IFC4X3.IfcEventType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3.IfcLabel(!v[11] ? null : v[11].value));
+    },
+    477187591: (v) => new IFC4X3.IfcExtrudedAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    2804161546: (v) => new IFC4X3.IfcExtrudedAreaSolidTapered(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),
+    2047409740: (v) => {
+      var _a;
+      return new IFC4X3.IfcFaceBasedSurfaceModel(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    374418227: (v) => new IFC4X3.IfcFillAreaStyleHatching(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value), new IFC4X3.IfcPlaneAngleMeasure(!v[4] ? null : v[4].value)),
+    315944413: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFillAreaStyleTiles(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcPositiveRatioMeasure(!v[2] ? null : v[2].value));
+    },
+    2652556860: (v) => new IFC4X3.IfcFixedReferenceSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle(!v[5] ? null : v[5].value)),
+    4238390223: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFurnishingElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1268542332: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFurnitureType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10]);
+    },
+    4095422895: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcGeographicElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    987898635: (v) => {
+      var _a;
+      return new IFC4X3.IfcGeometricCurveSet(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1484403080: (v) => new IFC4X3.IfcIShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[9] ? null : v[9].value)),
+    178912537: (v) => {
+      var _a;
+      return new IFC4X3.IfcIndexedPolygonalFace(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || []);
+    },
+    2294589976: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcIndexedPolygonalFaceWithVoids(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || [], (_b = v[1]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []));
+    },
+    3465909080: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcIndexedPolygonalTextureMap(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    572779678: (v) => new IFC4X3.IfcLShapeProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcPlaneAngleMeasure(!v[8] ? null : v[8].value)),
+    428585644: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcLaborResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    1281925730: (v) => new IFC4X3.IfcLine(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    1425443689: (v) => new IFC4X3.IfcManifoldSolidBrep(new Handle(!v[0] ? null : v[0].value)),
+    3888040117: (v) => new IFC4X3.IfcObject(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    590820931: (v) => new IFC4X3.IfcOffsetCurve(new Handle(!v[0] ? null : v[0].value)),
+    3388369263: (v) => new IFC4X3.IfcOffsetCurve2D(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcLogical(!v[2] ? null : v[2].value)),
+    3505215534: (v) => new IFC4X3.IfcOffsetCurve3D(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcLogical(!v[2] ? null : v[2].value), new Handle(!v[3] ? null : v[3].value)),
+    2485787929: (v) => {
+      var _a;
+      return new IFC4X3.IfcOffsetCurveByDistances(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value));
+    },
+    1682466193: (v) => new IFC4X3.IfcPcurve(new Handle(!v[0] ? null : v[0].value), new Handle(!v[1] ? null : v[1].value)),
+    603570806: (v) => new IFC4X3.IfcPlanarBox(new IFC4X3.IfcLengthMeasure(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    220341763: (v) => new IFC4X3.IfcPlane(new Handle(!v[0] ? null : v[0].value)),
+    3381221214: (v) => {
+      var _a, _b, _c;
+      return new IFC4X3.IfcPolynomialCurve(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || [], !v[2] ? null : ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || [], !v[3] ? null : ((_c = v[3]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || []);
+    },
+    759155922: (v) => new IFC4X3.IfcPreDefinedColour(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    2559016684: (v) => new IFC4X3.IfcPreDefinedCurveFont(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    3967405729: (v) => new IFC4X3.IfcPreDefinedPropertySet(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    569719735: (v) => {
+      var _a;
+      return new IFC4X3.IfcProcedureType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2945172077: (v) => new IFC4X3.IfcProcess(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value)),
+    4208778838: (v) => new IFC4X3.IfcProduct(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    103090709: (v) => {
+      var _a;
+      return new IFC4X3.IfcProject(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));
+    },
+    653396225: (v) => {
+      var _a;
+      return new IFC4X3.IfcProjectLibrary(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new Handle(!v[8] ? null : v[8].value));
+    },
+    871118103: (v) => new IFC4X3.IfcPropertyBoundedValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), !v[5] ? null : TypeInitialiser(3, v[5])),
+    4166981789: (v) => {
+      var _a;
+      return new IFC4X3.IfcPropertyEnumeratedValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    2752243245: (v) => {
+      var _a;
+      return new IFC4X3.IfcPropertyListValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    941946838: (v) => new IFC4X3.IfcPropertyReferenceValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcText(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),
+    1451395588: (v) => {
+      var _a;
+      return new IFC4X3.IfcPropertySet(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    492091185: (v) => {
+      var _a;
+      return new IFC4X3.IfcPropertySetTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3650150729: (v) => new IFC4X3.IfcPropertySingleValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : TypeInitialiser(3, v[2]), !v[3] ? null : new Handle(!v[3] ? null : v[3].value)),
+    110355661: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPropertyTableValue(new IFC4X3.IfcIdentifier(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcText(!v[1] ? null : v[1].value), !v[2] ? null : ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], !v[4] ? null : new IFC4X3.IfcText(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]);
+    },
+    3521284610: (v) => new IFC4X3.IfcPropertyTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    2770003689: (v) => new IFC4X3.IfcRectangleHollowProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), new IFC4X3.IfcPositiveLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value)),
+    2798486643: (v) => new IFC4X3.IfcRectangularPyramid(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    3454111270: (v) => new IFC4X3.IfcRectangularTrimmedSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcParameterValue(!v[1] ? null : v[1].value), new IFC4X3.IfcParameterValue(!v[2] ? null : v[2].value), new IFC4X3.IfcParameterValue(!v[3] ? null : v[3].value), new IFC4X3.IfcParameterValue(!v[4] ? null : v[4].value), new IFC4X3.IfcBoolean(!v[5] ? null : v[5].value), new IFC4X3.IfcBoolean(!v[6] ? null : v[6].value)),
+    3765753017: (v) => {
+      var _a;
+      return new IFC4X3.IfcReinforcementDefinitionProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3939117080: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssigns(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5]);
+    },
+    1683148259: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssignsToActor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    2495723537: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssignsToControl(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    1307041759: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssignsToGroup(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    1027710054: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssignsToGroupByFactor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), new IFC4X3.IfcRatioMeasure(!v[7] ? null : v[7].value));
+    },
+    4278684876: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssignsToProcess(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value));
+    },
+    2857406711: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssignsToProduct(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    205026976: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssignsToResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[5], new Handle(!v[6] ? null : v[6].value));
+    },
+    1865459582: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssociates(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    4095574036: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssociatesApproval(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    919958153: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssociatesClassification(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    2728634034: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssociatesConstraint(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value));
+    },
+    982818633: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssociatesDocument(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    3840914261: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssociatesLibrary(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    2655215786: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssociatesMaterial(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    1033248425: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAssociatesProfileDef(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    826625072: (v) => new IFC4X3.IfcRelConnects(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    1204542856: (v) => new IFC4X3.IfcRelConnectsElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value)),
+    3945020480: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcRelConnectsPathElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], v[9], v[10]);
+    },
+    4201705270: (v) => new IFC4X3.IfcRelConnectsPortToElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    3190031847: (v) => new IFC4X3.IfcRelConnectsPorts(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    2127690289: (v) => new IFC4X3.IfcRelConnectsStructuralActivity(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1638771189: (v) => new IFC4X3.IfcRelConnectsStructuralMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),
+    504942748: (v) => new IFC4X3.IfcRelConnectsWithEccentricity(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), new Handle(!v[10] ? null : v[10].value)),
+    3678494232: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelConnectsWithRealizingElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3242617779: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelContainedInSpatialStructure(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    886880790: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelCoversBldgElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2802773753: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelCoversSpaces(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2565941209: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelDeclares(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    2551354335: (v) => new IFC4X3.IfcRelDecomposes(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    693640335: (v) => new IFC4X3.IfcRelDefines(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value)),
+    1462361463: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelDefinesByObject(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    4186316022: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelDefinesByProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    307848117: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelDefinesByTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    781010003: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelDefinesByType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    3940055652: (v) => new IFC4X3.IfcRelFillsElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    279856033: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelFlowControlElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    427948657: (v) => new IFC4X3.IfcRelInterferesElements(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcIdentifier(!v[8] ? null : v[8].value), new IFC4X3.IfcLogical(!v[9] ? null : v[9].value)),
+    3268803585: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelNests(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1441486842: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelPositions(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    750771296: (v) => new IFC4X3.IfcRelProjectsElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1245217292: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelReferencedInSpatialStructure(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), ((_a = v[4]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new Handle(!v[5] ? null : v[5].value));
+    },
+    4122056220: (v) => new IFC4X3.IfcRelSequence(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value)),
+    366585022: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelServicesBuildings(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3451746338: (v) => new IFC4X3.IfcRelSpaceBoundary(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8]),
+    3523091289: (v) => new IFC4X3.IfcRelSpaceBoundary1stLevel(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle(!v[9] ? null : v[9].value)),
+    1521410863: (v) => new IFC4X3.IfcRelSpaceBoundary2ndLevel(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),
+    1401173127: (v) => new IFC4X3.IfcRelVoidsElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    816062949: (v) => new IFC4X3.IfcReparametrisedCompositeCurveSegment(v[0], new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcParameterValue(!v[3] ? null : v[3].value)),
+    2914609552: (v) => new IFC4X3.IfcResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value)),
+    1856042241: (v) => new IFC4X3.IfcRevolvedAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value)),
+    3243963512: (v) => new IFC4X3.IfcRevolvedAreaSolidTapered(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPlaneAngleMeasure(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value)),
+    4158566097: (v) => new IFC4X3.IfcRightCircularCone(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    3626867408: (v) => new IFC4X3.IfcRightCircularCylinder(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    1862484736: (v) => {
+      var _a;
+      return new IFC4X3.IfcSectionedSolid(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1290935644: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSectionedSolidHorizontal(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1356537516: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSectionedSurface(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3663146110: (v) => new IFC4X3.IfcSimplePropertyTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), v[4], !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value), v[11]),
+    1412071761: (v) => new IFC4X3.IfcSpatialElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value)),
+    710998568: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSpatialElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2706606064: (v) => new IFC4X3.IfcSpatialStructureElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),
+    3893378262: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSpatialStructureElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    463610769: (v) => new IFC4X3.IfcSpatialZone(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),
+    2481509218: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSpatialZoneType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value));
+    },
+    451544542: (v) => new IFC4X3.IfcSphere(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    4015995234: (v) => new IFC4X3.IfcSphericalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    2735484536: (v) => new IFC4X3.IfcSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value)),
+    3544373492: (v) => new IFC4X3.IfcStructuralActivity(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    3136571912: (v) => new IFC4X3.IfcStructuralItem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    530289379: (v) => new IFC4X3.IfcStructuralMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    3689010777: (v) => new IFC4X3.IfcStructuralReaction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    3979015343: (v) => new IFC4X3.IfcStructuralSurfaceMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),
+    2218152070: (v) => new IFC4X3.IfcStructuralSurfaceMemberVarying(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value)),
+    603775116: (v) => new IFC4X3.IfcStructuralSurfaceReaction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], v[9]),
+    4095615324: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSubContractResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    699246055: (v) => {
+      var _a;
+      return new IFC4X3.IfcSurfaceCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);
+    },
+    2028607225: (v) => new IFC4X3.IfcSurfaceCurveSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle(!v[5] ? null : v[5].value)),
+    2809605785: (v) => new IFC4X3.IfcSurfaceOfLinearExtrusion(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    4124788165: (v) => new IFC4X3.IfcSurfaceOfRevolution(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1580310250: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSystemFurnitureElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3473067441: (v) => new IFC4X3.IfcTask(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcInteger(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), v[12]),
+    3206491090: (v) => {
+      var _a;
+      return new IFC4X3.IfcTaskType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value));
+    },
+    2387106220: (v) => new IFC4X3.IfcTessellatedFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value)),
+    782932809: (v) => new IFC4X3.IfcThirdOrderPolynomialSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value)),
+    1935646853: (v) => new IFC4X3.IfcToroidalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    3665877780: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTransportationDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2916149573: (v) => {
+      var _a, _b, _c;
+      return new IFC4X3.IfcTriangulatedFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcParameterValue(p2.value) : null)) || []), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || []);
+    },
+    1229763772: (v) => {
+      var _a, _b, _c, _d;
+      return new IFC4X3.IfcTriangulatedIrregularNetwork(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), !v[2] ? null : (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcParameterValue(p2.value) : null)) || []), (_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcPositiveInteger(p2.value) : null)) || []), !v[4] ? null : ((_c = v[4]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || [], ((_d = v[5]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || []);
+    },
+    3651464721: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcVehicleType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    336235671: (v) => new IFC4X3.IfcWindowLiningProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new Handle(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcLengthMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcLengthMeasure(!v[15] ? null : v[15].value)),
+    512836454: (v) => new IFC4X3.IfcWindowPanelProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    2296667514: (v) => new IFC4X3.IfcActor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value)),
+    1635779807: (v) => new IFC4X3.IfcAdvancedBrep(new Handle(!v[0] ? null : v[0].value)),
+    2603310189: (v) => {
+      var _a;
+      return new IFC4X3.IfcAdvancedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1674181508: (v) => new IFC4X3.IfcAnnotation(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),
+    2887950389: (v) => {
+      var _a;
+      return new IFC4X3.IfcBSplineSurface(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3.IfcLogical(!v[6] ? null : v[6].value));
+    },
+    167062518: (v) => {
+      var _a, _b, _c, _d, _e;
+      return new IFC4X3.IfcBSplineSurfaceWithKnots(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], v[11]);
+    },
+    1334484129: (v) => new IFC4X3.IfcBlock(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value)),
+    3649129432: (v) => new IFC4X3.IfcBooleanClippingResult(v[0], new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value)),
+    1260505505: (_) => new IFC4X3.IfcBoundedCurve(),
+    3124254112: (v) => new IFC4X3.IfcBuildingStorey(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcLengthMeasure(!v[9] ? null : v[9].value)),
+    1626504194: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcBuiltElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2197970202: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcChimneyType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2937912522: (v) => new IFC4X3.IfcCircleHollowProfileDef(v[0], !v[1] ? null : new IFC4X3.IfcLabel(!v[1] ? null : v[1].value), !v[2] ? null : new Handle(!v[2] ? null : v[2].value), new IFC4X3.IfcPositiveLengthMeasure(!v[3] ? null : v[3].value), new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value)),
+    3893394355: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCivilElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3497074424: (v) => new IFC4X3.IfcClothoid(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value)),
+    300633059: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcColumnType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3875453745: (v) => {
+      var _a;
+      return new IFC4X3.IfcComplexPropertyTemplate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3732776249: (v) => {
+      var _a;
+      return new IFC4X3.IfcCompositeCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value));
+    },
+    15328376: (v) => {
+      var _a;
+      return new IFC4X3.IfcCompositeCurveOnSurface(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value));
+    },
+    2510884976: (v) => new IFC4X3.IfcConic(new Handle(!v[0] ? null : v[0].value)),
+    2185764099: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcConstructionEquipmentResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    4105962743: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcConstructionMaterialResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    1525564444: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcConstructionProductResourceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : new IFC4X3.IfcIdentifier(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcText(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : ((_b = v[9]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[10] ? null : new Handle(!v[10] ? null : v[10].value), v[11]);
+    },
+    2559216714: (v) => {
+      var _a;
+      return new IFC4X3.IfcConstructionResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value));
+    },
+    3293443760: (v) => new IFC4X3.IfcControl(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value)),
+    2000195564: (v) => new IFC4X3.IfcCosineSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value)),
+    3895139033: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCostItem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    1419761937: (v) => new IFC4X3.IfcCostSchedule(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcDateTime(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDateTime(!v[9] ? null : v[9].value)),
+    4189326743: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCourseType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1916426348: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCoveringType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3295246426: (v) => {
+      var _a;
+      return new IFC4X3.IfcCrewResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    1457835157: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCurtainWallType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1213902940: (v) => new IFC4X3.IfcCylindricalSurface(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    1306400036: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDeepFoundationType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    4234616927: (v) => new IFC4X3.IfcDirectrixDerivedReferenceSweptAreaSolid(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : TypeInitialiser(3, v[3]), !v[4] ? null : TypeInitialiser(3, v[4]), new Handle(!v[5] ? null : v[5].value)),
+    3256556792: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDistributionElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3849074793: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDistributionFlowElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2963535650: (v) => new IFC4X3.IfcDoorLiningProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcNonNegativeLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new Handle(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcLengthMeasure(!v[16] ? null : v[16].value)),
+    1714330368: (v) => new IFC4X3.IfcDoorPanelProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[6] ? null : v[6].value), v[7], !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    2323601079: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDoorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value));
+    },
+    445594917: (v) => new IFC4X3.IfcDraughtingPreDefinedColour(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    4006246654: (v) => new IFC4X3.IfcDraughtingPreDefinedCurveFont(new IFC4X3.IfcLabel(!v[0] ? null : v[0].value)),
+    1758889154: (v) => new IFC4X3.IfcElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4123344466: (v) => new IFC4X3.IfcElementAssembly(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),
+    2397081782: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElementAssemblyType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1623761950: (v) => new IFC4X3.IfcElementComponent(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2590856083: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElementComponentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1704287377: (v) => new IFC4X3.IfcEllipse(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value), new IFC4X3.IfcPositiveLengthMeasure(!v[2] ? null : v[2].value)),
+    2107101300: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcEnergyConversionDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    132023988: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcEngineType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3174744832: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcEvaporativeCoolerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3390157468: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcEvaporatorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4148101412: (v) => new IFC4X3.IfcEvent(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), v[7], v[8], !v[9] ? null : new IFC4X3.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value)),
+    2853485674: (v) => new IFC4X3.IfcExternalSpatialStructureElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value)),
+    807026263: (v) => new IFC4X3.IfcFacetedBrep(new Handle(!v[0] ? null : v[0].value)),
+    3737207727: (v) => {
+      var _a;
+      return new IFC4X3.IfcFacetedBrepWithVoids(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    24185140: (v) => new IFC4X3.IfcFacility(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),
+    1310830890: (v) => new IFC4X3.IfcFacilityPart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),
+    4228831410: (v) => new IFC4X3.IfcFacilityPartCommon(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),
+    647756555: (v) => new IFC4X3.IfcFastener(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2489546625: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFastenerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2827207264: (v) => new IFC4X3.IfcFeatureElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2143335405: (v) => new IFC4X3.IfcFeatureElementAddition(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1287392070: (v) => new IFC4X3.IfcFeatureElementSubtraction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3907093117: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowControllerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3198132628: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3815607619: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowMeterType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1482959167: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowMovingDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1834744321: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1339347760: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowStorageDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2297155007: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    3009222698: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowTreatmentDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1893162501: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFootingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    263784265: (v) => new IFC4X3.IfcFurnishingElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1509553395: (v) => new IFC4X3.IfcFurniture(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3493046030: (v) => new IFC4X3.IfcGeographicElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4230923436: (v) => new IFC4X3.IfcGeotechnicalElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1594536857: (v) => new IFC4X3.IfcGeotechnicalStratum(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2898700619: (v) => {
+      var _a;
+      return new IFC4X3.IfcGradientCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    2706460486: (v) => new IFC4X3.IfcGroup(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    1251058090: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcHeatExchangerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1806887404: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcHumidifierType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2568555532: (v) => new IFC4X3.IfcImpactProtectionDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3948183225: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcImpactProtectionDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2571569899: (v) => {
+      var _a;
+      return new IFC4X3.IfcIndexedPolyCurve(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || [], new IFC4X3.IfcLogical(!v[2] ? null : v[2].value));
+    },
+    3946677679: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcInterceptorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3113134337: (v) => {
+      var _a;
+      return new IFC4X3.IfcIntersectionCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);
+    },
+    2391368822: (v) => {
+      var _a;
+      return new IFC4X3.IfcInventory(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcDate(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value));
+    },
+    4288270099: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcJunctionBoxType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    679976338: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcKerbType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value));
+    },
+    3827777499: (v) => {
+      var _a;
+      return new IFC4X3.IfcLaborResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    1051575348: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcLampType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1161773419: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcLightFixtureType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2176059722: (v) => new IFC4X3.IfcLinearElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    1770583370: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcLiquidTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    525669439: (v) => new IFC4X3.IfcMarineFacility(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),
+    976884017: (v) => new IFC4X3.IfcMarinePart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),
+    377706215: (v) => new IFC4X3.IfcMechanicalFastener(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10]),
+    2108223431: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcMechanicalFastenerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value));
+    },
+    1114901282: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcMedicalDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3181161470: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcMemberType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1950438474: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcMobileTelecommunicationsApplianceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    710110818: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcMooringDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    977012517: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcMotorConnectionType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    506776471: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcNavigationElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4143007308: (v) => new IFC4X3.IfcOccupant(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), new Handle(!v[5] ? null : v[5].value), v[6]),
+    3588315303: (v) => new IFC4X3.IfcOpeningElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2837617999: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcOutletType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    514975943: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPavementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2382730787: (v) => new IFC4X3.IfcPerformanceHistory(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcLabel(!v[6] ? null : v[6].value), v[7]),
+    3566463478: (v) => new IFC4X3.IfcPermeableCoveringProperties(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), v[4], v[5], !v[6] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    3327091369: (v) => new IFC4X3.IfcPermit(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcText(!v[8] ? null : v[8].value)),
+    1158309216: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPileType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    804291784: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPipeFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4231323485: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPipeSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4017108033: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPlateType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2839578677: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPolygonalFaceSet(new Handle(!v[0] ? null : v[0].value), !v[1] ? null : new IFC4X3.IfcBoolean(!v[1] ? null : v[1].value), ((_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[3] ? null : ((_b = v[3]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcPositiveInteger(p.value) : null)) || []);
+    },
+    3724593414: (v) => {
+      var _a;
+      return new IFC4X3.IfcPolyline(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    3740093272: (v) => new IFC4X3.IfcPort(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    1946335990: (v) => new IFC4X3.IfcPositioningElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    2744685151: (v) => new IFC4X3.IfcProcedure(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), v[7]),
+    2904328755: (v) => new IFC4X3.IfcProjectOrder(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcText(!v[8] ? null : v[8].value)),
+    3651124850: (v) => new IFC4X3.IfcProjectionElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1842657554: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcProtectiveDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2250791053: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcPumpType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1763565496: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcRailType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2893384427: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcRailingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3992365140: (v) => new IFC4X3.IfcRailway(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),
+    1891881377: (v) => new IFC4X3.IfcRailwayPart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),
+    2324767716: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcRampFlightType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1469900589: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcRampType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    683857671: (v) => {
+      var _a, _b, _c, _d, _e, _f;
+      return new IFC4X3.IfcRationalBSplineSurfaceWithKnots(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), new IFC4X3.IfcInteger(!v[1] ? null : v[1].value), (_a = v[2]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new Handle(p2.value) : null)) || []), v[3], new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), new IFC4X3.IfcLogical(!v[5] ? null : v[5].value), new IFC4X3.IfcLogical(!v[6] ? null : v[6].value), ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_c = v[8]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_d = v[9]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], ((_e = v[10]) == null ? void 0 : _e.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], v[11], (_f = v[12]) == null ? void 0 : _f.map((p) => (p == null ? void 0 : p.map((p2) => (p2 == null ? void 0 : p2.value) ? new IFC4X3.IfcReal(p2.value) : null)) || []));
+    },
+    4021432810: (v) => new IFC4X3.IfcReferent(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),
+    3027567501: (v) => new IFC4X3.IfcReinforcingElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value)),
+    964333572: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcReinforcingElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    2320036040: (v) => new IFC4X3.IfcReinforcingMesh(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcAreaMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), v[17]),
+    2310774935: (v) => {
+      var _a, _b, _c;
+      return new IFC4X3.IfcReinforcingMeshType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcAreaMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcAreaMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value), !v[17] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[17] ? null : v[17].value), !v[18] ? null : new IFC4X3.IfcLabel(!v[18] ? null : v[18].value), !v[19] ? null : ((_c = v[19]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []);
+    },
+    3818125796: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAdheresToElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    160246688: (v) => {
+      var _a;
+      return new IFC4X3.IfcRelAggregates(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), new Handle(!v[4] ? null : v[4].value), ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || []);
+    },
+    146592293: (v) => new IFC4X3.IfcRoad(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),
+    550521510: (v) => new IFC4X3.IfcRoadPart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),
+    2781568857: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcRoofType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1768891740: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSanitaryTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2157484638: (v) => {
+      var _a;
+      return new IFC4X3.IfcSeamCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2]);
+    },
+    3649235739: (v) => new IFC4X3.IfcSecondOrderPolynomialSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    544395925: (v) => {
+      var _a;
+      return new IFC4X3.IfcSegmentedReferenceCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value), new Handle(!v[2] ? null : v[2].value), !v[3] ? null : new Handle(!v[3] ? null : v[3].value));
+    },
+    1027922057: (v) => new IFC4X3.IfcSeventhOrderPolynomialSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLengthMeasure(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLengthMeasure(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcLengthMeasure(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLengthMeasure(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLengthMeasure(!v[8] ? null : v[8].value)),
+    4074543187: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcShadingDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    33720170: (v) => new IFC4X3.IfcSign(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3599934289: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSignType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1894708472: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSignalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    42703149: (v) => new IFC4X3.IfcSineSpiral(!v[0] ? null : new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcLengthMeasure(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLengthMeasure(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcLengthMeasure(!v[3] ? null : v[3].value)),
+    4097777520: (v) => new IFC4X3.IfcSite(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcCompoundPlaneAngleMeasure(v[9].map((x) => x.value)), !v[10] ? null : new IFC4X3.IfcCompoundPlaneAngleMeasure(v[10].map((x) => x.value)), !v[11] ? null : new IFC4X3.IfcLengthMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),
+    2533589738: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSlabType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1072016465: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSolarDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3856911033: (v) => new IFC4X3.IfcSpace(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], !v[10] ? null : new IFC4X3.IfcLengthMeasure(!v[10] ? null : v[10].value)),
+    1305183839: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSpaceHeaterType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3812236995: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSpaceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcLabel(!v[10] ? null : v[10].value));
+    },
+    3112655638: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcStackTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1039846685: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcStairFlightType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    338393293: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcStairType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    682877961: (v) => new IFC4X3.IfcStructuralAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value)),
+    1179482911: (v) => new IFC4X3.IfcStructuralConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    1004757350: (v) => new IFC4X3.IfcStructuralCurveAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),
+    4243806635: (v) => new IFC4X3.IfcStructuralCurveConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), new Handle(!v[8] ? null : v[8].value)),
+    214636428: (v) => new IFC4X3.IfcStructuralCurveMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], new Handle(!v[8] ? null : v[8].value)),
+    2445595289: (v) => new IFC4X3.IfcStructuralCurveMemberVarying(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], new Handle(!v[8] ? null : v[8].value)),
+    2757150158: (v) => new IFC4X3.IfcStructuralCurveReaction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], v[9]),
+    1807405624: (v) => new IFC4X3.IfcStructuralLinearAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),
+    1252848954: (v) => new IFC4X3.IfcStructuralLoadGroup(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4X3.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcLabel(!v[9] ? null : v[9].value)),
+    2082059205: (v) => new IFC4X3.IfcStructuralPointAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value)),
+    734778138: (v) => new IFC4X3.IfcStructuralPointConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value)),
+    1235345126: (v) => new IFC4X3.IfcStructuralPointReaction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8]),
+    2986769608: (v) => new IFC4X3.IfcStructuralResultGroup(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4X3.IfcBoolean(!v[7] ? null : v[7].value)),
+    3657597509: (v) => new IFC4X3.IfcStructuralSurfaceAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),
+    1975003073: (v) => new IFC4X3.IfcStructuralSurfaceConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value)),
+    148013059: (v) => {
+      var _a;
+      return new IFC4X3.IfcSubContractResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    3101698114: (v) => new IFC4X3.IfcSurfaceFeature(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2315554128: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSwitchingDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2254336722: (v) => new IFC4X3.IfcSystem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value)),
+    413509423: (v) => new IFC4X3.IfcSystemFurnitureElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    5716631: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTankType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3824725483: (v) => new IFC4X3.IfcTendon(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcForceMeasure(!v[12] ? null : v[12].value), !v[13] ? null : new IFC4X3.IfcPressureMeasure(!v[13] ? null : v[13].value), !v[14] ? null : new IFC4X3.IfcNormalisedRatioMeasure(!v[14] ? null : v[14].value), !v[15] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[15] ? null : v[15].value), !v[16] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[16] ? null : v[16].value)),
+    2347447852: (v) => new IFC4X3.IfcTendonAnchor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]),
+    3081323446: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTendonAnchorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3663046924: (v) => new IFC4X3.IfcTendonConduit(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]),
+    2281632017: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTendonConduitType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2415094496: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTendonType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value));
+    },
+    618700268: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTrackElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1692211062: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTransformerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2097647324: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTransportElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1953115116: (v) => new IFC4X3.IfcTransportationDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3593883385: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTrimmedCurve(new Handle(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[2]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcBoolean(!v[3] ? null : v[3].value), v[4]);
+    },
+    1600972822: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcTubeBundleType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1911125066: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcUnitaryEquipmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    728799441: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcValveType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    840318589: (v) => new IFC4X3.IfcVehicle(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1530820697: (v) => new IFC4X3.IfcVibrationDamper(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3956297820: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcVibrationDamperType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2391383451: (v) => new IFC4X3.IfcVibrationIsolator(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3313531582: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcVibrationIsolatorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2769231204: (v) => new IFC4X3.IfcVirtualElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    926996030: (v) => new IFC4X3.IfcVoidingFeature(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1898987631: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcWallType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1133259667: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcWasteTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4009809668: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcWindowType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], v[10], !v[11] ? null : new IFC4X3.IfcBoolean(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value));
+    },
+    4088093105: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcWorkCalendar(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : ((_a = v[6]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : ((_b = v[7]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[8]);
+    },
+    1028945134: (v) => {
+      var _a;
+      return new IFC4X3.IfcWorkControl(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDateTime(!v[12] ? null : v[12].value));
+    },
+    4218914973: (v) => {
+      var _a;
+      return new IFC4X3.IfcWorkPlan(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDateTime(!v[12] ? null : v[12].value), v[13]);
+    },
+    3342526732: (v) => {
+      var _a;
+      return new IFC4X3.IfcWorkSchedule(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), new IFC4X3.IfcDateTime(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcDuration(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcDuration(!v[10] ? null : v[10].value), new IFC4X3.IfcDateTime(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDateTime(!v[12] ? null : v[12].value), v[13]);
+    },
+    1033361043: (v) => new IFC4X3.IfcZone(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value)),
+    3821786052: (v) => new IFC4X3.IfcActionRequest(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), v[6], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcText(!v[8] ? null : v[8].value)),
+    1411407467: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcAirTerminalBoxType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3352864051: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcAirTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1871374353: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcAirToAirHeatRecoveryType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4266260250: (v) => new IFC4X3.IfcAlignmentCant(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new IFC4X3.IfcPositiveLengthMeasure(!v[7] ? null : v[7].value)),
+    1545765605: (v) => new IFC4X3.IfcAlignmentHorizontal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    317615605: (v) => new IFC4X3.IfcAlignmentSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value)),
+    1662888072: (v) => new IFC4X3.IfcAlignmentVertical(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    3460190687: (v) => new IFC4X3.IfcAsset(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : new Handle(!v[8] ? null : v[8].value), !v[9] ? null : new Handle(!v[9] ? null : v[9].value), !v[10] ? null : new Handle(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcDate(!v[12] ? null : v[12].value), !v[13] ? null : new Handle(!v[13] ? null : v[13].value)),
+    1532957894: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcAudioVisualApplianceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1967976161: (v) => {
+      var _a;
+      return new IFC4X3.IfcBSplineCurve(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4X3.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3.IfcLogical(!v[4] ? null : v[4].value));
+    },
+    2461110595: (v) => {
+      var _a, _b, _c;
+      return new IFC4X3.IfcBSplineCurveWithKnots(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4X3.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], v[7]);
+    },
+    819618141: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcBeamType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3649138523: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcBearingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    231477066: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcBoilerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1136057603: (v) => {
+      var _a;
+      return new IFC4X3.IfcBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value));
+    },
+    644574406: (v) => new IFC4X3.IfcBridge(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9]),
+    963979645: (v) => new IFC4X3.IfcBridgePart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], v[9], v[10]),
+    4031249490: (v) => new IFC4X3.IfcBuilding(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new Handle(!v[11] ? null : v[11].value)),
+    2979338954: (v) => new IFC4X3.IfcBuildingElementPart(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    39481116: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcBuildingElementPartType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1909888760: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcBuildingElementProxyType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1177604601: (v) => new IFC4X3.IfcBuildingSystem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value)),
+    1876633798: (v) => new IFC4X3.IfcBuiltElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3862327254: (v) => new IFC4X3.IfcBuiltSystem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new IFC4X3.IfcLabel(!v[6] ? null : v[6].value)),
+    2188180465: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcBurnerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    395041908: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCableCarrierFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3293546465: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCableCarrierSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2674252688: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCableFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1285652485: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCableSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3203706013: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCaissonFoundationType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2951183804: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcChillerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3296154744: (v) => new IFC4X3.IfcChimney(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2611217952: (v) => new IFC4X3.IfcCircle(new Handle(!v[0] ? null : v[0].value), new IFC4X3.IfcPositiveLengthMeasure(!v[1] ? null : v[1].value)),
+    1677625105: (v) => new IFC4X3.IfcCivilElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2301859152: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCoilType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    843113511: (v) => new IFC4X3.IfcColumn(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    400855858: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCommunicationsApplianceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3850581409: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCompressorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2816379211: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCondenserType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3898045240: (v) => {
+      var _a;
+      return new IFC4X3.IfcConstructionEquipmentResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    1060000209: (v) => {
+      var _a;
+      return new IFC4X3.IfcConstructionMaterialResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    488727124: (v) => {
+      var _a;
+      return new IFC4X3.IfcConstructionProductResource(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcIdentifier(!v[5] ? null : v[5].value), !v[6] ? null : new IFC4X3.IfcText(!v[6] ? null : v[6].value), !v[7] ? null : new Handle(!v[7] ? null : v[7].value), !v[8] ? null : ((_a = v[8]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value), v[10]);
+    },
+    2940368186: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcConveyorSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    335055490: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCooledBeamType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2954562838: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcCoolingTowerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1502416096: (v) => new IFC4X3.IfcCourse(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1973544240: (v) => new IFC4X3.IfcCovering(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3495092785: (v) => new IFC4X3.IfcCurtainWall(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3961806047: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDamperType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3426335179: (v) => new IFC4X3.IfcDeepFoundation(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1335981549: (v) => new IFC4X3.IfcDiscreteAccessory(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2635815018: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDiscreteAccessoryType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    479945903: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDistributionBoardType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1599208980: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDistributionChamberElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2063403501: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDistributionControlElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value));
+    },
+    1945004755: (v) => new IFC4X3.IfcDistributionElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3040386961: (v) => new IFC4X3.IfcDistributionFlowElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3041715199: (v) => new IFC4X3.IfcDistributionPort(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7], v[8], v[9]),
+    3205830791: (v) => new IFC4X3.IfcDistributionSystem(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), v[6]),
+    395920057: (v) => new IFC4X3.IfcDoor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value)),
+    869906466: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDuctFittingType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3760055223: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDuctSegmentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2030761528: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcDuctSilencerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3071239417: (v) => new IFC4X3.IfcEarthworksCut(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1077100507: (v) => new IFC4X3.IfcEarthworksElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3376911765: (v) => new IFC4X3.IfcEarthworksFill(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    663422040: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElectricApplianceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2417008758: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElectricDistributionBoardType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3277789161: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElectricFlowStorageDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2142170206: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElectricFlowTreatmentDeviceType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1534661035: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElectricGeneratorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1217240411: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElectricMotorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    712377611: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcElectricTimeControlType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1658829314: (v) => new IFC4X3.IfcEnergyConversionDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2814081492: (v) => new IFC4X3.IfcEngine(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3747195512: (v) => new IFC4X3.IfcEvaporativeCooler(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    484807127: (v) => new IFC4X3.IfcEvaporator(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1209101575: (v) => new IFC4X3.IfcExternalSpatialElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), v[8]),
+    346874300: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFanType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1810631287: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFilterType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4222183408: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFireSuppressionTerminalType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2058353004: (v) => new IFC4X3.IfcFlowController(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4278956645: (v) => new IFC4X3.IfcFlowFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    4037862832: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcFlowInstrumentType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    2188021234: (v) => new IFC4X3.IfcFlowMeter(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3132237377: (v) => new IFC4X3.IfcFlowMovingDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    987401354: (v) => new IFC4X3.IfcFlowSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    707683696: (v) => new IFC4X3.IfcFlowStorageDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2223149337: (v) => new IFC4X3.IfcFlowTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3508470533: (v) => new IFC4X3.IfcFlowTreatmentDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    900683007: (v) => new IFC4X3.IfcFooting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2713699986: (v) => new IFC4X3.IfcGeotechnicalAssembly(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    3009204131: (v) => {
+      var _a, _b, _c;
+      return new IFC4X3.IfcGrid(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : ((_c = v[9]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[10]);
+    },
+    3319311131: (v) => new IFC4X3.IfcHeatExchanger(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2068733104: (v) => new IFC4X3.IfcHumidifier(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4175244083: (v) => new IFC4X3.IfcInterceptor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2176052936: (v) => new IFC4X3.IfcJunctionBox(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2696325953: (v) => new IFC4X3.IfcKerb(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), new IFC4X3.IfcBoolean(!v[8] ? null : v[8].value)),
+    76236018: (v) => new IFC4X3.IfcLamp(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    629592764: (v) => new IFC4X3.IfcLightFixture(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1154579445: (v) => new IFC4X3.IfcLinearPositioningElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value)),
+    1638804497: (v) => new IFC4X3.IfcLiquidTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1437502449: (v) => new IFC4X3.IfcMedicalDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1073191201: (v) => new IFC4X3.IfcMember(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2078563270: (v) => new IFC4X3.IfcMobileTelecommunicationsAppliance(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    234836483: (v) => new IFC4X3.IfcMooringDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2474470126: (v) => new IFC4X3.IfcMotorConnection(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2182337498: (v) => new IFC4X3.IfcNavigationElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    144952367: (v) => {
+      var _a;
+      return new IFC4X3.IfcOuterBoundaryCurve(((_a = v[0]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], new IFC4X3.IfcLogical(!v[1] ? null : v[1].value));
+    },
+    3694346114: (v) => new IFC4X3.IfcOutlet(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1383356374: (v) => new IFC4X3.IfcPavement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1687234759: (v) => new IFC4X3.IfcPile(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8], v[9]),
+    310824031: (v) => new IFC4X3.IfcPipeFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3612865200: (v) => new IFC4X3.IfcPipeSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3171933400: (v) => new IFC4X3.IfcPlate(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    738039164: (v) => new IFC4X3.IfcProtectiveDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    655969474: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcProtectiveDeviceTrippingUnitType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    90941305: (v) => new IFC4X3.IfcPump(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3290496277: (v) => new IFC4X3.IfcRail(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2262370178: (v) => new IFC4X3.IfcRailing(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3024970846: (v) => new IFC4X3.IfcRamp(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3283111854: (v) => new IFC4X3.IfcRampFlight(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1232101972: (v) => {
+      var _a, _b, _c, _d;
+      return new IFC4X3.IfcRationalBSplineCurveWithKnots(new IFC4X3.IfcInteger(!v[0] ? null : v[0].value), ((_a = v[1]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], v[2], new IFC4X3.IfcLogical(!v[3] ? null : v[3].value), new IFC4X3.IfcLogical(!v[4] ? null : v[4].value), ((_b = v[5]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcInteger(p.value) : null)) || [], ((_c = v[6]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcParameterValue(p.value) : null)) || [], v[7], ((_d = v[8]) == null ? void 0 : _d.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcReal(p.value) : null)) || []);
+    },
+    3798194928: (v) => new IFC4X3.IfcReinforcedSoil(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    979691226: (v) => new IFC4X3.IfcReinforcingBar(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcAreaMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12], v[13]),
+    2572171363: (v) => {
+      var _a, _b, _c;
+      return new IFC4X3.IfcReinforcingBarType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9], !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcAreaMeasure(!v[11] ? null : v[11].value), !v[12] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[12] ? null : v[12].value), v[13], !v[14] ? null : new IFC4X3.IfcLabel(!v[14] ? null : v[14].value), !v[15] ? null : ((_c = v[15]) == null ? void 0 : _c.map((p) => (p == null ? void 0 : p.value) ? TypeInitialiser(3, p) : null)) || []);
+    },
+    2016517767: (v) => new IFC4X3.IfcRoof(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3053780830: (v) => new IFC4X3.IfcSanitaryTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1783015770: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcSensorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1329646415: (v) => new IFC4X3.IfcShadingDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    991950508: (v) => new IFC4X3.IfcSignal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1529196076: (v) => new IFC4X3.IfcSlab(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3420628829: (v) => new IFC4X3.IfcSolarDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1999602285: (v) => new IFC4X3.IfcSpaceHeater(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1404847402: (v) => new IFC4X3.IfcStackTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    331165859: (v) => new IFC4X3.IfcStair(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4252922144: (v) => new IFC4X3.IfcStairFlight(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcInteger(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcInteger(!v[9] ? null : v[9].value), !v[10] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[10] ? null : v[10].value), !v[11] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[11] ? null : v[11].value), v[12]),
+    2515109513: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcStructuralAnalysisModel(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : ((_a = v[7]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[8] ? null : ((_b = v[8]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[9] ? null : new Handle(!v[9] ? null : v[9].value));
+    },
+    385403989: (v) => {
+      var _a;
+      return new IFC4X3.IfcStructuralLoadCase(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), v[5], v[6], v[7], !v[8] ? null : new IFC4X3.IfcRatioMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcLabel(!v[9] ? null : v[9].value), !v[10] ? null : ((_a = v[10]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new IFC4X3.IfcRatioMeasure(p.value) : null)) || []);
+    },
+    1621171031: (v) => new IFC4X3.IfcStructuralPlanarAction(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), new Handle(!v[7] ? null : v[7].value), v[8], !v[9] ? null : new IFC4X3.IfcBoolean(!v[9] ? null : v[9].value), v[10], v[11]),
+    1162798199: (v) => new IFC4X3.IfcSwitchingDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    812556717: (v) => new IFC4X3.IfcTank(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3425753595: (v) => new IFC4X3.IfcTrackElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3825984169: (v) => new IFC4X3.IfcTransformer(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1620046519: (v) => new IFC4X3.IfcTransportElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3026737570: (v) => new IFC4X3.IfcTubeBundle(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3179687236: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcUnitaryControlElementType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    4292641817: (v) => new IFC4X3.IfcUnitaryEquipment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4207607924: (v) => new IFC4X3.IfcValve(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2391406946: (v) => new IFC4X3.IfcWall(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3512223829: (v) => new IFC4X3.IfcWallStandardCase(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4237592921: (v) => new IFC4X3.IfcWasteTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3304561284: (v) => new IFC4X3.IfcWindow(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[8] ? null : v[8].value), !v[9] ? null : new IFC4X3.IfcPositiveLengthMeasure(!v[9] ? null : v[9].value), v[10], v[11], !v[12] ? null : new IFC4X3.IfcLabel(!v[12] ? null : v[12].value)),
+    2874132201: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcActuatorType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    1634111441: (v) => new IFC4X3.IfcAirTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    177149247: (v) => new IFC4X3.IfcAirTerminalBox(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2056796094: (v) => new IFC4X3.IfcAirToAirHeatRecovery(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3001207471: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcAlarmType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    325726236: (v) => new IFC4X3.IfcAlignment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), v[7]),
+    277319702: (v) => new IFC4X3.IfcAudioVisualAppliance(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    753842376: (v) => new IFC4X3.IfcBeam(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4196446775: (v) => new IFC4X3.IfcBearing(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    32344328: (v) => new IFC4X3.IfcBoiler(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3314249567: (v) => new IFC4X3.IfcBorehole(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1095909175: (v) => new IFC4X3.IfcBuildingElementProxy(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2938176219: (v) => new IFC4X3.IfcBurner(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    635142910: (v) => new IFC4X3.IfcCableCarrierFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3758799889: (v) => new IFC4X3.IfcCableCarrierSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1051757585: (v) => new IFC4X3.IfcCableFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4217484030: (v) => new IFC4X3.IfcCableSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3999819293: (v) => new IFC4X3.IfcCaissonFoundation(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3902619387: (v) => new IFC4X3.IfcChiller(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    639361253: (v) => new IFC4X3.IfcCoil(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3221913625: (v) => new IFC4X3.IfcCommunicationsAppliance(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3571504051: (v) => new IFC4X3.IfcCompressor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2272882330: (v) => new IFC4X3.IfcCondenser(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    578613899: (v) => {
+      var _a, _b;
+      return new IFC4X3.IfcControllerType(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcIdentifier(!v[4] ? null : v[4].value), !v[5] ? null : ((_a = v[5]) == null ? void 0 : _a.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[6] ? null : ((_b = v[6]) == null ? void 0 : _b.map((p) => (p == null ? void 0 : p.value) ? new Handle(p.value) : null)) || [], !v[7] ? null : new IFC4X3.IfcLabel(!v[7] ? null : v[7].value), !v[8] ? null : new IFC4X3.IfcLabel(!v[8] ? null : v[8].value), v[9]);
+    },
+    3460952963: (v) => new IFC4X3.IfcConveyorSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4136498852: (v) => new IFC4X3.IfcCooledBeam(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3640358203: (v) => new IFC4X3.IfcCoolingTower(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4074379575: (v) => new IFC4X3.IfcDamper(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3693000487: (v) => new IFC4X3.IfcDistributionBoard(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1052013943: (v) => new IFC4X3.IfcDistributionChamberElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    562808652: (v) => new IFC4X3.IfcDistributionCircuit(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new IFC4X3.IfcLabel(!v[5] ? null : v[5].value), v[6]),
+    1062813311: (v) => new IFC4X3.IfcDistributionControlElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    342316401: (v) => new IFC4X3.IfcDuctFitting(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3518393246: (v) => new IFC4X3.IfcDuctSegment(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1360408905: (v) => new IFC4X3.IfcDuctSilencer(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1904799276: (v) => new IFC4X3.IfcElectricAppliance(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    862014818: (v) => new IFC4X3.IfcElectricDistributionBoard(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3310460725: (v) => new IFC4X3.IfcElectricFlowStorageDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    24726584: (v) => new IFC4X3.IfcElectricFlowTreatmentDevice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    264262732: (v) => new IFC4X3.IfcElectricGenerator(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    402227799: (v) => new IFC4X3.IfcElectricMotor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1003880860: (v) => new IFC4X3.IfcElectricTimeControl(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3415622556: (v) => new IFC4X3.IfcFan(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    819412036: (v) => new IFC4X3.IfcFilter(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    1426591983: (v) => new IFC4X3.IfcFireSuppressionTerminal(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    182646315: (v) => new IFC4X3.IfcFlowInstrument(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    2680139844: (v) => new IFC4X3.IfcGeomodel(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    1971632696: (v) => new IFC4X3.IfcGeoslice(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value)),
+    2295281155: (v) => new IFC4X3.IfcProtectiveDeviceTrippingUnit(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4086658281: (v) => new IFC4X3.IfcSensor(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    630975310: (v) => new IFC4X3.IfcUnitaryControlElement(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    4288193352: (v) => new IFC4X3.IfcActuator(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    3087945054: (v) => new IFC4X3.IfcAlarm(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8]),
+    25142252: (v) => new IFC4X3.IfcController(new IFC4X3.IfcGloballyUniqueId(!v[0] ? null : v[0].value), !v[1] ? null : new Handle(!v[1] ? null : v[1].value), !v[2] ? null : new IFC4X3.IfcLabel(!v[2] ? null : v[2].value), !v[3] ? null : new IFC4X3.IfcText(!v[3] ? null : v[3].value), !v[4] ? null : new IFC4X3.IfcLabel(!v[4] ? null : v[4].value), !v[5] ? null : new Handle(!v[5] ? null : v[5].value), !v[6] ? null : new Handle(!v[6] ? null : v[6].value), !v[7] ? null : new IFC4X3.IfcIdentifier(!v[7] ? null : v[7].value), v[8])
+  };
+  InheritanceDef[3] = {
+    618182010: [IFCTELECOMADDRESS, IFCPOSTALADDRESS],
+    2879124712: [IFCALIGNMENTHORIZONTALSEGMENT, IFCALIGNMENTCANTSEGMENT, IFCALIGNMENTVERTICALSEGMENT],
+    411424972: [IFCCOSTVALUE],
+    4037036970: [IFCBOUNDARYNODECONDITIONWARPING, IFCBOUNDARYNODECONDITION, IFCBOUNDARYFACECONDITION, IFCBOUNDARYEDGECONDITION],
+    1387855156: [IFCBOUNDARYNODECONDITIONWARPING],
+    2859738748: [IFCCONNECTIONCURVEGEOMETRY, IFCCONNECTIONVOLUMEGEOMETRY, IFCCONNECTIONSURFACEGEOMETRY, IFCCONNECTIONPOINTECCENTRICITY, IFCCONNECTIONPOINTGEOMETRY],
+    2614616156: [IFCCONNECTIONPOINTECCENTRICITY],
+    1959218052: [IFCOBJECTIVE, IFCMETRIC],
+    1785450214: [IFCMAPCONVERSION],
+    1466758467: [IFCPROJECTEDCRS],
+    4294318154: [IFCDOCUMENTINFORMATION, IFCCLASSIFICATION, IFCLIBRARYINFORMATION],
+    3200245327: [IFCDOCUMENTREFERENCE, IFCCLASSIFICATIONREFERENCE, IFCLIBRARYREFERENCE, IFCEXTERNALLYDEFINEDTEXTFONT, IFCEXTERNALLYDEFINEDSURFACESTYLE, IFCEXTERNALLYDEFINEDHATCHSTYLE],
+    760658860: [IFCMATERIALCONSTITUENTSET, IFCMATERIALCONSTITUENT, IFCMATERIAL, IFCMATERIALPROFILESET, IFCMATERIALPROFILEWITHOFFSETS, IFCMATERIALPROFILE, IFCMATERIALLAYERSET, IFCMATERIALLAYERWITHOFFSETS, IFCMATERIALLAYER],
+    248100487: [IFCMATERIALLAYERWITHOFFSETS],
+    2235152071: [IFCMATERIALPROFILEWITHOFFSETS],
+    1507914824: [IFCMATERIALPROFILESETUSAGETAPERING, IFCMATERIALPROFILESETUSAGE, IFCMATERIALLAYERSETUSAGE],
+    1918398963: [IFCCONVERSIONBASEDUNITWITHOFFSET, IFCCONVERSIONBASEDUNIT, IFCCONTEXTDEPENDENTUNIT, IFCSIUNIT],
+    3701648758: [IFCLOCALPLACEMENT, IFCLINEARPLACEMENT, IFCGRIDPLACEMENT],
+    2483315170: [IFCPHYSICALCOMPLEXQUANTITY, IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA, IFCPHYSICALSIMPLEQUANTITY],
+    2226359599: [IFCQUANTITYWEIGHT, IFCQUANTITYVOLUME, IFCQUANTITYTIME, IFCQUANTITYNUMBER, IFCQUANTITYLENGTH, IFCQUANTITYCOUNT, IFCQUANTITYAREA],
+    677532197: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT, IFCPREDEFINEDITEM, IFCINDEXEDCOLOURMAP, IFCCURVESTYLEFONTPATTERN, IFCCURVESTYLEFONTANDSCALING, IFCCURVESTYLEFONT, IFCCOLOURRGB, IFCCOLOURSPECIFICATION, IFCCOLOURRGBLIST, IFCTEXTUREVERTEXLIST, IFCTEXTUREVERTEX, IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR, IFCTEXTURECOORDINATE, IFCTEXTSTYLETEXTMODEL, IFCTEXTSTYLEFORDEFINEDFONT, IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE, IFCSURFACETEXTURE, IFCSURFACESTYLEWITHTEXTURES, IFCSURFACESTYLERENDERING, IFCSURFACESTYLESHADING, IFCSURFACESTYLEREFRACTION, IFCSURFACESTYLELIGHTING],
+    2022622350: [IFCPRESENTATIONLAYERWITHSTYLE],
+    3119450353: [IFCFILLAREASTYLE, IFCCURVESTYLE, IFCTEXTSTYLE, IFCSURFACESTYLE],
+    2095639259: [IFCPRODUCTDEFINITIONSHAPE, IFCMATERIALDEFINITIONREPRESENTATION],
+    3958567839: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF, IFCPARAMETERIZEDPROFILEDEF, IFCOPENCROSSPROFILEDEF, IFCMIRROREDPROFILEDEF, IFCDERIVEDPROFILEDEF, IFCCOMPOSITEPROFILEDEF, IFCCENTERLINEPROFILEDEF, IFCARBITRARYOPENPROFILEDEF, IFCARBITRARYPROFILEDEFWITHVOIDS, IFCARBITRARYCLOSEDPROFILEDEF],
+    986844984: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY, IFCPROPERTY, IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES, IFCPREDEFINEDPROPERTIES, IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES, IFCEXTENDEDPROPERTIES, IFCPROPERTYENUMERATION],
+    1076942058: [IFCSTYLEDREPRESENTATION, IFCSTYLEMODEL, IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION, IFCSHAPEMODEL],
+    3377609919: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT, IFCGEOMETRICREPRESENTATIONCONTEXT],
+    3008791417: [IFCMAPPEDITEM, IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET, IFCGEOMETRICREPRESENTATIONITEM, IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX, IFCTOPOLOGICALREPRESENTATIONITEM, IFCSTYLEDITEM],
+    2439245199: [IFCRESOURCECONSTRAINTRELATIONSHIP, IFCRESOURCEAPPROVALRELATIONSHIP, IFCPROPERTYDEPENDENCYRELATIONSHIP, IFCORGANIZATIONRELATIONSHIP, IFCMATERIALRELATIONSHIP, IFCEXTERNALREFERENCERELATIONSHIP, IFCDOCUMENTINFORMATIONRELATIONSHIP, IFCCURRENCYRELATIONSHIP, IFCAPPROVALRELATIONSHIP],
+    2341007311: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS, IFCRELATIONSHIP, IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION, IFCPROPERTYDEFINITION, IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT, IFCOBJECTDEFINITION],
+    1054537805: [IFCRESOURCETIME, IFCLAGTIME, IFCEVENTTIME, IFCWORKTIME, IFCTASKTIMERECURRING, IFCTASKTIME],
+    3982875396: [IFCTOPOLOGYREPRESENTATION, IFCSHAPEREPRESENTATION],
+    2273995522: [IFCSLIPPAGECONNECTIONCONDITION, IFCFAILURECONNECTIONCONDITION],
+    2162789131: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC, IFCSTRUCTURALLOADORRESULT, IFCSTRUCTURALLOADCONFIGURATION],
+    609421318: [IFCSURFACEREINFORCEMENTAREA, IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE, IFCSTRUCTURALLOADSTATIC],
+    2525727697: [IFCSTRUCTURALLOADSINGLEFORCEWARPING, IFCSTRUCTURALLOADSINGLEFORCE, IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION, IFCSTRUCTURALLOADSINGLEDISPLACEMENT, IFCSTRUCTURALLOADPLANARFORCE, IFCSTRUCTURALLOADLINEARFORCE, IFCSTRUCTURALLOADTEMPERATURE],
+    2830218821: [IFCSTYLEDREPRESENTATION],
+    846575682: [IFCSURFACESTYLERENDERING],
+    626085974: [IFCPIXELTEXTURE, IFCIMAGETEXTURE, IFCBLOBTEXTURE],
+    1549132990: [IFCTASKTIMERECURRING],
+    280115917: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP, IFCINDEXEDTEXTUREMAP, IFCTEXTUREMAP, IFCTEXTURECOORDINATEGENERATOR],
+    222769930: [IFCTEXTURECOORDINATEINDICESWITHVOIDS],
+    3101149627: [IFCREGULARTIMESERIES, IFCIRREGULARTIMESERIES],
+    1377556343: [IFCPATH, IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP, IFCLOOP, IFCFACEOUTERBOUND, IFCFACEBOUND, IFCADVANCEDFACE, IFCFACESURFACE, IFCFACE, IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE, IFCEDGE, IFCCLOSEDSHELL, IFCOPENSHELL, IFCCONNECTEDFACESET, IFCVERTEXPOINT, IFCVERTEX],
+    2799835756: [IFCVERTEXPOINT],
+    3798115385: [IFCARBITRARYPROFILEDEFWITHVOIDS],
+    1310608509: [IFCCENTERLINEPROFILEDEF],
+    3264961684: [IFCCOLOURRGB],
+    370225590: [IFCCLOSEDSHELL, IFCOPENSHELL],
+    2889183280: [IFCCONVERSIONBASEDUNITWITHOFFSET],
+    3632507154: [IFCMIRROREDPROFILEDEF],
+    3900360178: [IFCSUBEDGE, IFCORIENTEDEDGE, IFCEDGECURVE],
+    297599258: [IFCPROFILEPROPERTIES, IFCMATERIALPROPERTIES],
+    2556980723: [IFCADVANCEDFACE, IFCFACESURFACE],
+    1809719519: [IFCFACEOUTERBOUND],
+    3008276851: [IFCADVANCEDFACE],
+    3448662350: [IFCGEOMETRICREPRESENTATIONSUBCONTEXT],
+    2453401579: [IFCFILLAREASTYLETILES, IFCFILLAREASTYLEHATCHING, IFCFACEBASEDSURFACEMODEL, IFCDIRECTION, IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE, IFCCURVE, IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID, IFCCSGPRIMITIVE3D, IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D, IFCCARTESIANTRANSFORMATIONOPERATOR, IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D, IFCCARTESIANPOINTLIST, IFCBOUNDINGBOX, IFCBOOLEANCLIPPINGRESULT, IFCBOOLEANRESULT, IFCANNOTATIONFILLAREA, IFCVECTOR, IFCTEXTLITERALWITHEXTENT, IFCTEXTLITERAL, IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE, IFCTESSELLATEDITEM, IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE, IFCSURFACE, IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID, IFCSOLIDMODEL, IFCSHELLBASEDSURFACEMODEL, IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT, IFCSEGMENT, IFCSECTIONEDSPINE, IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION, IFCPOINT, IFCPLANARBOX, IFCPLANAREXTENT, IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT, IFCPLACEMENT, IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT, IFCLIGHTSOURCE, IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE, IFCHALFSPACESOLID, IFCGEOMETRICCURVESET, IFCGEOMETRICSET],
+    3590301190: [IFCGEOMETRICCURVESET],
+    812098782: [IFCBOXEDHALFSPACE, IFCPOLYGONALBOUNDEDHALFSPACE],
+    1437953363: [IFCINDEXEDPOLYGONALTEXTUREMAP, IFCINDEXEDTRIANGLETEXTUREMAP],
+    1402838566: [IFCLIGHTSOURCESPOT, IFCLIGHTSOURCEPOSITIONAL, IFCLIGHTSOURCEGONIOMETRIC, IFCLIGHTSOURCEDIRECTIONAL, IFCLIGHTSOURCEAMBIENT],
+    1520743889: [IFCLIGHTSOURCESPOT],
+    1008929658: [IFCEDGELOOP, IFCVERTEXLOOP, IFCPOLYLOOP],
+    3079605661: [IFCMATERIALPROFILESETUSAGETAPERING],
+    219451334: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS, IFCOBJECT, IFCPROJECTLIBRARY, IFCPROJECT, IFCCONTEXT, IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS, IFCTYPEOBJECT],
+    2529465313: [IFCLSHAPEPROFILEDEF, IFCISHAPEPROFILEDEF, IFCELLIPSEPROFILEDEF, IFCCIRCLEHOLLOWPROFILEDEF, IFCCIRCLEPROFILEDEF, IFCCSHAPEPROFILEDEF, IFCASYMMETRICISHAPEPROFILEDEF, IFCZSHAPEPROFILEDEF, IFCUSHAPEPROFILEDEF, IFCTRAPEZIUMPROFILEDEF, IFCTSHAPEPROFILEDEF, IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF, IFCRECTANGLEPROFILEDEF],
+    2004835150: [IFCAXIS2PLACEMENTLINEAR, IFCAXIS2PLACEMENT3D, IFCAXIS2PLACEMENT2D, IFCAXIS1PLACEMENT],
+    1663979128: [IFCPLANARBOX],
+    2067069095: [IFCCARTESIANPOINT, IFCPOINTONSURFACE, IFCPOINTONCURVE, IFCPOINTBYDISTANCEEXPRESSION],
+    3727388367: [IFCDRAUGHTINGPREDEFINEDCURVEFONT, IFCPREDEFINEDCURVEFONT, IFCDRAUGHTINGPREDEFINEDCOLOUR, IFCPREDEFINEDCOLOUR, IFCTEXTSTYLEFONTMODEL, IFCPREDEFINEDTEXTFONT],
+    3778827333: [IFCSECTIONREINFORCEMENTPROPERTIES, IFCSECTIONPROPERTIES, IFCREINFORCEMENTBARPROPERTIES],
+    1775413392: [IFCTEXTSTYLEFONTMODEL],
+    2598011224: [IFCCOMPLEXPROPERTY, IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE, IFCSIMPLEPROPERTY],
+    1680319473: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE, IFCPROPERTYTEMPLATEDEFINITION, IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET, IFCPROPERTYSETDEFINITION],
+    3357820518: [IFCPROPERTYSET, IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES, IFCPREDEFINEDPROPERTYSET, IFCELEMENTQUANTITY, IFCQUANTITYSET],
+    1482703590: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE, IFCPROPERTYTEMPLATE, IFCPROPERTYSETTEMPLATE],
+    2090586900: [IFCELEMENTQUANTITY],
+    3615266464: [IFCRECTANGLEHOLLOWPROFILEDEF, IFCROUNDEDRECTANGLEPROFILEDEF],
+    478536968: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT, IFCRELDEFINES, IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS, IFCRELDECOMPOSES, IFCRELDECLARES, IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS, IFCRELCONNECTS, IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL, IFCRELASSOCIATES, IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR, IFCRELASSIGNS],
+    823603102: [IFCCURVESEGMENT, IFCREPARAMETRISEDCOMPOSITECURVESEGMENT, IFCCOMPOSITECURVESEGMENT],
+    3692461612: [IFCPROPERTYTABLEVALUE, IFCPROPERTYSINGLEVALUE, IFCPROPERTYREFERENCEVALUE, IFCPROPERTYLISTVALUE, IFCPROPERTYENUMERATEDVALUE, IFCPROPERTYBOUNDEDVALUE],
+    723233188: [IFCSECTIONEDSOLIDHORIZONTAL, IFCSECTIONEDSOLID, IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP, IFCMANIFOLDSOLIDBREP, IFCCSGSOLID, IFCSWEPTDISKSOLIDPOLYGONAL, IFCSWEPTDISKSOLID, IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID, IFCSWEPTAREASOLID],
+    2473145415: [IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION],
+    1597423693: [IFCSTRUCTURALLOADSINGLEFORCEWARPING],
+    2513912981: [IFCSECTIONEDSURFACE, IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE, IFCELEMENTARYSURFACE, IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE, IFCBOUNDEDSURFACE, IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION, IFCSWEPTSURFACE],
+    2247615214: [IFCREVOLVEDAREASOLIDTAPERED, IFCREVOLVEDAREASOLID, IFCEXTRUDEDAREASOLIDTAPERED, IFCEXTRUDEDAREASOLID, IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID, IFCDIRECTRIXCURVESWEPTAREASOLID],
+    1260650574: [IFCSWEPTDISKSOLIDPOLYGONAL],
+    230924584: [IFCSURFACEOFREVOLUTION, IFCSURFACEOFLINEAREXTRUSION],
+    901063453: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET, IFCTESSELLATEDFACESET, IFCINDEXEDPOLYGONALFACEWITHVOIDS, IFCINDEXEDPOLYGONALFACE],
+    4282788508: [IFCTEXTLITERALWITHEXTENT],
+    1628702193: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE, IFCTYPERESOURCE, IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE, IFCTYPEPRODUCT, IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE, IFCTYPEPROCESS],
+    3736923433: [IFCTASKTYPE, IFCPROCEDURETYPE, IFCEVENTTYPE],
+    2347495698: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE, IFCSPATIALELEMENTTYPE, IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE, IFCELEMENTTYPE],
+    3698973494: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE, IFCCONSTRUCTIONRESOURCETYPE],
+    2736907675: [IFCBOOLEANCLIPPINGRESULT],
+    4182860854: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACE, IFCRECTANGULARTRIMMEDSURFACE, IFCCURVEBOUNDEDSURFACE, IFCCURVEBOUNDEDPLANE],
+    574549367: [IFCCARTESIANPOINTLIST3D, IFCCARTESIANPOINTLIST2D],
+    59481748: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR3D, IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM, IFCCARTESIANTRANSFORMATIONOPERATOR2D],
+    3749851601: [IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM],
+    3331915920: [IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM],
+    1383045692: [IFCCIRCLEHOLLOWPROFILEDEF],
+    2485617015: [IFCREPARAMETRISEDCOMPOSITECURVESEGMENT],
+    2574617495: [IFCCONSTRUCTIONPRODUCTRESOURCETYPE, IFCCONSTRUCTIONMATERIALRESOURCETYPE, IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE, IFCSUBCONTRACTRESOURCETYPE, IFCLABORRESOURCETYPE, IFCCREWRESOURCETYPE],
+    3419103109: [IFCPROJECTLIBRARY, IFCPROJECT],
+    2506170314: [IFCBLOCK, IFCSPHERE, IFCRIGHTCIRCULARCYLINDER, IFCRIGHTCIRCULARCONE, IFCRECTANGULARPYRAMID],
+    2601014836: [IFCCIRCLE, IFCELLIPSE, IFCCONIC, IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE, IFCBOUNDEDCURVE, IFCSEAMCURVE, IFCINTERSECTIONCURVE, IFCSURFACECURVE, IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL, IFCSPIRAL, IFCPOLYNOMIALCURVE, IFCPCURVE, IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D, IFCOFFSETCURVE, IFCLINE],
+    593015953: [IFCSURFACECURVESWEPTAREASOLID, IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID, IFCFIXEDREFERENCESWEPTAREASOLID],
+    339256511: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE, IFCELEMENTCOMPONENTTYPE, IFCELEMENTASSEMBLYTYPE, IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE, IFCDISTRIBUTIONELEMENTTYPE, IFCCIVILELEMENTTYPE, IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE, IFCBUILTELEMENTTYPE, IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE, IFCTRANSPORTATIONDEVICETYPE, IFCGEOGRAPHICELEMENTTYPE, IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE, IFCFURNISHINGELEMENTTYPE],
+    2777663545: [IFCCYLINDRICALSURFACE, IFCTOROIDALSURFACE, IFCSPHERICALSURFACE, IFCPLANE],
+    477187591: [IFCEXTRUDEDAREASOLIDTAPERED],
+    2652556860: [IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID],
+    4238390223: [IFCSYSTEMFURNITUREELEMENTTYPE, IFCFURNITURETYPE],
+    178912537: [IFCINDEXEDPOLYGONALFACEWITHVOIDS],
+    1425443689: [IFCFACETEDBREPWITHVOIDS, IFCFACETEDBREP, IFCADVANCEDBREPWITHVOIDS, IFCADVANCEDBREP],
+    3888040117: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY, IFCGROUP, IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM, IFCCONTROL, IFCOCCUPANT, IFCACTOR, IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE, IFCRESOURCE, IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT, IFCPRODUCT, IFCPROCEDURE, IFCEVENT, IFCTASK, IFCPROCESS],
+    590820931: [IFCOFFSETCURVEBYDISTANCES, IFCOFFSETCURVE3D, IFCOFFSETCURVE2D],
+    759155922: [IFCDRAUGHTINGPREDEFINEDCOLOUR],
+    2559016684: [IFCDRAUGHTINGPREDEFINEDCURVEFONT],
+    3967405729: [IFCPERMEABLECOVERINGPROPERTIES, IFCDOORPANELPROPERTIES, IFCDOORLININGPROPERTIES, IFCWINDOWPANELPROPERTIES, IFCWINDOWLININGPROPERTIES, IFCREINFORCEMENTDEFINITIONPROPERTIES],
+    2945172077: [IFCPROCEDURE, IFCEVENT, IFCTASK],
+    4208778838: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT, IFCPOSITIONINGELEMENT, IFCDISTRIBUTIONPORT, IFCPORT, IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT, IFCLINEARELEMENT, IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY, IFCELEMENT, IFCANNOTATION, IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER, IFCSTRUCTURALITEM, IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION, IFCSTRUCTURALACTIVITY, IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT, IFCSPATIALELEMENT],
+    3521284610: [IFCCOMPLEXPROPERTYTEMPLATE, IFCSIMPLEPROPERTYTEMPLATE],
+    3939117080: [IFCRELASSIGNSTORESOURCE, IFCRELASSIGNSTOPRODUCT, IFCRELASSIGNSTOPROCESS, IFCRELASSIGNSTOGROUPBYFACTOR, IFCRELASSIGNSTOGROUP, IFCRELASSIGNSTOCONTROL, IFCRELASSIGNSTOACTOR],
+    1307041759: [IFCRELASSIGNSTOGROUPBYFACTOR],
+    1865459582: [IFCRELASSOCIATESPROFILEDEF, IFCRELASSOCIATESMATERIAL, IFCRELASSOCIATESLIBRARY, IFCRELASSOCIATESDOCUMENT, IFCRELASSOCIATESCONSTRAINT, IFCRELASSOCIATESCLASSIFICATION, IFCRELASSOCIATESAPPROVAL],
+    826625072: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL, IFCRELSPACEBOUNDARY, IFCRELSERVICESBUILDINGS, IFCRELSEQUENCE, IFCRELREFERENCEDINSPATIALSTRUCTURE, IFCRELPOSITIONS, IFCRELINTERFERESELEMENTS, IFCRELFLOWCONTROLELEMENTS, IFCRELFILLSELEMENT, IFCRELCOVERSSPACES, IFCRELCOVERSBLDGELEMENTS, IFCRELCONTAINEDINSPATIALSTRUCTURE, IFCRELCONNECTSWITHECCENTRICITY, IFCRELCONNECTSSTRUCTURALMEMBER, IFCRELCONNECTSSTRUCTURALACTIVITY, IFCRELCONNECTSPORTS, IFCRELCONNECTSPORTTOELEMENT, IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS, IFCRELCONNECTSELEMENTS],
+    1204542856: [IFCRELCONNECTSWITHREALIZINGELEMENTS, IFCRELCONNECTSPATHELEMENTS],
+    1638771189: [IFCRELCONNECTSWITHECCENTRICITY],
+    2551354335: [IFCRELAGGREGATES, IFCRELADHERESTOELEMENT, IFCRELVOIDSELEMENT, IFCRELPROJECTSELEMENT, IFCRELNESTS],
+    693640335: [IFCRELDEFINESBYTYPE, IFCRELDEFINESBYTEMPLATE, IFCRELDEFINESBYPROPERTIES, IFCRELDEFINESBYOBJECT],
+    3451746338: [IFCRELSPACEBOUNDARY2NDLEVEL, IFCRELSPACEBOUNDARY1STLEVEL],
+    3523091289: [IFCRELSPACEBOUNDARY2NDLEVEL],
+    2914609552: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE, IFCCONSTRUCTIONRESOURCE],
+    1856042241: [IFCREVOLVEDAREASOLIDTAPERED],
+    1862484736: [IFCSECTIONEDSOLIDHORIZONTAL],
+    1412071761: [IFCEXTERNALSPATIALELEMENT, IFCEXTERNALSPATIALSTRUCTUREELEMENT, IFCSPATIALZONE, IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY, IFCSPATIALSTRUCTUREELEMENT],
+    710998568: [IFCSPATIALZONETYPE, IFCSPACETYPE, IFCSPATIALSTRUCTUREELEMENTTYPE],
+    2706606064: [IFCSPACE, IFCSITE, IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON, IFCFACILITYPART, IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY, IFCFACILITY, IFCBUILDINGSTOREY],
+    3893378262: [IFCSPACETYPE],
+    2735484536: [IFCSINESPIRAL, IFCSEVENTHORDERPOLYNOMIALSPIRAL, IFCSECONDORDERPOLYNOMIALSPIRAL, IFCCOSINESPIRAL, IFCCLOTHOID, IFCTHIRDORDERPOLYNOMIALSPIRAL],
+    3544373492: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION, IFCSTRUCTURALACTION, IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION, IFCSTRUCTURALREACTION],
+    3136571912: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION, IFCSTRUCTURALCONNECTION, IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER, IFCSTRUCTURALMEMBER],
+    530289379: [IFCSTRUCTURALCURVEMEMBERVARYING, IFCSTRUCTURALCURVEMEMBER, IFCSTRUCTURALSURFACEMEMBERVARYING, IFCSTRUCTURALSURFACEMEMBER],
+    3689010777: [IFCSTRUCTURALPOINTREACTION, IFCSTRUCTURALCURVEREACTION, IFCSTRUCTURALSURFACEREACTION],
+    3979015343: [IFCSTRUCTURALSURFACEMEMBERVARYING],
+    699246055: [IFCSEAMCURVE, IFCINTERSECTIONCURVE],
+    2387106220: [IFCPOLYGONALFACESET, IFCTRIANGULATEDIRREGULARNETWORK, IFCTRIANGULATEDFACESET],
+    3665877780: [IFCTRANSPORTELEMENTTYPE, IFCVEHICLETYPE],
+    2916149573: [IFCTRIANGULATEDIRREGULARNETWORK],
+    2296667514: [IFCOCCUPANT],
+    1635779807: [IFCADVANCEDBREPWITHVOIDS],
+    2887950389: [IFCRATIONALBSPLINESURFACEWITHKNOTS, IFCBSPLINESURFACEWITHKNOTS],
+    167062518: [IFCRATIONALBSPLINESURFACEWITHKNOTS],
+    1260505505: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS, IFCBSPLINECURVE, IFCTRIMMEDCURVE, IFCPOLYLINE, IFCINDEXEDPOLYCURVE, IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE, IFCCOMPOSITECURVE],
+    1626504194: [IFCBUILDINGELEMENTPROXYTYPE, IFCBEARINGTYPE, IFCBEAMTYPE, IFCWINDOWTYPE, IFCWALLTYPE, IFCTRACKELEMENTTYPE, IFCSTAIRTYPE, IFCSTAIRFLIGHTTYPE, IFCSLABTYPE, IFCSHADINGDEVICETYPE, IFCROOFTYPE, IFCRAMPTYPE, IFCRAMPFLIGHTTYPE, IFCRAILINGTYPE, IFCRAILTYPE, IFCPLATETYPE, IFCPAVEMENTTYPE, IFCNAVIGATIONELEMENTTYPE, IFCMOORINGDEVICETYPE, IFCMEMBERTYPE, IFCKERBTYPE, IFCFOOTINGTYPE, IFCDOORTYPE, IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE, IFCDEEPFOUNDATIONTYPE, IFCCURTAINWALLTYPE, IFCCOVERINGTYPE, IFCCOURSETYPE, IFCCOLUMNTYPE, IFCCHIMNEYTYPE],
+    3732776249: [IFCSEGMENTEDREFERENCECURVE, IFCGRADIENTCURVE, IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE, IFCCOMPOSITECURVEONSURFACE],
+    15328376: [IFCOUTERBOUNDARYCURVE, IFCBOUNDARYCURVE],
+    2510884976: [IFCCIRCLE, IFCELLIPSE],
+    2559216714: [IFCCONSTRUCTIONPRODUCTRESOURCE, IFCCONSTRUCTIONMATERIALRESOURCE, IFCCONSTRUCTIONEQUIPMENTRESOURCE, IFCSUBCONTRACTRESOURCE, IFCLABORRESOURCE, IFCCREWRESOURCE],
+    3293443760: [IFCACTIONREQUEST, IFCWORKSCHEDULE, IFCWORKPLAN, IFCWORKCONTROL, IFCWORKCALENDAR, IFCPROJECTORDER, IFCPERMIT, IFCPERFORMANCEHISTORY, IFCCOSTSCHEDULE, IFCCOSTITEM],
+    1306400036: [IFCCAISSONFOUNDATIONTYPE, IFCPILETYPE],
+    3256556792: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE, IFCDISTRIBUTIONCONTROLELEMENTTYPE, IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE, IFCDISTRIBUTIONFLOWELEMENTTYPE],
+    3849074793: [IFCDISTRIBUTIONCHAMBERELEMENTTYPE, IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE, IFCFLOWTREATMENTDEVICETYPE, IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE, IFCFLOWTERMINALTYPE, IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE, IFCFLOWSTORAGEDEVICETYPE, IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE, IFCFLOWSEGMENTTYPE, IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE, IFCFLOWMOVINGDEVICETYPE, IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE, IFCFLOWFITTINGTYPE, IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE, IFCFLOWCONTROLLERTYPE, IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE, IFCENERGYCONVERSIONDEVICETYPE],
+    1758889154: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT, IFCDISTRIBUTIONELEMENT, IFCCIVILELEMENT, IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY, IFCBUILTELEMENT, IFCVIRTUALELEMENT, IFCTRANSPORTELEMENT, IFCVEHICLE, IFCTRANSPORTATIONDEVICE, IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM, IFCGEOTECHNICALELEMENT, IFCGEOGRAPHICELEMENT, IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE, IFCFURNISHINGELEMENT, IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION, IFCFEATUREELEMENT, IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER, IFCELEMENTCOMPONENT, IFCELEMENTASSEMBLY],
+    1623761950: [IFCDISCRETEACCESSORY, IFCBUILDINGELEMENTPART, IFCVIBRATIONISOLATOR, IFCVIBRATIONDAMPER, IFCSIGN, IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH, IFCREINFORCINGELEMENT, IFCMECHANICALFASTENER, IFCIMPACTPROTECTIONDEVICE, IFCFASTENER],
+    2590856083: [IFCDISCRETEACCESSORYTYPE, IFCBUILDINGELEMENTPARTTYPE, IFCVIBRATIONISOLATORTYPE, IFCVIBRATIONDAMPERTYPE, IFCSIGNTYPE, IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE, IFCREINFORCINGELEMENTTYPE, IFCMECHANICALFASTENERTYPE, IFCIMPACTPROTECTIONDEVICETYPE, IFCFASTENERTYPE],
+    2107101300: [IFCELECTRICMOTORTYPE, IFCELECTRICGENERATORTYPE, IFCCOOLINGTOWERTYPE, IFCCOOLEDBEAMTYPE, IFCCONDENSERTYPE, IFCCOILTYPE, IFCCHILLERTYPE, IFCBURNERTYPE, IFCBOILERTYPE, IFCAIRTOAIRHEATRECOVERYTYPE, IFCUNITARYEQUIPMENTTYPE, IFCTUBEBUNDLETYPE, IFCTRANSFORMERTYPE, IFCSOLARDEVICETYPE, IFCMOTORCONNECTIONTYPE, IFCHUMIDIFIERTYPE, IFCHEATEXCHANGERTYPE, IFCEVAPORATORTYPE, IFCEVAPORATIVECOOLERTYPE, IFCENGINETYPE],
+    2853485674: [IFCEXTERNALSPATIALELEMENT],
+    807026263: [IFCFACETEDBREPWITHVOIDS],
+    24185140: [IFCBUILDING, IFCBRIDGE, IFCROAD, IFCRAILWAY, IFCMARINEFACILITY],
+    1310830890: [IFCBRIDGEPART, IFCROADPART, IFCRAILWAYPART, IFCMARINEPART, IFCFACILITYPARTCOMMON],
+    2827207264: [IFCSURFACEFEATURE, IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT, IFCFEATUREELEMENTSUBTRACTION, IFCPROJECTIONELEMENT, IFCFEATUREELEMENTADDITION],
+    2143335405: [IFCPROJECTIONELEMENT],
+    1287392070: [IFCEARTHWORKSCUT, IFCVOIDINGFEATURE, IFCOPENINGELEMENT],
+    3907093117: [IFCELECTRICTIMECONTROLTYPE, IFCELECTRICDISTRIBUTIONBOARDTYPE, IFCDISTRIBUTIONBOARDTYPE, IFCDAMPERTYPE, IFCAIRTERMINALBOXTYPE, IFCVALVETYPE, IFCSWITCHINGDEVICETYPE, IFCPROTECTIVEDEVICETYPE, IFCFLOWMETERTYPE],
+    3198132628: [IFCDUCTFITTINGTYPE, IFCCABLEFITTINGTYPE, IFCCABLECARRIERFITTINGTYPE, IFCPIPEFITTINGTYPE, IFCJUNCTIONBOXTYPE],
+    1482959167: [IFCFANTYPE, IFCCOMPRESSORTYPE, IFCPUMPTYPE],
+    1834744321: [IFCDUCTSEGMENTTYPE, IFCCONVEYORSEGMENTTYPE, IFCCABLESEGMENTTYPE, IFCCABLECARRIERSEGMENTTYPE, IFCPIPESEGMENTTYPE],
+    1339347760: [IFCELECTRICFLOWSTORAGEDEVICETYPE, IFCTANKTYPE],
+    2297155007: [IFCFIRESUPPRESSIONTERMINALTYPE, IFCELECTRICAPPLIANCETYPE, IFCCOMMUNICATIONSAPPLIANCETYPE, IFCAUDIOVISUALAPPLIANCETYPE, IFCAIRTERMINALTYPE, IFCWASTETERMINALTYPE, IFCSTACKTERMINALTYPE, IFCSPACEHEATERTYPE, IFCSIGNALTYPE, IFCSANITARYTERMINALTYPE, IFCOUTLETTYPE, IFCMOBILETELECOMMUNICATIONSAPPLIANCETYPE, IFCMEDICALDEVICETYPE, IFCLIQUIDTERMINALTYPE, IFCLIGHTFIXTURETYPE, IFCLAMPTYPE],
+    3009222698: [IFCFILTERTYPE, IFCELECTRICFLOWTREATMENTDEVICETYPE, IFCDUCTSILENCERTYPE, IFCINTERCEPTORTYPE],
+    263784265: [IFCSYSTEMFURNITUREELEMENT, IFCFURNITURE],
+    4230923436: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE, IFCGEOTECHNICALASSEMBLY, IFCGEOTECHNICALSTRATUM],
+    2706460486: [IFCASSET, IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE, IFCSYSTEM, IFCSTRUCTURALRESULTGROUP, IFCSTRUCTURALLOADCASE, IFCSTRUCTURALLOADGROUP, IFCINVENTORY],
+    2176059722: [IFCALIGNMENTVERTICAL, IFCALIGNMENTSEGMENT, IFCALIGNMENTHORIZONTAL, IFCALIGNMENTCANT],
+    3740093272: [IFCDISTRIBUTIONPORT],
+    1946335990: [IFCALIGNMENT, IFCLINEARPOSITIONINGELEMENT, IFCGRID, IFCREFERENT],
+    3027567501: [IFCREINFORCINGBAR, IFCTENDONCONDUIT, IFCTENDONANCHOR, IFCTENDON, IFCREINFORCINGMESH],
+    964333572: [IFCREINFORCINGBARTYPE, IFCTENDONTYPE, IFCTENDONCONDUITTYPE, IFCTENDONANCHORTYPE, IFCREINFORCINGMESHTYPE],
+    682877961: [IFCSTRUCTURALPLANARACTION, IFCSTRUCTURALSURFACEACTION, IFCSTRUCTURALPOINTACTION, IFCSTRUCTURALLINEARACTION, IFCSTRUCTURALCURVEACTION],
+    1179482911: [IFCSTRUCTURALSURFACECONNECTION, IFCSTRUCTURALPOINTCONNECTION, IFCSTRUCTURALCURVECONNECTION],
+    1004757350: [IFCSTRUCTURALLINEARACTION],
+    214636428: [IFCSTRUCTURALCURVEMEMBERVARYING],
+    1252848954: [IFCSTRUCTURALLOADCASE],
+    3657597509: [IFCSTRUCTURALPLANARACTION],
+    2254336722: [IFCSTRUCTURALANALYSISMODEL, IFCDISTRIBUTIONCIRCUIT, IFCDISTRIBUTIONSYSTEM, IFCBUILTSYSTEM, IFCBUILDINGSYSTEM, IFCZONE],
+    1953115116: [IFCTRANSPORTELEMENT, IFCVEHICLE],
+    1028945134: [IFCWORKSCHEDULE, IFCWORKPLAN],
+    1967976161: [IFCRATIONALBSPLINECURVEWITHKNOTS, IFCBSPLINECURVEWITHKNOTS],
+    2461110595: [IFCRATIONALBSPLINECURVEWITHKNOTS],
+    1136057603: [IFCOUTERBOUNDARYCURVE],
+    1876633798: [IFCBUILDINGELEMENTPROXY, IFCBEARING, IFCBEAM, IFCWINDOW, IFCWALLSTANDARDCASE, IFCWALL, IFCTRACKELEMENT, IFCSTAIRFLIGHT, IFCSTAIR, IFCSLAB, IFCSHADINGDEVICE, IFCROOF, IFCRAMPFLIGHT, IFCRAMP, IFCRAILING, IFCRAIL, IFCPLATE, IFCPAVEMENT, IFCNAVIGATIONELEMENT, IFCMOORINGDEVICE, IFCMEMBER, IFCKERB, IFCFOOTING, IFCREINFORCEDSOIL, IFCEARTHWORKSFILL, IFCEARTHWORKSELEMENT, IFCDOOR, IFCCAISSONFOUNDATION, IFCPILE, IFCDEEPFOUNDATION, IFCCURTAINWALL, IFCCOVERING, IFCCOURSE, IFCCOLUMN, IFCCHIMNEY],
+    3426335179: [IFCCAISSONFOUNDATION, IFCPILE],
+    2063403501: [IFCCONTROLLERTYPE, IFCALARMTYPE, IFCACTUATORTYPE, IFCUNITARYCONTROLELEMENTTYPE, IFCSENSORTYPE, IFCPROTECTIVEDEVICETRIPPINGUNITTYPE, IFCFLOWINSTRUMENTTYPE],
+    1945004755: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT, IFCDISTRIBUTIONCONTROLELEMENT, IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE, IFCDISTRIBUTIONFLOWELEMENT],
+    3040386961: [IFCDISTRIBUTIONCHAMBERELEMENT, IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR, IFCFLOWTREATMENTDEVICE, IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP, IFCFLOWTERMINAL, IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK, IFCFLOWSTORAGEDEVICE, IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT, IFCFLOWSEGMENT, IFCFAN, IFCCOMPRESSOR, IFCPUMP, IFCFLOWMOVINGDEVICE, IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX, IFCFLOWFITTING, IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER, IFCFLOWCONTROLLER, IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE, IFCENERGYCONVERSIONDEVICE],
+    3205830791: [IFCDISTRIBUTIONCIRCUIT],
+    1077100507: [IFCREINFORCEDSOIL, IFCEARTHWORKSFILL],
+    1658829314: [IFCELECTRICMOTOR, IFCELECTRICGENERATOR, IFCCOOLINGTOWER, IFCCOOLEDBEAM, IFCCONDENSER, IFCCOIL, IFCCHILLER, IFCBURNER, IFCBOILER, IFCAIRTOAIRHEATRECOVERY, IFCUNITARYEQUIPMENT, IFCTUBEBUNDLE, IFCTRANSFORMER, IFCSOLARDEVICE, IFCMOTORCONNECTION, IFCHUMIDIFIER, IFCHEATEXCHANGER, IFCEVAPORATOR, IFCEVAPORATIVECOOLER, IFCENGINE],
+    2058353004: [IFCELECTRICTIMECONTROL, IFCELECTRICDISTRIBUTIONBOARD, IFCDISTRIBUTIONBOARD, IFCDAMPER, IFCAIRTERMINALBOX, IFCVALVE, IFCSWITCHINGDEVICE, IFCPROTECTIVEDEVICE, IFCFLOWMETER],
+    4278956645: [IFCDUCTFITTING, IFCCABLEFITTING, IFCCABLECARRIERFITTING, IFCPIPEFITTING, IFCJUNCTIONBOX],
+    3132237377: [IFCFAN, IFCCOMPRESSOR, IFCPUMP],
+    987401354: [IFCDUCTSEGMENT, IFCCONVEYORSEGMENT, IFCCABLESEGMENT, IFCCABLECARRIERSEGMENT, IFCPIPESEGMENT],
+    707683696: [IFCELECTRICFLOWSTORAGEDEVICE, IFCTANK],
+    2223149337: [IFCFIRESUPPRESSIONTERMINAL, IFCELECTRICAPPLIANCE, IFCCOMMUNICATIONSAPPLIANCE, IFCAUDIOVISUALAPPLIANCE, IFCAIRTERMINAL, IFCWASTETERMINAL, IFCSTACKTERMINAL, IFCSPACEHEATER, IFCSIGNAL, IFCSANITARYTERMINAL, IFCOUTLET, IFCMOBILETELECOMMUNICATIONSAPPLIANCE, IFCMEDICALDEVICE, IFCLIQUIDTERMINAL, IFCLIGHTFIXTURE, IFCLAMP],
+    3508470533: [IFCFILTER, IFCELECTRICFLOWTREATMENTDEVICE, IFCDUCTSILENCER, IFCINTERCEPTOR],
+    2713699986: [IFCGEOSLICE, IFCGEOMODEL, IFCBOREHOLE],
+    1154579445: [IFCALIGNMENT],
+    2391406946: [IFCWALLSTANDARDCASE],
+    1062813311: [IFCCONTROLLER, IFCALARM, IFCACTUATOR, IFCUNITARYCONTROLELEMENT, IFCSENSOR, IFCPROTECTIVEDEVICETRIPPINGUNIT, IFCFLOWINSTRUMENT]
+  };
+  InversePropertyDef[3] = {
+    3630933823: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    618182010: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    411424972: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    130549933: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["ApprovedObjects", IFCRELASSOCIATESAPPROVAL, 5, true], ["ApprovedResources", IFCRESOURCEAPPROVALRELATIONSHIP, 3, true], ["IsRelatedWith", IFCAPPROVALRELATIONSHIP, 3, true], ["Relates", IFCAPPROVALRELATIONSHIP, 2, true]],
+    1959218052: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],
+    1466758467: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]],
+    602808272: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    3200245327: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],
+    2242383968: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],
+    1040185647: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],
+    3548104201: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true]],
+    852622518: [["PartOfW", IFCGRID, 9, true], ["PartOfV", IFCGRID, 8, true], ["PartOfU", IFCGRID, 7, true], ["HasIntersections", IFCVIRTUALGRIDINTERSECTION, 0, true]],
+    2655187982: [["LibraryInfoForObjects", IFCRELASSOCIATESLIBRARY, 5, true], ["HasLibraryReferences", IFCLIBRARYREFERENCE, 5, true]],
+    3452421091: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["LibraryRefForObjects", IFCRELASSOCIATESLIBRARY, 5, true]],
+    760658860: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]],
+    248100487: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]],
+    3303938423: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]],
+    1847252529: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialLayerSet", IFCMATERIALLAYERSET, 0, false]],
+    2235152071: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]],
+    164193824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]],
+    552965576: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialProfileSet", IFCMATERIALPROFILESET, 2, false]],
+    1507914824: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]],
+    3368373690: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],
+    3701648758: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]],
+    2251480897: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PropertiesForConstraint", IFCRESOURCECONSTRAINTRELATIONSHIP, 2, true]],
+    4251960020: [["IsRelatedBy", IFCORGANIZATIONRELATIONSHIP, 3, true], ["Relates", IFCORGANIZATIONRELATIONSHIP, 2, true], ["Engages", IFCPERSONANDORGANIZATION, 1, true]],
+    2077209135: [["EngagedIn", IFCPERSONANDORGANIZATION, 0, true]],
+    2483315170: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2226359599: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    3355820592: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    3958567839: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    3843373140: [["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]],
+    986844984: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    3710013099: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2044713172: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2093928680: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    931644368: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2691318326: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    3252649465: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    2405470396: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    825690147: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    1076942058: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    3377609919: [["RepresentationsInContext", IFCREPRESENTATION, 0, true]],
+    3008791417: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1660063152: [["HasShapeAspects", IFCSHAPEASPECT, 4, true], ["MapUsage", IFCMAPPEDITEM, 0, true]],
+    867548509: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    3982875396: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    4240577450: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    2830218821: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    3958052878: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3049322572: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true]],
+    626085974: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]],
+    912023232: [["OfPerson", IFCPERSON, 7, true], ["OfOrganization", IFCORGANIZATION, 4, true]],
+    222769930: [["ToTexMap", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]],
+    1010789467: [["ToTexMap", IFCINDEXEDPOLYGONALTEXTUREMAP, 3, false]],
+    3101149627: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    1377556343: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1735638870: [["RepresentationMap", IFCREPRESENTATIONMAP, 1, true], ["LayerAssignments", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["OfProductRepresentation", IFCPRODUCTREPRESENTATION, 2, true], ["OfShapeAspect", IFCSHAPEASPECT, 0, true]],
+    2799835756: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1907098498: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3798115385: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1310608509: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2705031697: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    616511568: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]],
+    3150382593: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    747523909: [["ClassificationForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]],
+    647927063: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["ClassificationRefForObjects", IFCRELASSOCIATESCLASSIFICATION, 5, true], ["HasReferences", IFCCLASSIFICATIONREFERENCE, 3, true]],
+    1485152156: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    370225590: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3050246964: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2889183280: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2713554722: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    3632507154: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1154170062: [["DocumentInfoForObjects", IFCRELASSOCIATESDOCUMENT, 5, true], ["HasDocumentReferences", IFCDOCUMENTREFERENCE, 4, true], ["IsPointedTo", IFCDOCUMENTINFORMATIONRELATIONSHIP, 3, true], ["IsPointer", IFCDOCUMENTINFORMATIONRELATIONSHIP, 2, true]],
+    3732053477: [["ExternalReferenceForResources", IFCEXTERNALREFERENCERELATIONSHIP, 2, true], ["DocumentRefForObjects", IFCRELASSOCIATESDOCUMENT, 5, true]],
+    3900360178: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    476780140: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    297599258: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2556980723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]],
+    1809719519: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    803316827: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3008276851: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]],
+    3448662350: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]],
+    2453401579: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4142052618: [["RepresentationsInContext", IFCREPRESENTATION, 0, true], ["HasSubContexts", IFCGEOMETRICREPRESENTATIONSUBCONTEXT, 6, true], ["HasCoordinateOperation", IFCCOORDINATEOPERATION, 0, true]],
+    3590301190: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    178086475: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]],
+    812098782: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3905492369: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]],
+    3741457305: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    1402838566: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    125510826: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2604431987: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4266656042: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1520743889: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3422422726: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    388784114: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]],
+    2624227202: [["PlacesObject", IFCPRODUCT, 5, true], ["ReferencedByPlacements", IFCOBJECTPLACEMENT, 0, true]],
+    1008929658: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2347385850: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1838606355: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["HasRepresentation", IFCMATERIALDEFINITIONREPRESENTATION, 3, true], ["IsRelatedWith", IFCMATERIALRELATIONSHIP, 3, true], ["RelatesTo", IFCMATERIALRELATIONSHIP, 2, true]],
+    3708119e3: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true], ["ToMaterialConstituentSet", IFCMATERIALCONSTITUENTSET, 2, false]],
+    2852063980: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true], ["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCMATERIALPROPERTIES, 3, true]],
+    1303795690: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]],
+    3079605661: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]],
+    3404854881: [["AssociatedTo", IFCRELASSOCIATESMATERIAL, 5, true]],
+    3265635763: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2998442950: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    219451334: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]],
+    182550632: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2665983363: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1029017970: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2529465313: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2519244187: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3021840470: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfComplex", IFCPHYSICALCOMPLEXQUANTITY, 2, true]],
+    597895409: [["IsMappedBy", IFCTEXTURECOORDINATE, 0, true], ["UsedInStyles", IFCSURFACESTYLEWITHTEXTURES, 0, true]],
+    2004835150: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1663979128: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2067069095: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2165702409: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4022376103: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1423911732: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2924175390: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2775532180: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3778827333: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    673634403: [["ShapeOfProduct", IFCPRODUCT, 6, true], ["HasShapeAspects", IFCSHAPEASPECT, 4, true]],
+    2802850158: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2598011224: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    1680319473: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]],
+    3357820518: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    1482703590: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true]],
+    2090586900: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    3615266464: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    3413951693: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    1580146022: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    2778083089: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2042790032: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    4165799628: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true]],
+    1509187699: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    823603102: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]],
+    4124623270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3692461612: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    723233188: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2233826070: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2513912981: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2247615214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1260650574: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1096409881: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    230924584: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3071757647: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    901063453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4282788508: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3124975700: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2715220739: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1628702193: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true]],
+    3736923433: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2347495698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3698973494: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    427810014: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1417489154: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2759199220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2543172580: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    3406155212: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasTextureMaps", IFCTEXTUREMAP, 2, true]],
+    669184980: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3207858831: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    4261334040: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3125803723: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2740243338: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3425423356: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2736907675: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4182860854: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2581212453: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2713105998: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2898889636: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    1123145078: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    574549367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1675464909: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2059837836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    59481748: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3749851601: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3486308946: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3331915920: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1416205885: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1383045692: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2205249479: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2542286263: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    2485617015: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]],
+    2574617495: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    3419103109: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]],
+    1815067380: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    2506170314: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2147822146: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2601014836: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2827736869: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2629017746: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4212018352: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]],
+    32440307: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    593015953: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1472233963: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1883228015: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    339256511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2777663545: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2835456948: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    4024345920: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    477187591: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2804161546: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2047409740: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    374418227: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    315944413: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2652556860: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4238390223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1268542332: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4095422895: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    987898635: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1484403080: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    178912537: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true], ["HasTexCoords", IFCTEXTURECOORDINATEINDICES, 1, true]],
+    2294589976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["ToFaceSet", IFCPOLYGONALFACESET, 2, true], ["HasTexCoords", IFCTEXTURECOORDINATEINDICES, 1, true]],
+    572779678: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    428585644: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1281925730: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1425443689: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3888040117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true]],
+    590820931: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3388369263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3505215534: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2485787929: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1682466193: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    603570806: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    220341763: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3381221214: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3967405729: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    569719735: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2945172077: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    4208778838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    103090709: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]],
+    653396225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Declares", IFCRELDECLARES, 4, true]],
+    871118103: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    4166981789: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    2752243245: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    941946838: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    1451395588: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    492091185: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Defines", IFCRELDEFINESBYTEMPLATE, 5, true]],
+    3650150729: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    110355661: [["HasExternalReferences", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["PartOfPset", IFCPROPERTYSET, 4, true], ["PropertyForDependance", IFCPROPERTYDEPENDENCYRELATIONSHIP, 2, true], ["PropertyDependsOn", IFCPROPERTYDEPENDENCYRELATIONSHIP, 3, true], ["PartOfComplex", IFCCOMPLEXPROPERTY, 3, true], ["HasConstraints", IFCRESOURCECONSTRAINTRELATIONSHIP, 3, true], ["HasApprovals", IFCRESOURCEAPPROVALRELATIONSHIP, 2, true]],
+    3521284610: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]],
+    2770003689: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    2798486643: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3454111270: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3765753017: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    3523091289: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true]],
+    1521410863: [["InnerBoundaries", IFCRELSPACEBOUNDARY1STLEVEL, 9, true], ["Corresponds", IFCRELSPACEBOUNDARY2NDLEVEL, 10, true]],
+    816062949: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["UsingCurves", IFCCOMPOSITECURVE, 0, true]],
+    2914609552: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1856042241: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3243963512: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4158566097: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3626867408: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1862484736: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1290935644: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1356537516: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3663146110: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]],
+    1412071761: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    710998568: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2706606064: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    3893378262: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    463610769: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    2481509218: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    451544542: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4015995234: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2735484536: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3544373492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    3136571912: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true]],
+    530289379: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    3689010777: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    3979015343: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    2218152070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    603775116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    4095615324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    699246055: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2028607225: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2809605785: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4124788165: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1580310250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3473067441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    3206491090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2387106220: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]],
+    782932809: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1935646853: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3665877780: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2916149573: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]],
+    1229763772: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]],
+    3651464721: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    336235671: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    512836454: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    2296667514: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]],
+    1635779807: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2603310189: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1674181508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true]],
+    2887950389: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    167062518: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1334484129: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3649129432: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1260505505: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3124254112: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    1626504194: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2197970202: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2937912522: [["HasExternalReference", IFCEXTERNALREFERENCERELATIONSHIP, 3, true], ["HasProperties", IFCPROFILEPROPERTIES, 3, true]],
+    3893394355: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3497074424: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    300633059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3875453745: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["PartOfComplexTemplate", IFCCOMPLEXPROPERTYTEMPLATE, 6, true], ["PartOfPsetTemplate", IFCPROPERTYSETTEMPLATE, 6, true]],
+    3732776249: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    15328376: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2510884976: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2185764099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    4105962743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1525564444: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    2559216714: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    3293443760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    2000195564: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3895139033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1419761937: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    4189326743: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1916426348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3295246426: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1457835157: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1213902940: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1306400036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4234616927: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3256556792: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3849074793: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2963535650: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    1714330368: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    2323601079: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1758889154: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    4123344466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2397081782: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1623761950: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2590856083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1704287377: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2107101300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    132023988: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3174744832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3390157468: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4148101412: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2853485674: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    807026263: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3737207727: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    24185140: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    1310830890: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    4228831410: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    647756555: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2489546625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2827207264: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2143335405: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]],
+    1287392070: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    3907093117: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3198132628: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3815607619: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1482959167: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1834744321: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1339347760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2297155007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3009222698: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1893162501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    263784265: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1509553395: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3493046030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    4230923436: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1594536857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2898700619: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2706460486: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    1251058090: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1806887404: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2568555532: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3948183225: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2571569899: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3946677679: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3113134337: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2391368822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    4288270099: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    679976338: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3827777499: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1051575348: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1161773419: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2176059722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    1770583370: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    525669439: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    976884017: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    377706215: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2108223431: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1114901282: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3181161470: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1950438474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    710110818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    977012517: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    506776471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4143007308: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsActingUpon", IFCRELASSIGNSTOACTOR, 6, true]],
+    3588315303: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false], ["HasFillings", IFCRELFILLSELEMENT, 4, true]],
+    2837617999: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    514975943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2382730787: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3566463478: [["HasContext", IFCRELDECLARES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["DefinesType", IFCTYPEOBJECT, 5, true], ["IsDefinedBy", IFCRELDEFINESBYTEMPLATE, 4, true], ["DefinesOccurrence", IFCRELDEFINESBYPROPERTIES, 5, true]],
+    3327091369: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1158309216: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    804291784: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4231323485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4017108033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2839578677: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true], ["HasColours", IFCINDEXEDCOLOURMAP, 0, true], ["HasTextures", IFCINDEXEDTEXTUREMAP, 1, true]],
+    3724593414: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3740093272: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]],
+    1946335990: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]],
+    2744685151: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsPredecessorTo", IFCRELSEQUENCE, 4, true], ["IsSuccessorFrom", IFCRELSEQUENCE, 5, true], ["OperatesOn", IFCRELASSIGNSTOPROCESS, 6, true]],
+    2904328755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3651124850: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["ProjectsElements", IFCRELPROJECTSELEMENT, 5, false]],
+    1842657554: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2250791053: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1763565496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2893384427: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3992365140: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    1891881377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    2324767716: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1469900589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    683857671: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4021432810: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]],
+    3027567501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    964333572: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2320036040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2310774935: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    146592293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    550521510: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    2781568857: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1768891740: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2157484638: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3649235739: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    544395925: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1027922057: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4074543187: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    33720170: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3599934289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1894708472: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    42703149: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    4097777520: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    2533589738: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1072016465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3856911033: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasCoverings", IFCRELCOVERSSPACES, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]],
+    1305183839: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3812236995: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3112655638: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1039846685: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    338393293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    682877961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1179482911: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    1004757350: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    4243806635: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    214636428: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    2445595289: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectedBy", IFCRELCONNECTSSTRUCTURALMEMBER, 4, true]],
+    2757150158: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1807405624: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1252848954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]],
+    2082059205: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    734778138: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    1235345126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    2986769608: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ResultGroupFor", IFCSTRUCTURALANALYSISMODEL, 8, true]],
+    3657597509: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1975003073: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedStructuralActivity", IFCRELCONNECTSSTRUCTURALACTIVITY, 4, true], ["ConnectsStructuralMembers", IFCRELCONNECTSSTRUCTURALMEMBER, 5, true]],
+    148013059: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    3101698114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["AdheresToElement", IFCRELADHERESTOELEMENT, 5, false]],
+    2315554128: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2254336722: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    413509423: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    5716631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3824725483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2347447852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3081323446: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3663046924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2281632017: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2415094496: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    618700268: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1692211062: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2097647324: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1953115116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3593883385: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1600972822: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1911125066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    728799441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    840318589: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1530820697: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3956297820: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2391383451: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3313531582: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2769231204: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    926996030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    1898987631: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1133259667: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4009809668: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4088093105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1028945134: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    4218914973: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    3342526732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1033361043: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    3821786052: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["Controls", IFCRELASSIGNSTOCONTROL, 6, true]],
+    1411407467: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3352864051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1871374353: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4266260250: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    1545765605: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    317615605: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    1662888072: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    3460190687: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    1532957894: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1967976161: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    2461110595: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    819618141: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3649138523: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    231477066: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1136057603: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    644574406: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    963979645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    4031249490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true]],
+    2979338954: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    39481116: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1909888760: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1177604601: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    1876633798: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3862327254: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    2188180465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    395041908: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3293546465: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2674252688: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1285652485: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3203706013: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2951183804: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3296154744: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2611217952: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    1677625105: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2301859152: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    843113511: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    400855858: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3850581409: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2816379211: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3898045240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    1060000209: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    488727124: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ResourceOf", IFCRELASSIGNSTORESOURCE, 6, true]],
+    2940368186: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    335055490: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2954562838: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1502416096: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1973544240: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["CoversSpaces", IFCRELCOVERSSPACES, 5, true], ["CoversElements", IFCRELCOVERSBLDGELEMENTS, 5, true]],
+    3495092785: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3961806047: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3426335179: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1335981549: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2635815018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    479945903: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1599208980: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2063403501: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1945004755: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true]],
+    3040386961: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3041715199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedIn", IFCRELCONNECTSPORTTOELEMENT, 4, true], ["ConnectedFrom", IFCRELCONNECTSPORTS, 5, true], ["ConnectedTo", IFCRELCONNECTSPORTS, 4, true]],
+    3205830791: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    395920057: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    869906466: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3760055223: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2030761528: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3071239417: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["VoidsElements", IFCRELVOIDSELEMENT, 5, false]],
+    1077100507: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3376911765: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    663422040: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2417008758: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3277789161: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2142170206: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1534661035: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1217240411: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    712377611: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1658829314: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2814081492: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3747195512: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    484807127: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1209101575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainsElements", IFCRELCONTAINEDINSPATIALSTRUCTURE, 5, true], ["ServicedBySystems", IFCRELSERVICESBUILDINGS, 5, true], ["ReferencesElements", IFCRELREFERENCEDINSPATIALSTRUCTURE, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["BoundedBy", IFCRELSPACEBOUNDARY, 4, true]],
+    346874300: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1810631287: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4222183408: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2058353004: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4278956645: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4037862832: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2188021234: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3132237377: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    987401354: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    707683696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2223149337: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3508470533: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    900683007: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2713699986: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3009204131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]],
+    3319311131: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2068733104: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4175244083: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2176052936: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2696325953: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    76236018: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    629592764: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1154579445: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]],
+    1638804497: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1437502449: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1073191201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2078563270: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    234836483: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2474470126: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2182337498: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    144952367: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3694346114: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1383356374: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1687234759: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    310824031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3612865200: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3171933400: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    738039164: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    655969474: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    90941305: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3290496277: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2262370178: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3024970846: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3283111854: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1232101972: [["LayerAssignment", IFCPRESENTATIONLAYERASSIGNMENT, 2, true], ["StyledByItem", IFCSTYLEDITEM, 0, true]],
+    3798194928: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    979691226: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2572171363: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    2016517767: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3053780830: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1783015770: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1329646415: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    991950508: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1529196076: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3420628829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1999602285: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1404847402: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    331165859: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    4252922144: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2515109513: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    385403989: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["SourceOfResultGroup", IFCSTRUCTURALRESULTGROUP, 6, true], ["LoadGroupFor", IFCSTRUCTURALANALYSISMODEL, 7, true]],
+    1621171031: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["AssignedToStructuralItem", IFCRELCONNECTSSTRUCTURALACTIVITY, 5, true]],
+    1162798199: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    812556717: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3425753595: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3825984169: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1620046519: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3026737570: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3179687236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    4292641817: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4207607924: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2391406946: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3512223829: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    4237592921: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3304561284: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2874132201: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    1634111441: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    177149247: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2056796094: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3001207471: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    325726236: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["Positions", IFCRELPOSITIONS, 4, true]],
+    277319702: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    753842376: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    4196446775: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    32344328: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3314249567: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1095909175: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2938176219: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    635142910: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3758799889: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1051757585: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4217484030: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3999819293: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    3902619387: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    639361253: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3221913625: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3571504051: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    2272882330: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    578613899: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["Types", IFCRELDEFINESBYTYPE, 5, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true]],
+    3460952963: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4136498852: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3640358203: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    4074379575: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3693000487: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1052013943: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    562808652: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["IsGroupedBy", IFCRELASSIGNSTOGROUP, 6, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["ServicesBuildings", IFCRELSERVICESBUILDINGS, 4, true], ["ServicesFacilities", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true]],
+    1062813311: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    342316401: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3518393246: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1360408905: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1904799276: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    862014818: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3310460725: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    24726584: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    264262732: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    402227799: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1003880860: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    3415622556: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    819412036: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    1426591983: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["HasControlElements", IFCRELFLOWCONTROLELEMENTS, 5, true]],
+    182646315: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    2680139844: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    1971632696: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true]],
+    2295281155: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    4086658281: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    630975310: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    4288193352: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    3087945054: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]],
+    25142252: [["HasAssignments", IFCRELASSIGNS, 4, true], ["Nests", IFCRELNESTS, 5, true], ["IsNestedBy", IFCRELNESTS, 4, true], ["HasContext", IFCRELDECLARES, 5, true], ["IsDecomposedBy", IFCRELAGGREGATES, 4, true], ["Decomposes", IFCRELAGGREGATES, 5, true], ["HasAssociations", IFCRELASSOCIATES, 4, true], ["IsDeclaredBy", IFCRELDEFINESBYOBJECT, 4, true], ["Declares", IFCRELDEFINESBYOBJECT, 5, true], ["IsTypedBy", IFCRELDEFINESBYTYPE, 4, true], ["IsDefinedBy", IFCRELDEFINESBYPROPERTIES, 4, true], ["ReferencedBy", IFCRELASSIGNSTOPRODUCT, 6, true], ["PositionedRelativeTo", IFCRELPOSITIONS, 5, true], ["ReferencedInStructures", IFCRELREFERENCEDINSPATIALSTRUCTURE, 4, true], ["FillsVoids", IFCRELFILLSELEMENT, 5, true], ["ConnectedTo", IFCRELCONNECTSELEMENTS, 5, true], ["IsInterferedByElements", IFCRELINTERFERESELEMENTS, 5, true], ["InterferesElements", IFCRELINTERFERESELEMENTS, 4, true], ["HasProjections", IFCRELPROJECTSELEMENT, 4, true], ["HasOpenings", IFCRELVOIDSELEMENT, 4, true], ["IsConnectionRealization", IFCRELCONNECTSWITHREALIZINGELEMENTS, 7, true], ["ProvidesBoundaries", IFCRELSPACEBOUNDARY, 5, true], ["ConnectedFrom", IFCRELCONNECTSELEMENTS, 6, true], ["ContainedInStructure", IFCRELCONTAINEDINSPATIALSTRUCTURE, 4, true], ["HasCoverings", IFCRELCOVERSBLDGELEMENTS, 4, true], ["HasSurfaceFeatures", IFCRELADHERESTOELEMENT, 4, true], ["HasPorts", IFCRELCONNECTSPORTTOELEMENT, 5, true], ["AssignedToFlowElement", IFCRELFLOWCONTROLELEMENTS, 4, true]]
+  };
+  Constructors[3] = {
+    3630933823: (a) => new IFC4X3.IfcActorRole(a[0], a[1], a[2]),
+    618182010: (a) => new IFC4X3.IfcAddress(a[0], a[1], a[2]),
+    2879124712: (a) => new IFC4X3.IfcAlignmentParameterSegment(a[0], a[1]),
+    3633395639: (a) => new IFC4X3.IfcAlignmentVerticalSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    639542469: (a) => new IFC4X3.IfcApplication(a[0], a[1], a[2], a[3]),
+    411424972: (a) => new IFC4X3.IfcAppliedValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    130549933: (a) => new IFC4X3.IfcApproval(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4037036970: (a) => new IFC4X3.IfcBoundaryCondition(a[0]),
+    1560379544: (a) => new IFC4X3.IfcBoundaryEdgeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3367102660: (a) => new IFC4X3.IfcBoundaryFaceCondition(a[0], a[1], a[2], a[3]),
+    1387855156: (a) => new IFC4X3.IfcBoundaryNodeCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2069777674: (a) => new IFC4X3.IfcBoundaryNodeConditionWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2859738748: (_) => new IFC4X3.IfcConnectionGeometry(),
+    2614616156: (a) => new IFC4X3.IfcConnectionPointGeometry(a[0], a[1]),
+    2732653382: (a) => new IFC4X3.IfcConnectionSurfaceGeometry(a[0], a[1]),
+    775493141: (a) => new IFC4X3.IfcConnectionVolumeGeometry(a[0], a[1]),
+    1959218052: (a) => new IFC4X3.IfcConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1785450214: (a) => new IFC4X3.IfcCoordinateOperation(a[0], a[1]),
+    1466758467: (a) => new IFC4X3.IfcCoordinateReferenceSystem(a[0], a[1], a[2], a[3]),
+    602808272: (a) => new IFC4X3.IfcCostValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1765591967: (a) => new IFC4X3.IfcDerivedUnit(a[0], a[1], a[2], a[3]),
+    1045800335: (a) => new IFC4X3.IfcDerivedUnitElement(a[0], a[1]),
+    2949456006: (a) => new IFC4X3.IfcDimensionalExponents(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    4294318154: (_) => new IFC4X3.IfcExternalInformation(),
+    3200245327: (a) => new IFC4X3.IfcExternalReference(a[0], a[1], a[2]),
+    2242383968: (a) => new IFC4X3.IfcExternallyDefinedHatchStyle(a[0], a[1], a[2]),
+    1040185647: (a) => new IFC4X3.IfcExternallyDefinedSurfaceStyle(a[0], a[1], a[2]),
+    3548104201: (a) => new IFC4X3.IfcExternallyDefinedTextFont(a[0], a[1], a[2]),
+    852622518: (a) => new IFC4X3.IfcGridAxis(a[0], a[1], a[2]),
+    3020489413: (a) => new IFC4X3.IfcIrregularTimeSeriesValue(a[0], a[1]),
+    2655187982: (a) => new IFC4X3.IfcLibraryInformation(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3452421091: (a) => new IFC4X3.IfcLibraryReference(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4162380809: (a) => new IFC4X3.IfcLightDistributionData(a[0], a[1], a[2]),
+    1566485204: (a) => new IFC4X3.IfcLightIntensityDistribution(a[0], a[1]),
+    3057273783: (a) => new IFC4X3.IfcMapConversion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1847130766: (a) => new IFC4X3.IfcMaterialClassificationRelationship(a[0], a[1]),
+    760658860: (_) => new IFC4X3.IfcMaterialDefinition(),
+    248100487: (a) => new IFC4X3.IfcMaterialLayer(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3303938423: (a) => new IFC4X3.IfcMaterialLayerSet(a[0], a[1], a[2]),
+    1847252529: (a) => new IFC4X3.IfcMaterialLayerWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2199411900: (a) => new IFC4X3.IfcMaterialList(a[0]),
+    2235152071: (a) => new IFC4X3.IfcMaterialProfile(a[0], a[1], a[2], a[3], a[4], a[5]),
+    164193824: (a) => new IFC4X3.IfcMaterialProfileSet(a[0], a[1], a[2], a[3]),
+    552965576: (a) => new IFC4X3.IfcMaterialProfileWithOffsets(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1507914824: (_) => new IFC4X3.IfcMaterialUsageDefinition(),
+    2597039031: (a) => new IFC4X3.IfcMeasureWithUnit(a[0], a[1]),
+    3368373690: (a) => new IFC4X3.IfcMetric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2706619895: (a) => new IFC4X3.IfcMonetaryUnit(a[0]),
+    1918398963: (a) => new IFC4X3.IfcNamedUnit(a[0], a[1]),
+    3701648758: (a) => new IFC4X3.IfcObjectPlacement(a[0]),
+    2251480897: (a) => new IFC4X3.IfcObjective(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4251960020: (a) => new IFC4X3.IfcOrganization(a[0], a[1], a[2], a[3], a[4]),
+    1207048766: (a) => new IFC4X3.IfcOwnerHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2077209135: (a) => new IFC4X3.IfcPerson(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    101040310: (a) => new IFC4X3.IfcPersonAndOrganization(a[0], a[1], a[2]),
+    2483315170: (a) => new IFC4X3.IfcPhysicalQuantity(a[0], a[1]),
+    2226359599: (a) => new IFC4X3.IfcPhysicalSimpleQuantity(a[0], a[1], a[2]),
+    3355820592: (a) => new IFC4X3.IfcPostalAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    677532197: (_) => new IFC4X3.IfcPresentationItem(),
+    2022622350: (a) => new IFC4X3.IfcPresentationLayerAssignment(a[0], a[1], a[2], a[3]),
+    1304840413: (a) => new IFC4X3.IfcPresentationLayerWithStyle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3119450353: (a) => new IFC4X3.IfcPresentationStyle(a[0]),
+    2095639259: (a) => new IFC4X3.IfcProductRepresentation(a[0], a[1], a[2]),
+    3958567839: (a) => new IFC4X3.IfcProfileDef(a[0], a[1]),
+    3843373140: (a) => new IFC4X3.IfcProjectedCRS(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    986844984: (_) => new IFC4X3.IfcPropertyAbstraction(),
+    3710013099: (a) => new IFC4X3.IfcPropertyEnumeration(a[0], a[1], a[2]),
+    2044713172: (a) => new IFC4X3.IfcQuantityArea(a[0], a[1], a[2], a[3], a[4]),
+    2093928680: (a) => new IFC4X3.IfcQuantityCount(a[0], a[1], a[2], a[3], a[4]),
+    931644368: (a) => new IFC4X3.IfcQuantityLength(a[0], a[1], a[2], a[3], a[4]),
+    2691318326: (a) => new IFC4X3.IfcQuantityNumber(a[0], a[1], a[2], a[3], a[4]),
+    3252649465: (a) => new IFC4X3.IfcQuantityTime(a[0], a[1], a[2], a[3], a[4]),
+    2405470396: (a) => new IFC4X3.IfcQuantityVolume(a[0], a[1], a[2], a[3], a[4]),
+    825690147: (a) => new IFC4X3.IfcQuantityWeight(a[0], a[1], a[2], a[3], a[4]),
+    3915482550: (a) => new IFC4X3.IfcRecurrencePattern(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2433181523: (a) => new IFC4X3.IfcReference(a[0], a[1], a[2], a[3], a[4]),
+    1076942058: (a) => new IFC4X3.IfcRepresentation(a[0], a[1], a[2], a[3]),
+    3377609919: (a) => new IFC4X3.IfcRepresentationContext(a[0], a[1]),
+    3008791417: (_) => new IFC4X3.IfcRepresentationItem(),
+    1660063152: (a) => new IFC4X3.IfcRepresentationMap(a[0], a[1]),
+    2439245199: (a) => new IFC4X3.IfcResourceLevelRelationship(a[0], a[1]),
+    2341007311: (a) => new IFC4X3.IfcRoot(a[0], a[1], a[2], a[3]),
+    448429030: (a) => new IFC4X3.IfcSIUnit(a[0], a[1], a[2], a[3]),
+    1054537805: (a) => new IFC4X3.IfcSchedulingTime(a[0], a[1], a[2]),
+    867548509: (a) => new IFC4X3.IfcShapeAspect(a[0], a[1], a[2], a[3], a[4]),
+    3982875396: (a) => new IFC4X3.IfcShapeModel(a[0], a[1], a[2], a[3]),
+    4240577450: (a) => new IFC4X3.IfcShapeRepresentation(a[0], a[1], a[2], a[3]),
+    2273995522: (a) => new IFC4X3.IfcStructuralConnectionCondition(a[0]),
+    2162789131: (a) => new IFC4X3.IfcStructuralLoad(a[0]),
+    3478079324: (a) => new IFC4X3.IfcStructuralLoadConfiguration(a[0], a[1], a[2]),
+    609421318: (a) => new IFC4X3.IfcStructuralLoadOrResult(a[0]),
+    2525727697: (a) => new IFC4X3.IfcStructuralLoadStatic(a[0]),
+    3408363356: (a) => new IFC4X3.IfcStructuralLoadTemperature(a[0], a[1], a[2], a[3]),
+    2830218821: (a) => new IFC4X3.IfcStyleModel(a[0], a[1], a[2], a[3]),
+    3958052878: (a) => new IFC4X3.IfcStyledItem(a[0], a[1], a[2]),
+    3049322572: (a) => new IFC4X3.IfcStyledRepresentation(a[0], a[1], a[2], a[3]),
+    2934153892: (a) => new IFC4X3.IfcSurfaceReinforcementArea(a[0], a[1], a[2], a[3]),
+    1300840506: (a) => new IFC4X3.IfcSurfaceStyle(a[0], a[1], a[2]),
+    3303107099: (a) => new IFC4X3.IfcSurfaceStyleLighting(a[0], a[1], a[2], a[3]),
+    1607154358: (a) => new IFC4X3.IfcSurfaceStyleRefraction(a[0], a[1]),
+    846575682: (a) => new IFC4X3.IfcSurfaceStyleShading(a[0], a[1]),
+    1351298697: (a) => new IFC4X3.IfcSurfaceStyleWithTextures(a[0]),
+    626085974: (a) => new IFC4X3.IfcSurfaceTexture(a[0], a[1], a[2], a[3], a[4]),
+    985171141: (a) => new IFC4X3.IfcTable(a[0], a[1], a[2]),
+    2043862942: (a) => new IFC4X3.IfcTableColumn(a[0], a[1], a[2], a[3], a[4]),
+    531007025: (a) => new IFC4X3.IfcTableRow(a[0], a[1]),
+    1549132990: (a) => new IFC4X3.IfcTaskTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),
+    2771591690: (a) => new IFC4X3.IfcTaskTimeRecurring(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]),
+    912023232: (a) => new IFC4X3.IfcTelecomAddress(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1447204868: (a) => new IFC4X3.IfcTextStyle(a[0], a[1], a[2], a[3], a[4]),
+    2636378356: (a) => new IFC4X3.IfcTextStyleForDefinedFont(a[0], a[1]),
+    1640371178: (a) => new IFC4X3.IfcTextStyleTextModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    280115917: (a) => new IFC4X3.IfcTextureCoordinate(a[0]),
+    1742049831: (a) => new IFC4X3.IfcTextureCoordinateGenerator(a[0], a[1], a[2]),
+    222769930: (a) => new IFC4X3.IfcTextureCoordinateIndices(a[0], a[1]),
+    1010789467: (a) => new IFC4X3.IfcTextureCoordinateIndicesWithVoids(a[0], a[1], a[2]),
+    2552916305: (a) => new IFC4X3.IfcTextureMap(a[0], a[1], a[2]),
+    1210645708: (a) => new IFC4X3.IfcTextureVertex(a[0]),
+    3611470254: (a) => new IFC4X3.IfcTextureVertexList(a[0]),
+    1199560280: (a) => new IFC4X3.IfcTimePeriod(a[0], a[1]),
+    3101149627: (a) => new IFC4X3.IfcTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    581633288: (a) => new IFC4X3.IfcTimeSeriesValue(a[0]),
+    1377556343: (_) => new IFC4X3.IfcTopologicalRepresentationItem(),
+    1735638870: (a) => new IFC4X3.IfcTopologyRepresentation(a[0], a[1], a[2], a[3]),
+    180925521: (a) => new IFC4X3.IfcUnitAssignment(a[0]),
+    2799835756: (_) => new IFC4X3.IfcVertex(),
+    1907098498: (a) => new IFC4X3.IfcVertexPoint(a[0]),
+    891718957: (a) => new IFC4X3.IfcVirtualGridIntersection(a[0], a[1]),
+    1236880293: (a) => new IFC4X3.IfcWorkTime(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3752311538: (a) => new IFC4X3.IfcAlignmentCantSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    536804194: (a) => new IFC4X3.IfcAlignmentHorizontalSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3869604511: (a) => new IFC4X3.IfcApprovalRelationship(a[0], a[1], a[2], a[3]),
+    3798115385: (a) => new IFC4X3.IfcArbitraryClosedProfileDef(a[0], a[1], a[2]),
+    1310608509: (a) => new IFC4X3.IfcArbitraryOpenProfileDef(a[0], a[1], a[2]),
+    2705031697: (a) => new IFC4X3.IfcArbitraryProfileDefWithVoids(a[0], a[1], a[2], a[3]),
+    616511568: (a) => new IFC4X3.IfcBlobTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3150382593: (a) => new IFC4X3.IfcCenterLineProfileDef(a[0], a[1], a[2], a[3]),
+    747523909: (a) => new IFC4X3.IfcClassification(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    647927063: (a) => new IFC4X3.IfcClassificationReference(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3285139300: (a) => new IFC4X3.IfcColourRgbList(a[0]),
+    3264961684: (a) => new IFC4X3.IfcColourSpecification(a[0]),
+    1485152156: (a) => new IFC4X3.IfcCompositeProfileDef(a[0], a[1], a[2], a[3]),
+    370225590: (a) => new IFC4X3.IfcConnectedFaceSet(a[0]),
+    1981873012: (a) => new IFC4X3.IfcConnectionCurveGeometry(a[0], a[1]),
+    45288368: (a) => new IFC4X3.IfcConnectionPointEccentricity(a[0], a[1], a[2], a[3], a[4]),
+    3050246964: (a) => new IFC4X3.IfcContextDependentUnit(a[0], a[1], a[2]),
+    2889183280: (a) => new IFC4X3.IfcConversionBasedUnit(a[0], a[1], a[2], a[3]),
+    2713554722: (a) => new IFC4X3.IfcConversionBasedUnitWithOffset(a[0], a[1], a[2], a[3], a[4]),
+    539742890: (a) => new IFC4X3.IfcCurrencyRelationship(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3800577675: (a) => new IFC4X3.IfcCurveStyle(a[0], a[1], a[2], a[3], a[4]),
+    1105321065: (a) => new IFC4X3.IfcCurveStyleFont(a[0], a[1]),
+    2367409068: (a) => new IFC4X3.IfcCurveStyleFontAndScaling(a[0], a[1], a[2]),
+    3510044353: (a) => new IFC4X3.IfcCurveStyleFontPattern(a[0], a[1]),
+    3632507154: (a) => new IFC4X3.IfcDerivedProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    1154170062: (a) => new IFC4X3.IfcDocumentInformation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    770865208: (a) => new IFC4X3.IfcDocumentInformationRelationship(a[0], a[1], a[2], a[3], a[4]),
+    3732053477: (a) => new IFC4X3.IfcDocumentReference(a[0], a[1], a[2], a[3], a[4]),
+    3900360178: (a) => new IFC4X3.IfcEdge(a[0], a[1]),
+    476780140: (a) => new IFC4X3.IfcEdgeCurve(a[0], a[1], a[2], a[3]),
+    211053100: (a) => new IFC4X3.IfcEventTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    297599258: (a) => new IFC4X3.IfcExtendedProperties(a[0], a[1], a[2]),
+    1437805879: (a) => new IFC4X3.IfcExternalReferenceRelationship(a[0], a[1], a[2], a[3]),
+    2556980723: (a) => new IFC4X3.IfcFace(a[0]),
+    1809719519: (a) => new IFC4X3.IfcFaceBound(a[0], a[1]),
+    803316827: (a) => new IFC4X3.IfcFaceOuterBound(a[0], a[1]),
+    3008276851: (a) => new IFC4X3.IfcFaceSurface(a[0], a[1], a[2]),
+    4219587988: (a) => new IFC4X3.IfcFailureConnectionCondition(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    738692330: (a) => new IFC4X3.IfcFillAreaStyle(a[0], a[1], a[2]),
+    3448662350: (a) => new IFC4X3.IfcGeometricRepresentationContext(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2453401579: (_) => new IFC4X3.IfcGeometricRepresentationItem(),
+    4142052618: (a) => new IFC4X3.IfcGeometricRepresentationSubContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3590301190: (a) => new IFC4X3.IfcGeometricSet(a[0]),
+    178086475: (a) => new IFC4X3.IfcGridPlacement(a[0], a[1], a[2]),
+    812098782: (a) => new IFC4X3.IfcHalfSpaceSolid(a[0], a[1]),
+    3905492369: (a) => new IFC4X3.IfcImageTexture(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3570813810: (a) => new IFC4X3.IfcIndexedColourMap(a[0], a[1], a[2], a[3]),
+    1437953363: (a) => new IFC4X3.IfcIndexedTextureMap(a[0], a[1], a[2]),
+    2133299955: (a) => new IFC4X3.IfcIndexedTriangleTextureMap(a[0], a[1], a[2], a[3]),
+    3741457305: (a) => new IFC4X3.IfcIrregularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1585845231: (a) => new IFC4X3.IfcLagTime(a[0], a[1], a[2], a[3], a[4]),
+    1402838566: (a) => new IFC4X3.IfcLightSource(a[0], a[1], a[2], a[3]),
+    125510826: (a) => new IFC4X3.IfcLightSourceAmbient(a[0], a[1], a[2], a[3]),
+    2604431987: (a) => new IFC4X3.IfcLightSourceDirectional(a[0], a[1], a[2], a[3], a[4]),
+    4266656042: (a) => new IFC4X3.IfcLightSourceGoniometric(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1520743889: (a) => new IFC4X3.IfcLightSourcePositional(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3422422726: (a) => new IFC4X3.IfcLightSourceSpot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    388784114: (a) => new IFC4X3.IfcLinearPlacement(a[0], a[1], a[2]),
+    2624227202: (a) => new IFC4X3.IfcLocalPlacement(a[0], a[1]),
+    1008929658: (_) => new IFC4X3.IfcLoop(),
+    2347385850: (a) => new IFC4X3.IfcMappedItem(a[0], a[1]),
+    1838606355: (a) => new IFC4X3.IfcMaterial(a[0], a[1], a[2]),
+    3708119e3: (a) => new IFC4X3.IfcMaterialConstituent(a[0], a[1], a[2], a[3], a[4]),
+    2852063980: (a) => new IFC4X3.IfcMaterialConstituentSet(a[0], a[1], a[2]),
+    2022407955: (a) => new IFC4X3.IfcMaterialDefinitionRepresentation(a[0], a[1], a[2], a[3]),
+    1303795690: (a) => new IFC4X3.IfcMaterialLayerSetUsage(a[0], a[1], a[2], a[3], a[4]),
+    3079605661: (a) => new IFC4X3.IfcMaterialProfileSetUsage(a[0], a[1], a[2]),
+    3404854881: (a) => new IFC4X3.IfcMaterialProfileSetUsageTapering(a[0], a[1], a[2], a[3], a[4]),
+    3265635763: (a) => new IFC4X3.IfcMaterialProperties(a[0], a[1], a[2], a[3]),
+    853536259: (a) => new IFC4X3.IfcMaterialRelationship(a[0], a[1], a[2], a[3], a[4]),
+    2998442950: (a) => new IFC4X3.IfcMirroredProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    219451334: (a) => new IFC4X3.IfcObjectDefinition(a[0], a[1], a[2], a[3]),
+    182550632: (a) => new IFC4X3.IfcOpenCrossProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2665983363: (a) => new IFC4X3.IfcOpenShell(a[0]),
+    1411181986: (a) => new IFC4X3.IfcOrganizationRelationship(a[0], a[1], a[2], a[3]),
+    1029017970: (a) => new IFC4X3.IfcOrientedEdge(a[0], a[1], a[2]),
+    2529465313: (a) => new IFC4X3.IfcParameterizedProfileDef(a[0], a[1], a[2]),
+    2519244187: (a) => new IFC4X3.IfcPath(a[0]),
+    3021840470: (a) => new IFC4X3.IfcPhysicalComplexQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    597895409: (a) => new IFC4X3.IfcPixelTexture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2004835150: (a) => new IFC4X3.IfcPlacement(a[0]),
+    1663979128: (a) => new IFC4X3.IfcPlanarExtent(a[0], a[1]),
+    2067069095: (_) => new IFC4X3.IfcPoint(),
+    2165702409: (a) => new IFC4X3.IfcPointByDistanceExpression(a[0], a[1], a[2], a[3], a[4]),
+    4022376103: (a) => new IFC4X3.IfcPointOnCurve(a[0], a[1]),
+    1423911732: (a) => new IFC4X3.IfcPointOnSurface(a[0], a[1], a[2]),
+    2924175390: (a) => new IFC4X3.IfcPolyLoop(a[0]),
+    2775532180: (a) => new IFC4X3.IfcPolygonalBoundedHalfSpace(a[0], a[1], a[2], a[3]),
+    3727388367: (a) => new IFC4X3.IfcPreDefinedItem(a[0]),
+    3778827333: (_) => new IFC4X3.IfcPreDefinedProperties(),
+    1775413392: (a) => new IFC4X3.IfcPreDefinedTextFont(a[0]),
+    673634403: (a) => new IFC4X3.IfcProductDefinitionShape(a[0], a[1], a[2]),
+    2802850158: (a) => new IFC4X3.IfcProfileProperties(a[0], a[1], a[2], a[3]),
+    2598011224: (a) => new IFC4X3.IfcProperty(a[0], a[1]),
+    1680319473: (a) => new IFC4X3.IfcPropertyDefinition(a[0], a[1], a[2], a[3]),
+    148025276: (a) => new IFC4X3.IfcPropertyDependencyRelationship(a[0], a[1], a[2], a[3], a[4]),
+    3357820518: (a) => new IFC4X3.IfcPropertySetDefinition(a[0], a[1], a[2], a[3]),
+    1482703590: (a) => new IFC4X3.IfcPropertyTemplateDefinition(a[0], a[1], a[2], a[3]),
+    2090586900: (a) => new IFC4X3.IfcQuantitySet(a[0], a[1], a[2], a[3]),
+    3615266464: (a) => new IFC4X3.IfcRectangleProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    3413951693: (a) => new IFC4X3.IfcRegularTimeSeries(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1580146022: (a) => new IFC4X3.IfcReinforcementBarProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    478536968: (a) => new IFC4X3.IfcRelationship(a[0], a[1], a[2], a[3]),
+    2943643501: (a) => new IFC4X3.IfcResourceApprovalRelationship(a[0], a[1], a[2], a[3]),
+    1608871552: (a) => new IFC4X3.IfcResourceConstraintRelationship(a[0], a[1], a[2], a[3]),
+    1042787934: (a) => new IFC4X3.IfcResourceTime(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),
+    2778083089: (a) => new IFC4X3.IfcRoundedRectangleProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2042790032: (a) => new IFC4X3.IfcSectionProperties(a[0], a[1], a[2]),
+    4165799628: (a) => new IFC4X3.IfcSectionReinforcementProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1509187699: (a) => new IFC4X3.IfcSectionedSpine(a[0], a[1], a[2]),
+    823603102: (a) => new IFC4X3.IfcSegment(a[0]),
+    4124623270: (a) => new IFC4X3.IfcShellBasedSurfaceModel(a[0]),
+    3692461612: (a) => new IFC4X3.IfcSimpleProperty(a[0], a[1]),
+    2609359061: (a) => new IFC4X3.IfcSlippageConnectionCondition(a[0], a[1], a[2], a[3]),
+    723233188: (_) => new IFC4X3.IfcSolidModel(),
+    1595516126: (a) => new IFC4X3.IfcStructuralLoadLinearForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2668620305: (a) => new IFC4X3.IfcStructuralLoadPlanarForce(a[0], a[1], a[2], a[3]),
+    2473145415: (a) => new IFC4X3.IfcStructuralLoadSingleDisplacement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1973038258: (a) => new IFC4X3.IfcStructuralLoadSingleDisplacementDistortion(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1597423693: (a) => new IFC4X3.IfcStructuralLoadSingleForce(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1190533807: (a) => new IFC4X3.IfcStructuralLoadSingleForceWarping(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2233826070: (a) => new IFC4X3.IfcSubedge(a[0], a[1], a[2]),
+    2513912981: (_) => new IFC4X3.IfcSurface(),
+    1878645084: (a) => new IFC4X3.IfcSurfaceStyleRendering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2247615214: (a) => new IFC4X3.IfcSweptAreaSolid(a[0], a[1]),
+    1260650574: (a) => new IFC4X3.IfcSweptDiskSolid(a[0], a[1], a[2], a[3], a[4]),
+    1096409881: (a) => new IFC4X3.IfcSweptDiskSolidPolygonal(a[0], a[1], a[2], a[3], a[4], a[5]),
+    230924584: (a) => new IFC4X3.IfcSweptSurface(a[0], a[1]),
+    3071757647: (a) => new IFC4X3.IfcTShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    901063453: (_) => new IFC4X3.IfcTessellatedItem(),
+    4282788508: (a) => new IFC4X3.IfcTextLiteral(a[0], a[1], a[2]),
+    3124975700: (a) => new IFC4X3.IfcTextLiteralWithExtent(a[0], a[1], a[2], a[3], a[4]),
+    1983826977: (a) => new IFC4X3.IfcTextStyleFontModel(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2715220739: (a) => new IFC4X3.IfcTrapeziumProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1628702193: (a) => new IFC4X3.IfcTypeObject(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3736923433: (a) => new IFC4X3.IfcTypeProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2347495698: (a) => new IFC4X3.IfcTypeProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3698973494: (a) => new IFC4X3.IfcTypeResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    427810014: (a) => new IFC4X3.IfcUShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1417489154: (a) => new IFC4X3.IfcVector(a[0], a[1]),
+    2759199220: (a) => new IFC4X3.IfcVertexLoop(a[0]),
+    2543172580: (a) => new IFC4X3.IfcZShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3406155212: (a) => new IFC4X3.IfcAdvancedFace(a[0], a[1], a[2]),
+    669184980: (a) => new IFC4X3.IfcAnnotationFillArea(a[0], a[1]),
+    3207858831: (a) => new IFC4X3.IfcAsymmetricIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]),
+    4261334040: (a) => new IFC4X3.IfcAxis1Placement(a[0], a[1]),
+    3125803723: (a) => new IFC4X3.IfcAxis2Placement2D(a[0], a[1]),
+    2740243338: (a) => new IFC4X3.IfcAxis2Placement3D(a[0], a[1], a[2]),
+    3425423356: (a) => new IFC4X3.IfcAxis2PlacementLinear(a[0], a[1], a[2]),
+    2736907675: (a) => new IFC4X3.IfcBooleanResult(a[0], a[1], a[2]),
+    4182860854: (_) => new IFC4X3.IfcBoundedSurface(),
+    2581212453: (a) => new IFC4X3.IfcBoundingBox(a[0], a[1], a[2], a[3]),
+    2713105998: (a) => new IFC4X3.IfcBoxedHalfSpace(a[0], a[1], a[2]),
+    2898889636: (a) => new IFC4X3.IfcCShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1123145078: (a) => new IFC4X3.IfcCartesianPoint(a[0]),
+    574549367: (_) => new IFC4X3.IfcCartesianPointList(),
+    1675464909: (a) => new IFC4X3.IfcCartesianPointList2D(a[0], a[1]),
+    2059837836: (a) => new IFC4X3.IfcCartesianPointList3D(a[0], a[1]),
+    59481748: (a) => new IFC4X3.IfcCartesianTransformationOperator(a[0], a[1], a[2], a[3]),
+    3749851601: (a) => new IFC4X3.IfcCartesianTransformationOperator2D(a[0], a[1], a[2], a[3]),
+    3486308946: (a) => new IFC4X3.IfcCartesianTransformationOperator2DnonUniform(a[0], a[1], a[2], a[3], a[4]),
+    3331915920: (a) => new IFC4X3.IfcCartesianTransformationOperator3D(a[0], a[1], a[2], a[3], a[4]),
+    1416205885: (a) => new IFC4X3.IfcCartesianTransformationOperator3DnonUniform(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1383045692: (a) => new IFC4X3.IfcCircleProfileDef(a[0], a[1], a[2], a[3]),
+    2205249479: (a) => new IFC4X3.IfcClosedShell(a[0]),
+    776857604: (a) => new IFC4X3.IfcColourRgb(a[0], a[1], a[2], a[3]),
+    2542286263: (a) => new IFC4X3.IfcComplexProperty(a[0], a[1], a[2], a[3]),
+    2485617015: (a) => new IFC4X3.IfcCompositeCurveSegment(a[0], a[1], a[2]),
+    2574617495: (a) => new IFC4X3.IfcConstructionResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3419103109: (a) => new IFC4X3.IfcContext(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1815067380: (a) => new IFC4X3.IfcCrewResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2506170314: (a) => new IFC4X3.IfcCsgPrimitive3D(a[0]),
+    2147822146: (a) => new IFC4X3.IfcCsgSolid(a[0]),
+    2601014836: (_) => new IFC4X3.IfcCurve(),
+    2827736869: (a) => new IFC4X3.IfcCurveBoundedPlane(a[0], a[1], a[2]),
+    2629017746: (a) => new IFC4X3.IfcCurveBoundedSurface(a[0], a[1], a[2]),
+    4212018352: (a) => new IFC4X3.IfcCurveSegment(a[0], a[1], a[2], a[3], a[4]),
+    32440307: (a) => new IFC4X3.IfcDirection(a[0]),
+    593015953: (a) => new IFC4X3.IfcDirectrixCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4]),
+    1472233963: (a) => new IFC4X3.IfcEdgeLoop(a[0]),
+    1883228015: (a) => new IFC4X3.IfcElementQuantity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    339256511: (a) => new IFC4X3.IfcElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2777663545: (a) => new IFC4X3.IfcElementarySurface(a[0]),
+    2835456948: (a) => new IFC4X3.IfcEllipseProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    4024345920: (a) => new IFC4X3.IfcEventType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    477187591: (a) => new IFC4X3.IfcExtrudedAreaSolid(a[0], a[1], a[2], a[3]),
+    2804161546: (a) => new IFC4X3.IfcExtrudedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]),
+    2047409740: (a) => new IFC4X3.IfcFaceBasedSurfaceModel(a[0]),
+    374418227: (a) => new IFC4X3.IfcFillAreaStyleHatching(a[0], a[1], a[2], a[3], a[4]),
+    315944413: (a) => new IFC4X3.IfcFillAreaStyleTiles(a[0], a[1], a[2]),
+    2652556860: (a) => new IFC4X3.IfcFixedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4238390223: (a) => new IFC4X3.IfcFurnishingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1268542332: (a) => new IFC4X3.IfcFurnitureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4095422895: (a) => new IFC4X3.IfcGeographicElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    987898635: (a) => new IFC4X3.IfcGeometricCurveSet(a[0]),
+    1484403080: (a) => new IFC4X3.IfcIShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    178912537: (a) => new IFC4X3.IfcIndexedPolygonalFace(a[0]),
+    2294589976: (a) => new IFC4X3.IfcIndexedPolygonalFaceWithVoids(a[0], a[1]),
+    3465909080: (a) => new IFC4X3.IfcIndexedPolygonalTextureMap(a[0], a[1], a[2], a[3]),
+    572779678: (a) => new IFC4X3.IfcLShapeProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    428585644: (a) => new IFC4X3.IfcLaborResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1281925730: (a) => new IFC4X3.IfcLine(a[0], a[1]),
+    1425443689: (a) => new IFC4X3.IfcManifoldSolidBrep(a[0]),
+    3888040117: (a) => new IFC4X3.IfcObject(a[0], a[1], a[2], a[3], a[4]),
+    590820931: (a) => new IFC4X3.IfcOffsetCurve(a[0]),
+    3388369263: (a) => new IFC4X3.IfcOffsetCurve2D(a[0], a[1], a[2]),
+    3505215534: (a) => new IFC4X3.IfcOffsetCurve3D(a[0], a[1], a[2], a[3]),
+    2485787929: (a) => new IFC4X3.IfcOffsetCurveByDistances(a[0], a[1], a[2]),
+    1682466193: (a) => new IFC4X3.IfcPcurve(a[0], a[1]),
+    603570806: (a) => new IFC4X3.IfcPlanarBox(a[0], a[1], a[2]),
+    220341763: (a) => new IFC4X3.IfcPlane(a[0]),
+    3381221214: (a) => new IFC4X3.IfcPolynomialCurve(a[0], a[1], a[2], a[3]),
+    759155922: (a) => new IFC4X3.IfcPreDefinedColour(a[0]),
+    2559016684: (a) => new IFC4X3.IfcPreDefinedCurveFont(a[0]),
+    3967405729: (a) => new IFC4X3.IfcPreDefinedPropertySet(a[0], a[1], a[2], a[3]),
+    569719735: (a) => new IFC4X3.IfcProcedureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2945172077: (a) => new IFC4X3.IfcProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    4208778838: (a) => new IFC4X3.IfcProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    103090709: (a) => new IFC4X3.IfcProject(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    653396225: (a) => new IFC4X3.IfcProjectLibrary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    871118103: (a) => new IFC4X3.IfcPropertyBoundedValue(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4166981789: (a) => new IFC4X3.IfcPropertyEnumeratedValue(a[0], a[1], a[2], a[3]),
+    2752243245: (a) => new IFC4X3.IfcPropertyListValue(a[0], a[1], a[2], a[3]),
+    941946838: (a) => new IFC4X3.IfcPropertyReferenceValue(a[0], a[1], a[2], a[3]),
+    1451395588: (a) => new IFC4X3.IfcPropertySet(a[0], a[1], a[2], a[3], a[4]),
+    492091185: (a) => new IFC4X3.IfcPropertySetTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3650150729: (a) => new IFC4X3.IfcPropertySingleValue(a[0], a[1], a[2], a[3]),
+    110355661: (a) => new IFC4X3.IfcPropertyTableValue(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3521284610: (a) => new IFC4X3.IfcPropertyTemplate(a[0], a[1], a[2], a[3]),
+    2770003689: (a) => new IFC4X3.IfcRectangleHollowProfileDef(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2798486643: (a) => new IFC4X3.IfcRectangularPyramid(a[0], a[1], a[2], a[3]),
+    3454111270: (a) => new IFC4X3.IfcRectangularTrimmedSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3765753017: (a) => new IFC4X3.IfcReinforcementDefinitionProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3939117080: (a) => new IFC4X3.IfcRelAssigns(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1683148259: (a) => new IFC4X3.IfcRelAssignsToActor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2495723537: (a) => new IFC4X3.IfcRelAssignsToControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1307041759: (a) => new IFC4X3.IfcRelAssignsToGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1027710054: (a) => new IFC4X3.IfcRelAssignsToGroupByFactor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4278684876: (a) => new IFC4X3.IfcRelAssignsToProcess(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2857406711: (a) => new IFC4X3.IfcRelAssignsToProduct(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    205026976: (a) => new IFC4X3.IfcRelAssignsToResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1865459582: (a) => new IFC4X3.IfcRelAssociates(a[0], a[1], a[2], a[3], a[4]),
+    4095574036: (a) => new IFC4X3.IfcRelAssociatesApproval(a[0], a[1], a[2], a[3], a[4], a[5]),
+    919958153: (a) => new IFC4X3.IfcRelAssociatesClassification(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2728634034: (a) => new IFC4X3.IfcRelAssociatesConstraint(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    982818633: (a) => new IFC4X3.IfcRelAssociatesDocument(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3840914261: (a) => new IFC4X3.IfcRelAssociatesLibrary(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2655215786: (a) => new IFC4X3.IfcRelAssociatesMaterial(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1033248425: (a) => new IFC4X3.IfcRelAssociatesProfileDef(a[0], a[1], a[2], a[3], a[4], a[5]),
+    826625072: (a) => new IFC4X3.IfcRelConnects(a[0], a[1], a[2], a[3]),
+    1204542856: (a) => new IFC4X3.IfcRelConnectsElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3945020480: (a) => new IFC4X3.IfcRelConnectsPathElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4201705270: (a) => new IFC4X3.IfcRelConnectsPortToElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3190031847: (a) => new IFC4X3.IfcRelConnectsPorts(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2127690289: (a) => new IFC4X3.IfcRelConnectsStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1638771189: (a) => new IFC4X3.IfcRelConnectsStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    504942748: (a) => new IFC4X3.IfcRelConnectsWithEccentricity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3678494232: (a) => new IFC4X3.IfcRelConnectsWithRealizingElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3242617779: (a) => new IFC4X3.IfcRelContainedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),
+    886880790: (a) => new IFC4X3.IfcRelCoversBldgElements(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2802773753: (a) => new IFC4X3.IfcRelCoversSpaces(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2565941209: (a) => new IFC4X3.IfcRelDeclares(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2551354335: (a) => new IFC4X3.IfcRelDecomposes(a[0], a[1], a[2], a[3]),
+    693640335: (a) => new IFC4X3.IfcRelDefines(a[0], a[1], a[2], a[3]),
+    1462361463: (a) => new IFC4X3.IfcRelDefinesByObject(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4186316022: (a) => new IFC4X3.IfcRelDefinesByProperties(a[0], a[1], a[2], a[3], a[4], a[5]),
+    307848117: (a) => new IFC4X3.IfcRelDefinesByTemplate(a[0], a[1], a[2], a[3], a[4], a[5]),
+    781010003: (a) => new IFC4X3.IfcRelDefinesByType(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3940055652: (a) => new IFC4X3.IfcRelFillsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    279856033: (a) => new IFC4X3.IfcRelFlowControlElements(a[0], a[1], a[2], a[3], a[4], a[5]),
+    427948657: (a) => new IFC4X3.IfcRelInterferesElements(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3268803585: (a) => new IFC4X3.IfcRelNests(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1441486842: (a) => new IFC4X3.IfcRelPositions(a[0], a[1], a[2], a[3], a[4], a[5]),
+    750771296: (a) => new IFC4X3.IfcRelProjectsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1245217292: (a) => new IFC4X3.IfcRelReferencedInSpatialStructure(a[0], a[1], a[2], a[3], a[4], a[5]),
+    4122056220: (a) => new IFC4X3.IfcRelSequence(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    366585022: (a) => new IFC4X3.IfcRelServicesBuildings(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3451746338: (a) => new IFC4X3.IfcRelSpaceBoundary(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3523091289: (a) => new IFC4X3.IfcRelSpaceBoundary1stLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1521410863: (a) => new IFC4X3.IfcRelSpaceBoundary2ndLevel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1401173127: (a) => new IFC4X3.IfcRelVoidsElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    816062949: (a) => new IFC4X3.IfcReparametrisedCompositeCurveSegment(a[0], a[1], a[2], a[3]),
+    2914609552: (a) => new IFC4X3.IfcResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1856042241: (a) => new IFC4X3.IfcRevolvedAreaSolid(a[0], a[1], a[2], a[3]),
+    3243963512: (a) => new IFC4X3.IfcRevolvedAreaSolidTapered(a[0], a[1], a[2], a[3], a[4]),
+    4158566097: (a) => new IFC4X3.IfcRightCircularCone(a[0], a[1], a[2]),
+    3626867408: (a) => new IFC4X3.IfcRightCircularCylinder(a[0], a[1], a[2]),
+    1862484736: (a) => new IFC4X3.IfcSectionedSolid(a[0], a[1]),
+    1290935644: (a) => new IFC4X3.IfcSectionedSolidHorizontal(a[0], a[1], a[2]),
+    1356537516: (a) => new IFC4X3.IfcSectionedSurface(a[0], a[1], a[2]),
+    3663146110: (a) => new IFC4X3.IfcSimplePropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1412071761: (a) => new IFC4X3.IfcSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    710998568: (a) => new IFC4X3.IfcSpatialElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2706606064: (a) => new IFC4X3.IfcSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3893378262: (a) => new IFC4X3.IfcSpatialStructureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    463610769: (a) => new IFC4X3.IfcSpatialZone(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2481509218: (a) => new IFC4X3.IfcSpatialZoneType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    451544542: (a) => new IFC4X3.IfcSphere(a[0], a[1]),
+    4015995234: (a) => new IFC4X3.IfcSphericalSurface(a[0], a[1]),
+    2735484536: (a) => new IFC4X3.IfcSpiral(a[0]),
+    3544373492: (a) => new IFC4X3.IfcStructuralActivity(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3136571912: (a) => new IFC4X3.IfcStructuralItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    530289379: (a) => new IFC4X3.IfcStructuralMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3689010777: (a) => new IFC4X3.IfcStructuralReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3979015343: (a) => new IFC4X3.IfcStructuralSurfaceMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2218152070: (a) => new IFC4X3.IfcStructuralSurfaceMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    603775116: (a) => new IFC4X3.IfcStructuralSurfaceReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4095615324: (a) => new IFC4X3.IfcSubContractResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    699246055: (a) => new IFC4X3.IfcSurfaceCurve(a[0], a[1], a[2]),
+    2028607225: (a) => new IFC4X3.IfcSurfaceCurveSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2809605785: (a) => new IFC4X3.IfcSurfaceOfLinearExtrusion(a[0], a[1], a[2], a[3]),
+    4124788165: (a) => new IFC4X3.IfcSurfaceOfRevolution(a[0], a[1], a[2]),
+    1580310250: (a) => new IFC4X3.IfcSystemFurnitureElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3473067441: (a) => new IFC4X3.IfcTask(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    3206491090: (a) => new IFC4X3.IfcTaskType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2387106220: (a) => new IFC4X3.IfcTessellatedFaceSet(a[0], a[1]),
+    782932809: (a) => new IFC4X3.IfcThirdOrderPolynomialSpiral(a[0], a[1], a[2], a[3], a[4]),
+    1935646853: (a) => new IFC4X3.IfcToroidalSurface(a[0], a[1], a[2]),
+    3665877780: (a) => new IFC4X3.IfcTransportationDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2916149573: (a) => new IFC4X3.IfcTriangulatedFaceSet(a[0], a[1], a[2], a[3], a[4]),
+    1229763772: (a) => new IFC4X3.IfcTriangulatedIrregularNetwork(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3651464721: (a) => new IFC4X3.IfcVehicleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    336235671: (a) => new IFC4X3.IfcWindowLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),
+    512836454: (a) => new IFC4X3.IfcWindowPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2296667514: (a) => new IFC4X3.IfcActor(a[0], a[1], a[2], a[3], a[4], a[5]),
+    1635779807: (a) => new IFC4X3.IfcAdvancedBrep(a[0]),
+    2603310189: (a) => new IFC4X3.IfcAdvancedBrepWithVoids(a[0], a[1]),
+    1674181508: (a) => new IFC4X3.IfcAnnotation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2887950389: (a) => new IFC4X3.IfcBSplineSurface(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    167062518: (a) => new IFC4X3.IfcBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1334484129: (a) => new IFC4X3.IfcBlock(a[0], a[1], a[2], a[3]),
+    3649129432: (a) => new IFC4X3.IfcBooleanClippingResult(a[0], a[1], a[2]),
+    1260505505: (_) => new IFC4X3.IfcBoundedCurve(),
+    3124254112: (a) => new IFC4X3.IfcBuildingStorey(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1626504194: (a) => new IFC4X3.IfcBuiltElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2197970202: (a) => new IFC4X3.IfcChimneyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2937912522: (a) => new IFC4X3.IfcCircleHollowProfileDef(a[0], a[1], a[2], a[3], a[4]),
+    3893394355: (a) => new IFC4X3.IfcCivilElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3497074424: (a) => new IFC4X3.IfcClothoid(a[0], a[1]),
+    300633059: (a) => new IFC4X3.IfcColumnType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3875453745: (a) => new IFC4X3.IfcComplexPropertyTemplate(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3732776249: (a) => new IFC4X3.IfcCompositeCurve(a[0], a[1]),
+    15328376: (a) => new IFC4X3.IfcCompositeCurveOnSurface(a[0], a[1]),
+    2510884976: (a) => new IFC4X3.IfcConic(a[0]),
+    2185764099: (a) => new IFC4X3.IfcConstructionEquipmentResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    4105962743: (a) => new IFC4X3.IfcConstructionMaterialResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1525564444: (a) => new IFC4X3.IfcConstructionProductResourceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2559216714: (a) => new IFC4X3.IfcConstructionResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3293443760: (a) => new IFC4X3.IfcControl(a[0], a[1], a[2], a[3], a[4], a[5]),
+    2000195564: (a) => new IFC4X3.IfcCosineSpiral(a[0], a[1], a[2]),
+    3895139033: (a) => new IFC4X3.IfcCostItem(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1419761937: (a) => new IFC4X3.IfcCostSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4189326743: (a) => new IFC4X3.IfcCourseType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1916426348: (a) => new IFC4X3.IfcCoveringType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3295246426: (a) => new IFC4X3.IfcCrewResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1457835157: (a) => new IFC4X3.IfcCurtainWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1213902940: (a) => new IFC4X3.IfcCylindricalSurface(a[0], a[1]),
+    1306400036: (a) => new IFC4X3.IfcDeepFoundationType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4234616927: (a) => new IFC4X3.IfcDirectrixDerivedReferenceSweptAreaSolid(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3256556792: (a) => new IFC4X3.IfcDistributionElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3849074793: (a) => new IFC4X3.IfcDistributionFlowElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2963535650: (a) => new IFC4X3.IfcDoorLiningProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    1714330368: (a) => new IFC4X3.IfcDoorPanelProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2323601079: (a) => new IFC4X3.IfcDoorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    445594917: (a) => new IFC4X3.IfcDraughtingPreDefinedColour(a[0]),
+    4006246654: (a) => new IFC4X3.IfcDraughtingPreDefinedCurveFont(a[0]),
+    1758889154: (a) => new IFC4X3.IfcElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4123344466: (a) => new IFC4X3.IfcElementAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2397081782: (a) => new IFC4X3.IfcElementAssemblyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1623761950: (a) => new IFC4X3.IfcElementComponent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2590856083: (a) => new IFC4X3.IfcElementComponentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1704287377: (a) => new IFC4X3.IfcEllipse(a[0], a[1], a[2]),
+    2107101300: (a) => new IFC4X3.IfcEnergyConversionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    132023988: (a) => new IFC4X3.IfcEngineType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3174744832: (a) => new IFC4X3.IfcEvaporativeCoolerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3390157468: (a) => new IFC4X3.IfcEvaporatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4148101412: (a) => new IFC4X3.IfcEvent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2853485674: (a) => new IFC4X3.IfcExternalSpatialStructureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    807026263: (a) => new IFC4X3.IfcFacetedBrep(a[0]),
+    3737207727: (a) => new IFC4X3.IfcFacetedBrepWithVoids(a[0], a[1]),
+    24185140: (a) => new IFC4X3.IfcFacility(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1310830890: (a) => new IFC4X3.IfcFacilityPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4228831410: (a) => new IFC4X3.IfcFacilityPartCommon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    647756555: (a) => new IFC4X3.IfcFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2489546625: (a) => new IFC4X3.IfcFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2827207264: (a) => new IFC4X3.IfcFeatureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2143335405: (a) => new IFC4X3.IfcFeatureElementAddition(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1287392070: (a) => new IFC4X3.IfcFeatureElementSubtraction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3907093117: (a) => new IFC4X3.IfcFlowControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3198132628: (a) => new IFC4X3.IfcFlowFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3815607619: (a) => new IFC4X3.IfcFlowMeterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1482959167: (a) => new IFC4X3.IfcFlowMovingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1834744321: (a) => new IFC4X3.IfcFlowSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1339347760: (a) => new IFC4X3.IfcFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2297155007: (a) => new IFC4X3.IfcFlowTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3009222698: (a) => new IFC4X3.IfcFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1893162501: (a) => new IFC4X3.IfcFootingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    263784265: (a) => new IFC4X3.IfcFurnishingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1509553395: (a) => new IFC4X3.IfcFurniture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3493046030: (a) => new IFC4X3.IfcGeographicElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4230923436: (a) => new IFC4X3.IfcGeotechnicalElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1594536857: (a) => new IFC4X3.IfcGeotechnicalStratum(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2898700619: (a) => new IFC4X3.IfcGradientCurve(a[0], a[1], a[2], a[3]),
+    2706460486: (a) => new IFC4X3.IfcGroup(a[0], a[1], a[2], a[3], a[4]),
+    1251058090: (a) => new IFC4X3.IfcHeatExchangerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1806887404: (a) => new IFC4X3.IfcHumidifierType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2568555532: (a) => new IFC4X3.IfcImpactProtectionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3948183225: (a) => new IFC4X3.IfcImpactProtectionDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2571569899: (a) => new IFC4X3.IfcIndexedPolyCurve(a[0], a[1], a[2]),
+    3946677679: (a) => new IFC4X3.IfcInterceptorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3113134337: (a) => new IFC4X3.IfcIntersectionCurve(a[0], a[1], a[2]),
+    2391368822: (a) => new IFC4X3.IfcInventory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4288270099: (a) => new IFC4X3.IfcJunctionBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    679976338: (a) => new IFC4X3.IfcKerbType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3827777499: (a) => new IFC4X3.IfcLaborResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1051575348: (a) => new IFC4X3.IfcLampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1161773419: (a) => new IFC4X3.IfcLightFixtureType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2176059722: (a) => new IFC4X3.IfcLinearElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1770583370: (a) => new IFC4X3.IfcLiquidTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    525669439: (a) => new IFC4X3.IfcMarineFacility(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    976884017: (a) => new IFC4X3.IfcMarinePart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    377706215: (a) => new IFC4X3.IfcMechanicalFastener(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2108223431: (a) => new IFC4X3.IfcMechanicalFastenerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1114901282: (a) => new IFC4X3.IfcMedicalDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3181161470: (a) => new IFC4X3.IfcMemberType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1950438474: (a) => new IFC4X3.IfcMobileTelecommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    710110818: (a) => new IFC4X3.IfcMooringDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    977012517: (a) => new IFC4X3.IfcMotorConnectionType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    506776471: (a) => new IFC4X3.IfcNavigationElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4143007308: (a) => new IFC4X3.IfcOccupant(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3588315303: (a) => new IFC4X3.IfcOpeningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2837617999: (a) => new IFC4X3.IfcOutletType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    514975943: (a) => new IFC4X3.IfcPavementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2382730787: (a) => new IFC4X3.IfcPerformanceHistory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3566463478: (a) => new IFC4X3.IfcPermeableCoveringProperties(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3327091369: (a) => new IFC4X3.IfcPermit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1158309216: (a) => new IFC4X3.IfcPileType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    804291784: (a) => new IFC4X3.IfcPipeFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4231323485: (a) => new IFC4X3.IfcPipeSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4017108033: (a) => new IFC4X3.IfcPlateType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2839578677: (a) => new IFC4X3.IfcPolygonalFaceSet(a[0], a[1], a[2], a[3]),
+    3724593414: (a) => new IFC4X3.IfcPolyline(a[0]),
+    3740093272: (a) => new IFC4X3.IfcPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1946335990: (a) => new IFC4X3.IfcPositioningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2744685151: (a) => new IFC4X3.IfcProcedure(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2904328755: (a) => new IFC4X3.IfcProjectOrder(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3651124850: (a) => new IFC4X3.IfcProjectionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1842657554: (a) => new IFC4X3.IfcProtectiveDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2250791053: (a) => new IFC4X3.IfcPumpType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1763565496: (a) => new IFC4X3.IfcRailType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2893384427: (a) => new IFC4X3.IfcRailingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3992365140: (a) => new IFC4X3.IfcRailway(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1891881377: (a) => new IFC4X3.IfcRailwayPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2324767716: (a) => new IFC4X3.IfcRampFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1469900589: (a) => new IFC4X3.IfcRampType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    683857671: (a) => new IFC4X3.IfcRationalBSplineSurfaceWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    4021432810: (a) => new IFC4X3.IfcReferent(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3027567501: (a) => new IFC4X3.IfcReinforcingElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    964333572: (a) => new IFC4X3.IfcReinforcingElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2320036040: (a) => new IFC4X3.IfcReinforcingMesh(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]),
+    2310774935: (a) => new IFC4X3.IfcReinforcingMeshType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]),
+    3818125796: (a) => new IFC4X3.IfcRelAdheresToElement(a[0], a[1], a[2], a[3], a[4], a[5]),
+    160246688: (a) => new IFC4X3.IfcRelAggregates(a[0], a[1], a[2], a[3], a[4], a[5]),
+    146592293: (a) => new IFC4X3.IfcRoad(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    550521510: (a) => new IFC4X3.IfcRoadPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2781568857: (a) => new IFC4X3.IfcRoofType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1768891740: (a) => new IFC4X3.IfcSanitaryTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2157484638: (a) => new IFC4X3.IfcSeamCurve(a[0], a[1], a[2]),
+    3649235739: (a) => new IFC4X3.IfcSecondOrderPolynomialSpiral(a[0], a[1], a[2], a[3]),
+    544395925: (a) => new IFC4X3.IfcSegmentedReferenceCurve(a[0], a[1], a[2], a[3]),
+    1027922057: (a) => new IFC4X3.IfcSeventhOrderPolynomialSpiral(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4074543187: (a) => new IFC4X3.IfcShadingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    33720170: (a) => new IFC4X3.IfcSign(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3599934289: (a) => new IFC4X3.IfcSignType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1894708472: (a) => new IFC4X3.IfcSignalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    42703149: (a) => new IFC4X3.IfcSineSpiral(a[0], a[1], a[2], a[3]),
+    4097777520: (a) => new IFC4X3.IfcSite(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    2533589738: (a) => new IFC4X3.IfcSlabType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1072016465: (a) => new IFC4X3.IfcSolarDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3856911033: (a) => new IFC4X3.IfcSpace(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1305183839: (a) => new IFC4X3.IfcSpaceHeaterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3812236995: (a) => new IFC4X3.IfcSpaceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3112655638: (a) => new IFC4X3.IfcStackTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1039846685: (a) => new IFC4X3.IfcStairFlightType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    338393293: (a) => new IFC4X3.IfcStairType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    682877961: (a) => new IFC4X3.IfcStructuralAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1179482911: (a) => new IFC4X3.IfcStructuralConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1004757350: (a) => new IFC4X3.IfcStructuralCurveAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    4243806635: (a) => new IFC4X3.IfcStructuralCurveConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    214636428: (a) => new IFC4X3.IfcStructuralCurveMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2445595289: (a) => new IFC4X3.IfcStructuralCurveMemberVarying(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2757150158: (a) => new IFC4X3.IfcStructuralCurveReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1807405624: (a) => new IFC4X3.IfcStructuralLinearAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1252848954: (a) => new IFC4X3.IfcStructuralLoadGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2082059205: (a) => new IFC4X3.IfcStructuralPointAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    734778138: (a) => new IFC4X3.IfcStructuralPointConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1235345126: (a) => new IFC4X3.IfcStructuralPointReaction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2986769608: (a) => new IFC4X3.IfcStructuralResultGroup(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3657597509: (a) => new IFC4X3.IfcStructuralSurfaceAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1975003073: (a) => new IFC4X3.IfcStructuralSurfaceConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    148013059: (a) => new IFC4X3.IfcSubContractResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3101698114: (a) => new IFC4X3.IfcSurfaceFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2315554128: (a) => new IFC4X3.IfcSwitchingDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2254336722: (a) => new IFC4X3.IfcSystem(a[0], a[1], a[2], a[3], a[4]),
+    413509423: (a) => new IFC4X3.IfcSystemFurnitureElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    5716631: (a) => new IFC4X3.IfcTankType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3824725483: (a) => new IFC4X3.IfcTendon(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]),
+    2347447852: (a) => new IFC4X3.IfcTendonAnchor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3081323446: (a) => new IFC4X3.IfcTendonAnchorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3663046924: (a) => new IFC4X3.IfcTendonConduit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2281632017: (a) => new IFC4X3.IfcTendonConduitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2415094496: (a) => new IFC4X3.IfcTendonType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    618700268: (a) => new IFC4X3.IfcTrackElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1692211062: (a) => new IFC4X3.IfcTransformerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2097647324: (a) => new IFC4X3.IfcTransportElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1953115116: (a) => new IFC4X3.IfcTransportationDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3593883385: (a) => new IFC4X3.IfcTrimmedCurve(a[0], a[1], a[2], a[3], a[4]),
+    1600972822: (a) => new IFC4X3.IfcTubeBundleType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1911125066: (a) => new IFC4X3.IfcUnitaryEquipmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    728799441: (a) => new IFC4X3.IfcValveType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    840318589: (a) => new IFC4X3.IfcVehicle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1530820697: (a) => new IFC4X3.IfcVibrationDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3956297820: (a) => new IFC4X3.IfcVibrationDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2391383451: (a) => new IFC4X3.IfcVibrationIsolator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3313531582: (a) => new IFC4X3.IfcVibrationIsolatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2769231204: (a) => new IFC4X3.IfcVirtualElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    926996030: (a) => new IFC4X3.IfcVoidingFeature(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1898987631: (a) => new IFC4X3.IfcWallType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1133259667: (a) => new IFC4X3.IfcWasteTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4009809668: (a) => new IFC4X3.IfcWindowType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    4088093105: (a) => new IFC4X3.IfcWorkCalendar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1028945134: (a) => new IFC4X3.IfcWorkControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    4218914973: (a) => new IFC4X3.IfcWorkPlan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    3342526732: (a) => new IFC4X3.IfcWorkSchedule(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    1033361043: (a) => new IFC4X3.IfcZone(a[0], a[1], a[2], a[3], a[4], a[5]),
+    3821786052: (a) => new IFC4X3.IfcActionRequest(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1411407467: (a) => new IFC4X3.IfcAirTerminalBoxType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3352864051: (a) => new IFC4X3.IfcAirTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1871374353: (a) => new IFC4X3.IfcAirToAirHeatRecoveryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4266260250: (a) => new IFC4X3.IfcAlignmentCant(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1545765605: (a) => new IFC4X3.IfcAlignmentHorizontal(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    317615605: (a) => new IFC4X3.IfcAlignmentSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1662888072: (a) => new IFC4X3.IfcAlignmentVertical(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    3460190687: (a) => new IFC4X3.IfcAsset(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    1532957894: (a) => new IFC4X3.IfcAudioVisualApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1967976161: (a) => new IFC4X3.IfcBSplineCurve(a[0], a[1], a[2], a[3], a[4]),
+    2461110595: (a) => new IFC4X3.IfcBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    819618141: (a) => new IFC4X3.IfcBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3649138523: (a) => new IFC4X3.IfcBearingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    231477066: (a) => new IFC4X3.IfcBoilerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1136057603: (a) => new IFC4X3.IfcBoundaryCurve(a[0], a[1]),
+    644574406: (a) => new IFC4X3.IfcBridge(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    963979645: (a) => new IFC4X3.IfcBridgePart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    4031249490: (a) => new IFC4X3.IfcBuilding(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    2979338954: (a) => new IFC4X3.IfcBuildingElementPart(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    39481116: (a) => new IFC4X3.IfcBuildingElementPartType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1909888760: (a) => new IFC4X3.IfcBuildingElementProxyType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1177604601: (a) => new IFC4X3.IfcBuildingSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1876633798: (a) => new IFC4X3.IfcBuiltElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3862327254: (a) => new IFC4X3.IfcBuiltSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    2188180465: (a) => new IFC4X3.IfcBurnerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    395041908: (a) => new IFC4X3.IfcCableCarrierFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3293546465: (a) => new IFC4X3.IfcCableCarrierSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2674252688: (a) => new IFC4X3.IfcCableFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1285652485: (a) => new IFC4X3.IfcCableSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3203706013: (a) => new IFC4X3.IfcCaissonFoundationType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2951183804: (a) => new IFC4X3.IfcChillerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3296154744: (a) => new IFC4X3.IfcChimney(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2611217952: (a) => new IFC4X3.IfcCircle(a[0], a[1]),
+    1677625105: (a) => new IFC4X3.IfcCivilElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2301859152: (a) => new IFC4X3.IfcCoilType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    843113511: (a) => new IFC4X3.IfcColumn(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    400855858: (a) => new IFC4X3.IfcCommunicationsApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3850581409: (a) => new IFC4X3.IfcCompressorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2816379211: (a) => new IFC4X3.IfcCondenserType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3898045240: (a) => new IFC4X3.IfcConstructionEquipmentResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1060000209: (a) => new IFC4X3.IfcConstructionMaterialResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    488727124: (a) => new IFC4X3.IfcConstructionProductResource(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    2940368186: (a) => new IFC4X3.IfcConveyorSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    335055490: (a) => new IFC4X3.IfcCooledBeamType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2954562838: (a) => new IFC4X3.IfcCoolingTowerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1502416096: (a) => new IFC4X3.IfcCourse(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1973544240: (a) => new IFC4X3.IfcCovering(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3495092785: (a) => new IFC4X3.IfcCurtainWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3961806047: (a) => new IFC4X3.IfcDamperType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3426335179: (a) => new IFC4X3.IfcDeepFoundation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1335981549: (a) => new IFC4X3.IfcDiscreteAccessory(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2635815018: (a) => new IFC4X3.IfcDiscreteAccessoryType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    479945903: (a) => new IFC4X3.IfcDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1599208980: (a) => new IFC4X3.IfcDistributionChamberElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2063403501: (a) => new IFC4X3.IfcDistributionControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1945004755: (a) => new IFC4X3.IfcDistributionElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3040386961: (a) => new IFC4X3.IfcDistributionFlowElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3041715199: (a) => new IFC4X3.IfcDistributionPort(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3205830791: (a) => new IFC4X3.IfcDistributionSystem(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    395920057: (a) => new IFC4X3.IfcDoor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    869906466: (a) => new IFC4X3.IfcDuctFittingType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3760055223: (a) => new IFC4X3.IfcDuctSegmentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2030761528: (a) => new IFC4X3.IfcDuctSilencerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3071239417: (a) => new IFC4X3.IfcEarthworksCut(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1077100507: (a) => new IFC4X3.IfcEarthworksElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3376911765: (a) => new IFC4X3.IfcEarthworksFill(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    663422040: (a) => new IFC4X3.IfcElectricApplianceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2417008758: (a) => new IFC4X3.IfcElectricDistributionBoardType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3277789161: (a) => new IFC4X3.IfcElectricFlowStorageDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2142170206: (a) => new IFC4X3.IfcElectricFlowTreatmentDeviceType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1534661035: (a) => new IFC4X3.IfcElectricGeneratorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1217240411: (a) => new IFC4X3.IfcElectricMotorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    712377611: (a) => new IFC4X3.IfcElectricTimeControlType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1658829314: (a) => new IFC4X3.IfcEnergyConversionDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2814081492: (a) => new IFC4X3.IfcEngine(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3747195512: (a) => new IFC4X3.IfcEvaporativeCooler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    484807127: (a) => new IFC4X3.IfcEvaporator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1209101575: (a) => new IFC4X3.IfcExternalSpatialElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    346874300: (a) => new IFC4X3.IfcFanType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1810631287: (a) => new IFC4X3.IfcFilterType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4222183408: (a) => new IFC4X3.IfcFireSuppressionTerminalType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2058353004: (a) => new IFC4X3.IfcFlowController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4278956645: (a) => new IFC4X3.IfcFlowFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    4037862832: (a) => new IFC4X3.IfcFlowInstrumentType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    2188021234: (a) => new IFC4X3.IfcFlowMeter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3132237377: (a) => new IFC4X3.IfcFlowMovingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    987401354: (a) => new IFC4X3.IfcFlowSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    707683696: (a) => new IFC4X3.IfcFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2223149337: (a) => new IFC4X3.IfcFlowTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3508470533: (a) => new IFC4X3.IfcFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    900683007: (a) => new IFC4X3.IfcFooting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2713699986: (a) => new IFC4X3.IfcGeotechnicalAssembly(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    3009204131: (a) => new IFC4X3.IfcGrid(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    3319311131: (a) => new IFC4X3.IfcHeatExchanger(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2068733104: (a) => new IFC4X3.IfcHumidifier(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4175244083: (a) => new IFC4X3.IfcInterceptor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2176052936: (a) => new IFC4X3.IfcJunctionBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2696325953: (a) => new IFC4X3.IfcKerb(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    76236018: (a) => new IFC4X3.IfcLamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    629592764: (a) => new IFC4X3.IfcLightFixture(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1154579445: (a) => new IFC4X3.IfcLinearPositioningElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1638804497: (a) => new IFC4X3.IfcLiquidTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1437502449: (a) => new IFC4X3.IfcMedicalDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1073191201: (a) => new IFC4X3.IfcMember(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2078563270: (a) => new IFC4X3.IfcMobileTelecommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    234836483: (a) => new IFC4X3.IfcMooringDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2474470126: (a) => new IFC4X3.IfcMotorConnection(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2182337498: (a) => new IFC4X3.IfcNavigationElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    144952367: (a) => new IFC4X3.IfcOuterBoundaryCurve(a[0], a[1]),
+    3694346114: (a) => new IFC4X3.IfcOutlet(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1383356374: (a) => new IFC4X3.IfcPavement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1687234759: (a) => new IFC4X3.IfcPile(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    310824031: (a) => new IFC4X3.IfcPipeFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3612865200: (a) => new IFC4X3.IfcPipeSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3171933400: (a) => new IFC4X3.IfcPlate(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    738039164: (a) => new IFC4X3.IfcProtectiveDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    655969474: (a) => new IFC4X3.IfcProtectiveDeviceTrippingUnitType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    90941305: (a) => new IFC4X3.IfcPump(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3290496277: (a) => new IFC4X3.IfcRail(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2262370178: (a) => new IFC4X3.IfcRailing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3024970846: (a) => new IFC4X3.IfcRamp(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3283111854: (a) => new IFC4X3.IfcRampFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1232101972: (a) => new IFC4X3.IfcRationalBSplineCurveWithKnots(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3798194928: (a) => new IFC4X3.IfcReinforcedSoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    979691226: (a) => new IFC4X3.IfcReinforcingBar(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]),
+    2572171363: (a) => new IFC4X3.IfcReinforcingBarType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]),
+    2016517767: (a) => new IFC4X3.IfcRoof(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3053780830: (a) => new IFC4X3.IfcSanitaryTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1783015770: (a) => new IFC4X3.IfcSensorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1329646415: (a) => new IFC4X3.IfcShadingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    991950508: (a) => new IFC4X3.IfcSignal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1529196076: (a) => new IFC4X3.IfcSlab(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3420628829: (a) => new IFC4X3.IfcSolarDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1999602285: (a) => new IFC4X3.IfcSpaceHeater(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1404847402: (a) => new IFC4X3.IfcStackTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    331165859: (a) => new IFC4X3.IfcStair(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4252922144: (a) => new IFC4X3.IfcStairFlight(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    2515109513: (a) => new IFC4X3.IfcStructuralAnalysisModel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    385403989: (a) => new IFC4X3.IfcStructuralLoadCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]),
+    1621171031: (a) => new IFC4X3.IfcStructuralPlanarAction(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]),
+    1162798199: (a) => new IFC4X3.IfcSwitchingDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    812556717: (a) => new IFC4X3.IfcTank(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3425753595: (a) => new IFC4X3.IfcTrackElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3825984169: (a) => new IFC4X3.IfcTransformer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1620046519: (a) => new IFC4X3.IfcTransportElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3026737570: (a) => new IFC4X3.IfcTubeBundle(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3179687236: (a) => new IFC4X3.IfcUnitaryControlElementType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    4292641817: (a) => new IFC4X3.IfcUnitaryEquipment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4207607924: (a) => new IFC4X3.IfcValve(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2391406946: (a) => new IFC4X3.IfcWall(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3512223829: (a) => new IFC4X3.IfcWallStandardCase(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4237592921: (a) => new IFC4X3.IfcWasteTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3304561284: (a) => new IFC4X3.IfcWindow(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]),
+    2874132201: (a) => new IFC4X3.IfcActuatorType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    1634111441: (a) => new IFC4X3.IfcAirTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    177149247: (a) => new IFC4X3.IfcAirTerminalBox(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2056796094: (a) => new IFC4X3.IfcAirToAirHeatRecovery(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3001207471: (a) => new IFC4X3.IfcAlarmType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    325726236: (a) => new IFC4X3.IfcAlignment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    277319702: (a) => new IFC4X3.IfcAudioVisualAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    753842376: (a) => new IFC4X3.IfcBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4196446775: (a) => new IFC4X3.IfcBearing(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    32344328: (a) => new IFC4X3.IfcBoiler(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3314249567: (a) => new IFC4X3.IfcBorehole(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1095909175: (a) => new IFC4X3.IfcBuildingElementProxy(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2938176219: (a) => new IFC4X3.IfcBurner(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    635142910: (a) => new IFC4X3.IfcCableCarrierFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3758799889: (a) => new IFC4X3.IfcCableCarrierSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1051757585: (a) => new IFC4X3.IfcCableFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4217484030: (a) => new IFC4X3.IfcCableSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3999819293: (a) => new IFC4X3.IfcCaissonFoundation(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3902619387: (a) => new IFC4X3.IfcChiller(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    639361253: (a) => new IFC4X3.IfcCoil(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3221913625: (a) => new IFC4X3.IfcCommunicationsAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3571504051: (a) => new IFC4X3.IfcCompressor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2272882330: (a) => new IFC4X3.IfcCondenser(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    578613899: (a) => new IFC4X3.IfcControllerType(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]),
+    3460952963: (a) => new IFC4X3.IfcConveyorSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4136498852: (a) => new IFC4X3.IfcCooledBeam(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3640358203: (a) => new IFC4X3.IfcCoolingTower(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4074379575: (a) => new IFC4X3.IfcDamper(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3693000487: (a) => new IFC4X3.IfcDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1052013943: (a) => new IFC4X3.IfcDistributionChamberElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    562808652: (a) => new IFC4X3.IfcDistributionCircuit(a[0], a[1], a[2], a[3], a[4], a[5], a[6]),
+    1062813311: (a) => new IFC4X3.IfcDistributionControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    342316401: (a) => new IFC4X3.IfcDuctFitting(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3518393246: (a) => new IFC4X3.IfcDuctSegment(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1360408905: (a) => new IFC4X3.IfcDuctSilencer(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1904799276: (a) => new IFC4X3.IfcElectricAppliance(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    862014818: (a) => new IFC4X3.IfcElectricDistributionBoard(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3310460725: (a) => new IFC4X3.IfcElectricFlowStorageDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    24726584: (a) => new IFC4X3.IfcElectricFlowTreatmentDevice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    264262732: (a) => new IFC4X3.IfcElectricGenerator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    402227799: (a) => new IFC4X3.IfcElectricMotor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1003880860: (a) => new IFC4X3.IfcElectricTimeControl(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3415622556: (a) => new IFC4X3.IfcFan(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    819412036: (a) => new IFC4X3.IfcFilter(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    1426591983: (a) => new IFC4X3.IfcFireSuppressionTerminal(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    182646315: (a) => new IFC4X3.IfcFlowInstrument(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    2680139844: (a) => new IFC4X3.IfcGeomodel(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    1971632696: (a) => new IFC4X3.IfcGeoslice(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]),
+    2295281155: (a) => new IFC4X3.IfcProtectiveDeviceTrippingUnit(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4086658281: (a) => new IFC4X3.IfcSensor(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    630975310: (a) => new IFC4X3.IfcUnitaryControlElement(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    4288193352: (a) => new IFC4X3.IfcActuator(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    3087945054: (a) => new IFC4X3.IfcAlarm(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]),
+    25142252: (a) => new IFC4X3.IfcController(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])
+  };
+  ToRawLineData[3] = {
+    3630933823: (i) => [i.Role, i.UserDefinedRole, i.Description],
+    618182010: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose],
+    2879124712: (i) => [i.StartTag, i.EndTag],
+    3633395639: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartHeight, i.StartGradient, i.EndGradient, i.RadiusOfCurvature, i.PredefinedType],
+    639542469: (i) => [i.ApplicationDeveloper, i.Version, i.ApplicationFullName, i.ApplicationIdentifier],
+    411424972: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],
+    130549933: (i) => [i.Identifier, i.Name, i.Description, i.TimeOfApproval, i.Status, i.Level, i.Qualifier, i.RequestingApproval, i.GivingApproval],
+    4037036970: (i) => [i.Name],
+    1560379544: (i) => [i.Name, !i.TranslationalStiffnessByLengthX ? null : Labelise(i.TranslationalStiffnessByLengthX), !i.TranslationalStiffnessByLengthY ? null : Labelise(i.TranslationalStiffnessByLengthY), !i.TranslationalStiffnessByLengthZ ? null : Labelise(i.TranslationalStiffnessByLengthZ), !i.RotationalStiffnessByLengthX ? null : Labelise(i.RotationalStiffnessByLengthX), !i.RotationalStiffnessByLengthY ? null : Labelise(i.RotationalStiffnessByLengthY), !i.RotationalStiffnessByLengthZ ? null : Labelise(i.RotationalStiffnessByLengthZ)],
+    3367102660: (i) => [i.Name, !i.TranslationalStiffnessByAreaX ? null : Labelise(i.TranslationalStiffnessByAreaX), !i.TranslationalStiffnessByAreaY ? null : Labelise(i.TranslationalStiffnessByAreaY), !i.TranslationalStiffnessByAreaZ ? null : Labelise(i.TranslationalStiffnessByAreaZ)],
+    1387855156: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ)],
+    2069777674: (i) => [i.Name, !i.TranslationalStiffnessX ? null : Labelise(i.TranslationalStiffnessX), !i.TranslationalStiffnessY ? null : Labelise(i.TranslationalStiffnessY), !i.TranslationalStiffnessZ ? null : Labelise(i.TranslationalStiffnessZ), !i.RotationalStiffnessX ? null : Labelise(i.RotationalStiffnessX), !i.RotationalStiffnessY ? null : Labelise(i.RotationalStiffnessY), !i.RotationalStiffnessZ ? null : Labelise(i.RotationalStiffnessZ), !i.WarpingStiffness ? null : Labelise(i.WarpingStiffness)],
+    2859738748: (_) => [],
+    2614616156: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement],
+    2732653382: (i) => [i.SurfaceOnRelatingElement, i.SurfaceOnRelatedElement],
+    775493141: (i) => [i.VolumeOnRelatingElement, i.VolumeOnRelatedElement],
+    1959218052: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade],
+    1785450214: (i) => [i.SourceCRS, i.TargetCRS],
+    1466758467: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum],
+    602808272: (i) => [i.Name, i.Description, i.AppliedValue, i.UnitBasis, i.ApplicableDate, i.FixedUntilDate, i.Category, i.Condition, i.ArithmeticOperator, i.Components],
+    1765591967: (i) => [i.Elements, i.UnitType, i.UserDefinedType, i.Name],
+    1045800335: (i) => [i.Unit, i.Exponent],
+    2949456006: (i) => [i.LengthExponent, i.MassExponent, i.TimeExponent, i.ElectricCurrentExponent, i.ThermodynamicTemperatureExponent, i.AmountOfSubstanceExponent, i.LuminousIntensityExponent],
+    4294318154: (_) => [],
+    3200245327: (i) => [i.Location, i.Identification, i.Name],
+    2242383968: (i) => [i.Location, i.Identification, i.Name],
+    1040185647: (i) => [i.Location, i.Identification, i.Name],
+    3548104201: (i) => [i.Location, i.Identification, i.Name],
+    852622518: (i) => {
+      var _a;
+      return [i.AxisTag, i.AxisCurve, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    3020489413: (i) => [i.TimeStamp, i.ListValues.map((p) => Labelise(p))],
+    2655187982: (i) => [i.Name, i.Version, i.Publisher, i.VersionDate, i.Location, i.Description],
+    3452421091: (i) => [i.Location, i.Identification, i.Name, i.Description, i.Language, i.ReferencedLibrary],
+    4162380809: (i) => [i.MainPlaneAngle, i.SecondaryPlaneAngle, i.LuminousIntensity],
+    1566485204: (i) => [i.LightDistributionCurve, i.DistributionData],
+    3057273783: (i) => [i.SourceCRS, i.TargetCRS, i.Eastings, i.Northings, i.OrthogonalHeight, i.XAxisAbscissa, i.XAxisOrdinate, i.Scale, i.ScaleY, i.ScaleZ],
+    1847130766: (i) => [i.MaterialClassifications, i.ClassifiedMaterial],
+    760658860: (_) => [],
+    248100487: (i) => {
+      var _a;
+      return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString(), i.Name, i.Description, i.Category, i.Priority];
+    },
+    3303938423: (i) => [i.MaterialLayers, i.LayerSetName, i.Description],
+    1847252529: (i) => {
+      var _a;
+      return [i.Material, i.LayerThickness, (_a = i.IsVentilated) == null ? void 0 : _a.toString(), i.Name, i.Description, i.Category, i.Priority, i.OffsetDirection, i.OffsetValues];
+    },
+    2199411900: (i) => [i.Materials],
+    2235152071: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category],
+    164193824: (i) => [i.Name, i.Description, i.MaterialProfiles, i.CompositeProfile],
+    552965576: (i) => [i.Name, i.Description, i.Material, i.Profile, i.Priority, i.Category, i.OffsetValues],
+    1507914824: (_) => [],
+    2597039031: (i) => [Labelise(i.ValueComponent), i.UnitComponent],
+    3368373690: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.Benchmark, i.ValueSource, i.DataValue, i.ReferencePath],
+    2706619895: (i) => [i.Currency],
+    1918398963: (i) => [i.Dimensions, i.UnitType],
+    3701648758: (i) => [i.PlacementRelTo],
+    2251480897: (i) => [i.Name, i.Description, i.ConstraintGrade, i.ConstraintSource, i.CreatingActor, i.CreationTime, i.UserDefinedGrade, i.BenchmarkValues, i.LogicalAggregator, i.ObjectiveQualifier, i.UserDefinedQualifier],
+    4251960020: (i) => [i.Identification, i.Name, i.Description, i.Roles, i.Addresses],
+    1207048766: (i) => [i.OwningUser, i.OwningApplication, i.State, i.ChangeAction, i.LastModifiedDate, i.LastModifyingUser, i.LastModifyingApplication, i.CreationDate],
+    2077209135: (i) => [i.Identification, i.FamilyName, i.GivenName, i.MiddleNames, i.PrefixTitles, i.SuffixTitles, i.Roles, i.Addresses],
+    101040310: (i) => [i.ThePerson, i.TheOrganization, i.Roles],
+    2483315170: (i) => [i.Name, i.Description],
+    2226359599: (i) => [i.Name, i.Description, i.Unit],
+    3355820592: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.InternalLocation, i.AddressLines, i.PostalBox, i.Town, i.Region, i.PostalCode, i.Country],
+    677532197: (_) => [],
+    2022622350: (i) => [i.Name, i.Description, i.AssignedItems, i.Identifier],
+    1304840413: (i) => {
+      var _a, _b, _c;
+      return [i.Name, i.Description, i.AssignedItems, i.Identifier, (_a = i.LayerOn) == null ? void 0 : _a.toString(), (_b = i.LayerFrozen) == null ? void 0 : _b.toString(), (_c = i.LayerBlocked) == null ? void 0 : _c.toString(), i.LayerStyles];
+    },
+    3119450353: (i) => [i.Name],
+    2095639259: (i) => [i.Name, i.Description, i.Representations],
+    3958567839: (i) => [i.ProfileType, i.ProfileName],
+    3843373140: (i) => [i.Name, i.Description, i.GeodeticDatum, i.VerticalDatum, i.MapProjection, i.MapZone, i.MapUnit],
+    986844984: (_) => [],
+    3710013099: (i) => [i.Name, i.EnumerationValues.map((p) => Labelise(p)), i.Unit],
+    2044713172: (i) => [i.Name, i.Description, i.Unit, i.AreaValue, i.Formula],
+    2093928680: (i) => [i.Name, i.Description, i.Unit, i.CountValue, i.Formula],
+    931644368: (i) => [i.Name, i.Description, i.Unit, i.LengthValue, i.Formula],
+    2691318326: (i) => [i.Name, i.Description, i.Unit, i.NumberValue, i.Formula],
+    3252649465: (i) => [i.Name, i.Description, i.Unit, i.TimeValue, i.Formula],
+    2405470396: (i) => [i.Name, i.Description, i.Unit, i.VolumeValue, i.Formula],
+    825690147: (i) => [i.Name, i.Description, i.Unit, i.WeightValue, i.Formula],
+    3915482550: (i) => [i.RecurrenceType, i.DayComponent, i.WeekdayComponent, i.MonthComponent, i.Position, i.Interval, i.Occurrences, i.TimePeriods],
+    2433181523: (i) => [i.TypeIdentifier, i.AttributeIdentifier, i.InstanceName, i.ListPositions, i.InnerReference],
+    1076942058: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    3377609919: (i) => [i.ContextIdentifier, i.ContextType],
+    3008791417: (_) => [],
+    1660063152: (i) => [i.MappingOrigin, i.MappedRepresentation],
+    2439245199: (i) => [i.Name, i.Description],
+    2341007311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    448429030: (i) => [i.Dimensions, i.UnitType, i.Prefix, i.Name],
+    1054537805: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin],
+    867548509: (i) => {
+      var _a;
+      return [i.ShapeRepresentations, i.Name, i.Description, (_a = i.ProductDefinitional) == null ? void 0 : _a.toString(), i.PartOfProductDefinitionShape];
+    },
+    3982875396: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    4240577450: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    2273995522: (i) => [i.Name],
+    2162789131: (i) => [i.Name],
+    3478079324: (i) => [i.Name, i.Values, i.Locations],
+    609421318: (i) => [i.Name],
+    2525727697: (i) => [i.Name],
+    3408363356: (i) => [i.Name, i.DeltaTConstant, i.DeltaTY, i.DeltaTZ],
+    2830218821: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    3958052878: (i) => [i.Item, i.Styles, i.Name],
+    3049322572: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    2934153892: (i) => [i.Name, i.SurfaceReinforcement1, i.SurfaceReinforcement2, i.ShearReinforcement],
+    1300840506: (i) => [i.Name, i.Side, i.Styles],
+    3303107099: (i) => [i.DiffuseTransmissionColour, i.DiffuseReflectionColour, i.TransmissionColour, i.ReflectanceColour],
+    1607154358: (i) => [i.RefractionIndex, i.DispersionFactor],
+    846575682: (i) => [i.SurfaceColour, i.Transparency],
+    1351298697: (i) => [i.Textures],
+    626085974: (i) => {
+      var _a, _b;
+      return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter];
+    },
+    985171141: (i) => [i.Name, i.Rows, i.Columns],
+    2043862942: (i) => [i.Identifier, i.Name, i.Description, i.Unit, i.ReferencePath],
+    531007025: (i) => {
+      var _a;
+      return [!i.RowCells ? null : i.RowCells.map((p) => Labelise(p)), (_a = i.IsHeading) == null ? void 0 : _a.toString()];
+    },
+    1549132990: (i) => {
+      var _a;
+      return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, (_a = i.IsCritical) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion];
+    },
+    2771591690: (i) => {
+      var _a;
+      return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.DurationType, i.ScheduleDuration, i.ScheduleStart, i.ScheduleFinish, i.EarlyStart, i.EarlyFinish, i.LateStart, i.LateFinish, i.FreeFloat, i.TotalFloat, (_a = i.IsCritical) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualDuration, i.ActualStart, i.ActualFinish, i.RemainingTime, i.Completion, i.Recurrence];
+    },
+    912023232: (i) => [i.Purpose, i.Description, i.UserDefinedPurpose, i.TelephoneNumbers, i.FacsimileNumbers, i.PagerNumber, i.ElectronicMailAddresses, i.WWWHomePageURL, i.MessagingIDs],
+    1447204868: (i) => {
+      var _a;
+      return [i.Name, i.TextCharacterAppearance, i.TextStyle, i.TextFontStyle, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()];
+    },
+    2636378356: (i) => [i.Colour, i.BackgroundColour],
+    1640371178: (i) => [!i.TextIndent ? null : Labelise(i.TextIndent), i.TextAlign, i.TextDecoration, !i.LetterSpacing ? null : Labelise(i.LetterSpacing), !i.WordSpacing ? null : Labelise(i.WordSpacing), i.TextTransform, !i.LineHeight ? null : Labelise(i.LineHeight)],
+    280115917: (i) => [i.Maps],
+    1742049831: (i) => [i.Maps, i.Mode, i.Parameter],
+    222769930: (i) => [i.TexCoordIndex, i.TexCoordsOf],
+    1010789467: (i) => [i.TexCoordIndex, i.TexCoordsOf, i.InnerTexCoordIndices],
+    2552916305: (i) => [i.Maps, i.Vertices, i.MappedTo],
+    1210645708: (i) => [i.Coordinates],
+    3611470254: (i) => [i.TexCoordsList],
+    1199560280: (i) => [i.StartTime, i.EndTime],
+    3101149627: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit],
+    581633288: (i) => [i.ListValues.map((p) => Labelise(p))],
+    1377556343: (_) => [],
+    1735638870: (i) => [i.ContextOfItems, i.RepresentationIdentifier, i.RepresentationType, i.Items],
+    180925521: (i) => [i.Units],
+    2799835756: (_) => [],
+    1907098498: (i) => [i.VertexGeometry],
+    891718957: (i) => [i.IntersectingAxes, i.OffsetDistances],
+    1236880293: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.RecurrencePattern, i.StartDate, i.FinishDate],
+    3752311538: (i) => [i.StartTag, i.EndTag, i.StartDistAlong, i.HorizontalLength, i.StartCantLeft, i.EndCantLeft, i.StartCantRight, i.EndCantRight, i.PredefinedType],
+    536804194: (i) => [i.StartTag, i.EndTag, i.StartPoint, i.StartDirection, i.StartRadiusOfCurvature, i.EndRadiusOfCurvature, i.SegmentLength, i.GravityCenterLineHeight, i.PredefinedType],
+    3869604511: (i) => [i.Name, i.Description, i.RelatingApproval, i.RelatedApprovals],
+    3798115385: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve],
+    1310608509: (i) => [i.ProfileType, i.ProfileName, i.Curve],
+    2705031697: (i) => [i.ProfileType, i.ProfileName, i.OuterCurve, i.InnerCurves],
+    616511568: (i) => {
+      var _a, _b;
+      return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.RasterFormat, i.RasterCode];
+    },
+    3150382593: (i) => [i.ProfileType, i.ProfileName, i.Curve, i.Thickness],
+    747523909: (i) => [i.Source, i.Edition, i.EditionDate, i.Name, i.Description, i.Specification, i.ReferenceTokens],
+    647927063: (i) => [i.Location, i.Identification, i.Name, i.ReferencedSource, i.Description, i.Sort],
+    3285139300: (i) => [i.ColourList],
+    3264961684: (i) => [i.Name],
+    1485152156: (i) => [i.ProfileType, i.ProfileName, i.Profiles, i.Label],
+    370225590: (i) => [i.CfsFaces],
+    1981873012: (i) => [i.CurveOnRelatingElement, i.CurveOnRelatedElement],
+    45288368: (i) => [i.PointOnRelatingElement, i.PointOnRelatedElement, i.EccentricityInX, i.EccentricityInY, i.EccentricityInZ],
+    3050246964: (i) => [i.Dimensions, i.UnitType, i.Name],
+    2889183280: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor],
+    2713554722: (i) => [i.Dimensions, i.UnitType, i.Name, i.ConversionFactor, i.ConversionOffset],
+    539742890: (i) => [i.Name, i.Description, i.RelatingMonetaryUnit, i.RelatedMonetaryUnit, i.ExchangeRate, i.RateDateTime, i.RateSource],
+    3800577675: (i) => {
+      var _a;
+      return [i.Name, i.CurveFont, !i.CurveWidth ? null : Labelise(i.CurveWidth), i.CurveColour, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()];
+    },
+    1105321065: (i) => [i.Name, i.PatternList],
+    2367409068: (i) => [i.Name, i.CurveStyleFont, i.CurveFontScaling],
+    3510044353: (i) => [i.VisibleSegmentLength, i.InvisibleSegmentLength],
+    3632507154: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],
+    1154170062: (i) => [i.Identification, i.Name, i.Description, i.Location, i.Purpose, i.IntendedUse, i.Scope, i.Revision, i.DocumentOwner, i.Editors, i.CreationTime, i.LastRevisionTime, i.ElectronicFormat, i.ValidFrom, i.ValidUntil, i.Confidentiality, i.Status],
+    770865208: (i) => [i.Name, i.Description, i.RelatingDocument, i.RelatedDocuments, i.RelationshipType],
+    3732053477: (i) => [i.Location, i.Identification, i.Name, i.Description, i.ReferencedDocument],
+    3900360178: (i) => [i.EdgeStart, i.EdgeEnd],
+    476780140: (i) => {
+      var _a;
+      return [i.EdgeStart, i.EdgeEnd, i.EdgeGeometry, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    211053100: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ActualDate, i.EarlyDate, i.LateDate, i.ScheduleDate],
+    297599258: (i) => [i.Name, i.Description, i.Properties],
+    1437805879: (i) => [i.Name, i.Description, i.RelatingReference, i.RelatedResourceObjects],
+    2556980723: (i) => [i.Bounds],
+    1809719519: (i) => {
+      var _a;
+      return [i.Bound, (_a = i.Orientation) == null ? void 0 : _a.toString()];
+    },
+    803316827: (i) => {
+      var _a;
+      return [i.Bound, (_a = i.Orientation) == null ? void 0 : _a.toString()];
+    },
+    3008276851: (i) => {
+      var _a;
+      return [i.Bounds, i.FaceSurface, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    4219587988: (i) => [i.Name, i.TensionFailureX, i.TensionFailureY, i.TensionFailureZ, i.CompressionFailureX, i.CompressionFailureY, i.CompressionFailureZ],
+    738692330: (i) => {
+      var _a;
+      return [i.Name, i.FillStyles, (_a = i.ModelOrDraughting) == null ? void 0 : _a.toString()];
+    },
+    3448662350: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth],
+    2453401579: (_) => [],
+    4142052618: (i) => [i.ContextIdentifier, i.ContextType, i.CoordinateSpaceDimension, i.Precision, i.WorldCoordinateSystem, i.TrueNorth, i.ParentContext, i.TargetScale, i.TargetView, i.UserDefinedTargetView],
+    3590301190: (i) => [i.Elements],
+    178086475: (i) => [i.PlacementRelTo, i.PlacementLocation, i.PlacementRefDirection],
+    812098782: (i) => {
+      var _a;
+      return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString()];
+    },
+    3905492369: (i) => {
+      var _a, _b;
+      return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.URLReference];
+    },
+    3570813810: (i) => [i.MappedTo, i.Opacity, i.Colours, i.ColourIndex],
+    1437953363: (i) => [i.Maps, i.MappedTo, i.TexCoords],
+    2133299955: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndex],
+    3741457305: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.Values],
+    1585845231: (i) => [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, Labelise(i.LagValue), i.DurationType],
+    1402838566: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],
+    125510826: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity],
+    2604431987: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Orientation],
+    4266656042: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.ColourAppearance, i.ColourTemperature, i.LuminousFlux, i.LightEmissionSource, i.LightDistributionDataSource],
+    1520743889: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation],
+    3422422726: (i) => [i.Name, i.LightColour, i.AmbientIntensity, i.Intensity, i.Position, i.Radius, i.ConstantAttenuation, i.DistanceAttenuation, i.QuadricAttenuation, i.Orientation, i.ConcentrationExponent, i.SpreadAngle, i.BeamWidthAngle],
+    388784114: (i) => [i.PlacementRelTo, i.RelativePlacement, i.CartesianPosition],
+    2624227202: (i) => [i.PlacementRelTo, i.RelativePlacement],
+    1008929658: (_) => [],
+    2347385850: (i) => [i.MappingSource, i.MappingTarget],
+    1838606355: (i) => [i.Name, i.Description, i.Category],
+    3708119e3: (i) => [i.Name, i.Description, i.Material, i.Fraction, i.Category],
+    2852063980: (i) => [i.Name, i.Description, i.MaterialConstituents],
+    2022407955: (i) => [i.Name, i.Description, i.Representations, i.RepresentedMaterial],
+    1303795690: (i) => [i.ForLayerSet, i.LayerSetDirection, i.DirectionSense, i.OffsetFromReferenceLine, i.ReferenceExtent],
+    3079605661: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent],
+    3404854881: (i) => [i.ForProfileSet, i.CardinalPoint, i.ReferenceExtent, i.ForProfileEndSet, i.CardinalEndPoint],
+    3265635763: (i) => [i.Name, i.Description, i.Properties, i.Material],
+    853536259: (i) => [i.Name, i.Description, i.RelatingMaterial, i.RelatedMaterials, i.MaterialExpression],
+    2998442950: (i) => [i.ProfileType, i.ProfileName, i.ParentProfile, i.Operator, i.Label],
+    219451334: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    182550632: (i) => {
+      var _a;
+      return [i.ProfileType, i.ProfileName, (_a = i.HorizontalWidths) == null ? void 0 : _a.toString(), i.Widths, i.Slopes, i.Tags, i.OffsetPoint];
+    },
+    2665983363: (i) => [i.CfsFaces],
+    1411181986: (i) => [i.Name, i.Description, i.RelatingOrganization, i.RelatedOrganizations],
+    1029017970: (i) => {
+      var _a;
+      return [i.EdgeStart, i.EdgeEnd, i.EdgeElement, (_a = i.Orientation) == null ? void 0 : _a.toString()];
+    },
+    2529465313: (i) => [i.ProfileType, i.ProfileName, i.Position],
+    2519244187: (i) => [i.EdgeList],
+    3021840470: (i) => [i.Name, i.Description, i.HasQuantities, i.Discrimination, i.Quality, i.Usage],
+    597895409: (i) => {
+      var _a, _b;
+      return [(_a = i.RepeatS) == null ? void 0 : _a.toString(), (_b = i.RepeatT) == null ? void 0 : _b.toString(), i.Mode, i.TextureTransform, i.Parameter, i.Width, i.Height, i.ColourComponents, i.Pixel];
+    },
+    2004835150: (i) => [i.Location],
+    1663979128: (i) => [i.SizeInX, i.SizeInY],
+    2067069095: (_) => [],
+    2165702409: (i) => [Labelise(i.DistanceAlong), i.OffsetLateral, i.OffsetVertical, i.OffsetLongitudinal, i.BasisCurve],
+    4022376103: (i) => [i.BasisCurve, i.PointParameter],
+    1423911732: (i) => [i.BasisSurface, i.PointParameterU, i.PointParameterV],
+    2924175390: (i) => [i.Polygon],
+    2775532180: (i) => {
+      var _a;
+      return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString(), i.Position, i.PolygonalBoundary];
+    },
+    3727388367: (i) => [i.Name],
+    3778827333: (_) => [],
+    1775413392: (i) => [i.Name],
+    673634403: (i) => [i.Name, i.Description, i.Representations],
+    2802850158: (i) => [i.Name, i.Description, i.Properties, i.ProfileDefinition],
+    2598011224: (i) => [i.Name, i.Specification],
+    1680319473: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    148025276: (i) => [i.Name, i.Description, i.DependingProperty, i.DependantProperty, i.Expression],
+    3357820518: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    1482703590: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    2090586900: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    3615266464: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim],
+    3413951693: (i) => [i.Name, i.Description, i.StartTime, i.EndTime, i.TimeSeriesDataType, i.DataOrigin, i.UserDefinedDataOrigin, i.Unit, i.TimeStep, i.Values],
+    1580146022: (i) => [i.TotalCrossSectionArea, i.SteelGrade, i.BarSurface, i.EffectiveDepth, i.NominalBarDiameter, i.BarCount],
+    478536968: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    2943643501: (i) => [i.Name, i.Description, i.RelatedResourceObjects, i.RelatingApproval],
+    1608871552: (i) => [i.Name, i.Description, i.RelatingConstraint, i.RelatedResourceObjects],
+    1042787934: (i) => {
+      var _a;
+      return [i.Name, i.DataOrigin, i.UserDefinedDataOrigin, i.ScheduleWork, i.ScheduleUsage, i.ScheduleStart, i.ScheduleFinish, i.ScheduleContour, i.LevelingDelay, (_a = i.IsOverAllocated) == null ? void 0 : _a.toString(), i.StatusTime, i.ActualWork, i.ActualUsage, i.ActualStart, i.ActualFinish, i.RemainingWork, i.RemainingUsage, i.Completion];
+    },
+    2778083089: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.RoundingRadius],
+    2042790032: (i) => [i.SectionType, i.StartProfile, i.EndProfile],
+    4165799628: (i) => [i.LongitudinalStartPosition, i.LongitudinalEndPosition, i.TransversePosition, i.ReinforcementRole, i.SectionDefinition, i.CrossSectionReinforcementDefinitions],
+    1509187699: (i) => [i.SpineCurve, i.CrossSections, i.CrossSectionPositions],
+    823603102: (i) => [i.Transition],
+    4124623270: (i) => [i.SbsmBoundary],
+    3692461612: (i) => [i.Name, i.Specification],
+    2609359061: (i) => [i.Name, i.SlippageX, i.SlippageY, i.SlippageZ],
+    723233188: (_) => [],
+    1595516126: (i) => [i.Name, i.LinearForceX, i.LinearForceY, i.LinearForceZ, i.LinearMomentX, i.LinearMomentY, i.LinearMomentZ],
+    2668620305: (i) => [i.Name, i.PlanarForceX, i.PlanarForceY, i.PlanarForceZ],
+    2473145415: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ],
+    1973038258: (i) => [i.Name, i.DisplacementX, i.DisplacementY, i.DisplacementZ, i.RotationalDisplacementRX, i.RotationalDisplacementRY, i.RotationalDisplacementRZ, i.Distortion],
+    1597423693: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ],
+    1190533807: (i) => [i.Name, i.ForceX, i.ForceY, i.ForceZ, i.MomentX, i.MomentY, i.MomentZ, i.WarpingMoment],
+    2233826070: (i) => [i.EdgeStart, i.EdgeEnd, i.ParentEdge],
+    2513912981: (_) => [],
+    1878645084: (i) => [i.SurfaceColour, i.Transparency, i.DiffuseColour, i.TransmissionColour, i.DiffuseTransmissionColour, i.ReflectionColour, i.SpecularColour, !i.SpecularHighlight ? null : Labelise(i.SpecularHighlight), i.ReflectanceMethod],
+    2247615214: (i) => [i.SweptArea, i.Position],
+    1260650574: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam],
+    1096409881: (i) => [i.Directrix, i.Radius, i.InnerRadius, i.StartParam, i.EndParam, i.FilletRadius],
+    230924584: (i) => [i.SweptCurve, i.Position],
+    3071757647: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.WebEdgeRadius, i.WebSlope, i.FlangeSlope],
+    901063453: (_) => [],
+    4282788508: (i) => [i.Literal, i.Placement, i.Path],
+    3124975700: (i) => [i.Literal, i.Placement, i.Path, i.Extent, i.BoxAlignment],
+    1983826977: (i) => [i.Name, i.FontFamily, i.FontStyle, i.FontVariant, i.FontWeight, Labelise(i.FontSize)],
+    2715220739: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomXDim, i.TopXDim, i.YDim, i.TopXOffset],
+    1628702193: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets],
+    3736923433: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType],
+    2347495698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag],
+    3698973494: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType],
+    427810014: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius, i.FlangeSlope],
+    1417489154: (i) => [i.Orientation, i.Magnitude],
+    2759199220: (i) => [i.LoopVertex],
+    2543172580: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.FlangeWidth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.EdgeRadius],
+    3406155212: (i) => {
+      var _a;
+      return [i.Bounds, i.FaceSurface, (_a = i.SameSense) == null ? void 0 : _a.toString()];
+    },
+    669184980: (i) => [i.OuterBoundary, i.InnerBoundaries],
+    3207858831: (i) => [i.ProfileType, i.ProfileName, i.Position, i.BottomFlangeWidth, i.OverallDepth, i.WebThickness, i.BottomFlangeThickness, i.BottomFlangeFilletRadius, i.TopFlangeWidth, i.TopFlangeThickness, i.TopFlangeFilletRadius, i.BottomFlangeEdgeRadius, i.BottomFlangeSlope, i.TopFlangeEdgeRadius, i.TopFlangeSlope],
+    4261334040: (i) => [i.Location, i.Axis],
+    3125803723: (i) => [i.Location, i.RefDirection],
+    2740243338: (i) => [i.Location, i.Axis, i.RefDirection],
+    3425423356: (i) => [i.Location, i.Axis, i.RefDirection],
+    2736907675: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],
+    4182860854: (_) => [],
+    2581212453: (i) => [i.Corner, i.XDim, i.YDim, i.ZDim],
+    2713105998: (i) => {
+      var _a;
+      return [i.BaseSurface, (_a = i.AgreementFlag) == null ? void 0 : _a.toString(), i.Enclosure];
+    },
+    2898889636: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.WallThickness, i.Girth, i.InternalFilletRadius],
+    1123145078: (i) => [i.Coordinates],
+    574549367: (_) => [],
+    1675464909: (i) => [i.CoordList, i.TagList],
+    2059837836: (i) => [i.CoordList, i.TagList],
+    59481748: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],
+    3749851601: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale],
+    3486308946: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Scale2],
+    3331915920: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3],
+    1416205885: (i) => [i.Axis1, i.Axis2, i.LocalOrigin, i.Scale, i.Axis3, i.Scale2, i.Scale3],
+    1383045692: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius],
+    2205249479: (i) => [i.CfsFaces],
+    776857604: (i) => [i.Name, i.Red, i.Green, i.Blue],
+    2542286263: (i) => [i.Name, i.Specification, i.UsageName, i.HasProperties],
+    2485617015: (i) => {
+      var _a;
+      return [i.Transition, (_a = i.SameSense) == null ? void 0 : _a.toString(), i.ParentCurve];
+    },
+    2574617495: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity],
+    3419103109: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],
+    1815067380: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    2506170314: (i) => [i.Position],
+    2147822146: (i) => [i.TreeRootExpression],
+    2601014836: (_) => [],
+    2827736869: (i) => [i.BasisSurface, i.OuterBoundary, i.InnerBoundaries],
+    2629017746: (i) => {
+      var _a;
+      return [i.BasisSurface, i.Boundaries, (_a = i.ImplicitOuter) == null ? void 0 : _a.toString()];
+    },
+    4212018352: (i) => [i.Transition, i.Placement, Labelise(i.SegmentStart), Labelise(i.SegmentLength), i.ParentCurve],
+    32440307: (i) => [i.DirectionRatios],
+    593015953: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam)],
+    1472233963: (i) => [i.EdgeList],
+    1883228015: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.MethodOfMeasurement, i.Quantities],
+    339256511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2777663545: (i) => [i.Position],
+    2835456948: (i) => [i.ProfileType, i.ProfileName, i.Position, i.SemiAxis1, i.SemiAxis2],
+    4024345920: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType],
+    477187591: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth],
+    2804161546: (i) => [i.SweptArea, i.Position, i.ExtrudedDirection, i.Depth, i.EndSweptArea],
+    2047409740: (i) => [i.FbsmFaces],
+    374418227: (i) => [i.HatchLineAppearance, i.StartOfNextHatchLine, i.PointOfReferenceHatchLine, i.PatternStart, i.HatchLineAngle],
+    315944413: (i) => [i.TilingPattern, i.Tiles, i.TilingScale],
+    2652556860: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference],
+    4238390223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1268542332: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.AssemblyPlace, i.PredefinedType],
+    4095422895: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    987898635: (i) => [i.Elements],
+    1484403080: (i) => [i.ProfileType, i.ProfileName, i.Position, i.OverallWidth, i.OverallDepth, i.WebThickness, i.FlangeThickness, i.FilletRadius, i.FlangeEdgeRadius, i.FlangeSlope],
+    178912537: (i) => [i.CoordIndex],
+    2294589976: (i) => [i.CoordIndex, i.InnerCoordIndices],
+    3465909080: (i) => [i.Maps, i.MappedTo, i.TexCoords, i.TexCoordIndices],
+    572779678: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Depth, i.Width, i.Thickness, i.FilletRadius, i.EdgeRadius, i.LegSlope],
+    428585644: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1281925730: (i) => [i.Pnt, i.Dir],
+    1425443689: (i) => [i.Outer],
+    3888040117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    590820931: (i) => [i.BasisCurve],
+    3388369263: (i) => {
+      var _a;
+      return [i.BasisCurve, i.Distance, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    3505215534: (i) => {
+      var _a;
+      return [i.BasisCurve, i.Distance, (_a = i.SelfIntersect) == null ? void 0 : _a.toString(), i.RefDirection];
+    },
+    2485787929: (i) => [i.BasisCurve, i.OffsetValues, i.Tag],
+    1682466193: (i) => [i.BasisSurface, i.ReferenceCurve],
+    603570806: (i) => [i.SizeInX, i.SizeInY, i.Placement],
+    220341763: (i) => [i.Position],
+    3381221214: (i) => [i.Position, i.CoefficientsX, i.CoefficientsY, i.CoefficientsZ],
+    759155922: (i) => [i.Name],
+    2559016684: (i) => [i.Name],
+    3967405729: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    569719735: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType],
+    2945172077: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],
+    4208778838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    103090709: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],
+    653396225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.Phase, i.RepresentationContexts, i.UnitsInContext],
+    871118103: (i) => [i.Name, i.Specification, !i.UpperBoundValue ? null : Labelise(i.UpperBoundValue), !i.LowerBoundValue ? null : Labelise(i.LowerBoundValue), i.Unit, !i.SetPointValue ? null : Labelise(i.SetPointValue)],
+    4166981789: (i) => [i.Name, i.Specification, !i.EnumerationValues ? null : i.EnumerationValues.map((p) => Labelise(p)), i.EnumerationReference],
+    2752243245: (i) => [i.Name, i.Specification, !i.ListValues ? null : i.ListValues.map((p) => Labelise(p)), i.Unit],
+    941946838: (i) => [i.Name, i.Specification, i.UsageName, i.PropertyReference],
+    1451395588: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.HasProperties],
+    492091185: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.ApplicableEntity, i.HasPropertyTemplates],
+    3650150729: (i) => [i.Name, i.Specification, !i.NominalValue ? null : Labelise(i.NominalValue), i.Unit],
+    110355661: (i) => [i.Name, i.Specification, !i.DefiningValues ? null : i.DefiningValues.map((p) => Labelise(p)), !i.DefinedValues ? null : i.DefinedValues.map((p) => Labelise(p)), i.Expression, i.DefiningUnit, i.DefinedUnit, i.CurveInterpolation],
+    3521284610: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    2770003689: (i) => [i.ProfileType, i.ProfileName, i.Position, i.XDim, i.YDim, i.WallThickness, i.InnerFilletRadius, i.OuterFilletRadius],
+    2798486643: (i) => [i.Position, i.XLength, i.YLength, i.Height],
+    3454111270: (i) => {
+      var _a, _b;
+      return [i.BasisSurface, i.U1, i.V1, i.U2, i.V2, (_a = i.Usense) == null ? void 0 : _a.toString(), (_b = i.Vsense) == null ? void 0 : _b.toString()];
+    },
+    3765753017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.DefinitionType, i.ReinforcementSectionDefinitions],
+    3939117080: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType],
+    1683148259: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingActor, i.ActingRole],
+    2495723537: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingControl],
+    1307041759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup],
+    1027710054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingGroup, i.Factor],
+    4278684876: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProcess, i.QuantityInProcess],
+    2857406711: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingProduct],
+    205026976: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatedObjectsType, i.RelatingResource],
+    1865459582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects],
+    4095574036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingApproval],
+    919958153: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingClassification],
+    2728634034: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.Intent, i.RelatingConstraint],
+    982818633: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingDocument],
+    3840914261: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingLibrary],
+    2655215786: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingMaterial],
+    1033248425: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingProfileDef],
+    826625072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    1204542856: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement],
+    3945020480: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RelatingPriorities, i.RelatedPriorities, i.RelatedConnectionType, i.RelatingConnectionType],
+    4201705270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedElement],
+    3190031847: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPort, i.RelatedPort, i.RealizingElement],
+    2127690289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedStructuralActivity],
+    1638771189: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem],
+    504942748: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingStructuralMember, i.RelatedStructuralConnection, i.AppliedCondition, i.AdditionalConditions, i.SupportedLength, i.ConditionCoordinateSystem, i.ConnectionConstraint],
+    3678494232: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ConnectionGeometry, i.RelatingElement, i.RelatedElement, i.RealizingElements, i.ConnectionType],
+    3242617779: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],
+    886880790: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedCoverings],
+    2802773753: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedCoverings],
+    2565941209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingContext, i.RelatedDefinitions],
+    2551354335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    693640335: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description],
+    1462361463: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingObject],
+    4186316022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingPropertyDefinition],
+    307848117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedPropertySets, i.RelatingTemplate],
+    781010003: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedObjects, i.RelatingType],
+    3940055652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingOpeningElement, i.RelatedBuildingElement],
+    279856033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedControlElements, i.RelatingFlowElement],
+    427948657: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedElement, i.InterferenceGeometry, i.InterferenceSpace, i.InterferenceType, (_a = i.ImpliedOrder) == null ? void 0 : _a.toString()];
+    },
+    3268803585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],
+    1441486842: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingPositioningElement, i.RelatedProducts],
+    750771296: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedFeatureElement],
+    1245217292: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatedElements, i.RelatingStructure],
+    4122056220: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingProcess, i.RelatedProcess, i.TimeLag, i.SequenceType, i.UserDefinedSequenceType],
+    366585022: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSystem, i.RelatedBuildings],
+    3451746338: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary],
+    3523091289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary],
+    1521410863: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingSpace, i.RelatedBuildingElement, i.ConnectionGeometry, i.PhysicalOrVirtualBoundary, i.InternalOrExternalBoundary, i.ParentBoundary, i.CorrespondingBoundary],
+    1401173127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingBuildingElement, i.RelatedOpeningElement],
+    816062949: (i) => {
+      var _a;
+      return [i.Transition, (_a = i.SameSense) == null ? void 0 : _a.toString(), i.ParentCurve, i.ParamLength];
+    },
+    2914609552: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription],
+    1856042241: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle],
+    3243963512: (i) => [i.SweptArea, i.Position, i.Axis, i.Angle, i.EndSweptArea],
+    4158566097: (i) => [i.Position, i.Height, i.BottomRadius],
+    3626867408: (i) => [i.Position, i.Height, i.Radius],
+    1862484736: (i) => [i.Directrix, i.CrossSections],
+    1290935644: (i) => [i.Directrix, i.CrossSections, i.CrossSectionPositions],
+    1356537516: (i) => [i.Directrix, i.CrossSectionPositions, i.CrossSections],
+    3663146110: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.TemplateType, i.PrimaryMeasureType, i.SecondaryMeasureType, i.Enumerators, i.PrimaryUnit, i.SecondaryUnit, i.Expression, i.AccessState],
+    1412071761: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],
+    710998568: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2706606064: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],
+    3893378262: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    463610769: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],
+    2481509218: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],
+    451544542: (i) => [i.Position, i.Radius],
+    4015995234: (i) => [i.Position, i.Radius],
+    2735484536: (i) => [i.Position],
+    3544373492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    3136571912: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    530289379: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    3689010777: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    3979015343: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],
+    2218152070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Thickness],
+    603775116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],
+    4095615324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    699246055: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],
+    2028607225: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.ReferenceSurface],
+    2809605785: (i) => [i.SweptCurve, i.Position, i.ExtrudedDirection, i.Depth],
+    4124788165: (i) => [i.SweptCurve, i.Position, i.AxisPosition],
+    1580310250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3473067441: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Status, i.WorkMethod, (_a = i.IsMilestone) == null ? void 0 : _a.toString(), i.Priority, i.TaskTime, i.PredefinedType];
+    },
+    3206491090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ProcessType, i.PredefinedType, i.WorkMethod],
+    2387106220: (i) => {
+      var _a;
+      return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString()];
+    },
+    782932809: (i) => [i.Position, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],
+    1935646853: (i) => [i.Position, i.MajorRadius, i.MinorRadius],
+    3665877780: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2916149573: (i) => {
+      var _a;
+      return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString(), i.Normals, i.CoordIndex, i.PnIndex];
+    },
+    1229763772: (i) => {
+      var _a;
+      return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString(), i.Normals, i.CoordIndex, i.PnIndex, i.Flags];
+    },
+    3651464721: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    336235671: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.TransomThickness, i.MullionThickness, i.FirstTransomOffset, i.SecondTransomOffset, i.FirstMullionOffset, i.SecondMullionOffset, i.ShapeAspectStyle, i.LiningOffset, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],
+    512836454: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],
+    2296667514: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor],
+    1635779807: (i) => [i.Outer],
+    2603310189: (i) => [i.Outer, i.Voids],
+    1674181508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],
+    2887950389: (i) => {
+      var _a, _b, _c;
+      return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString()];
+    },
+    167062518: (i) => {
+      var _a, _b, _c;
+      return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString(), i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec];
+    },
+    1334484129: (i) => [i.Position, i.XLength, i.YLength, i.ZLength],
+    3649129432: (i) => [i.Operator, i.FirstOperand, i.SecondOperand],
+    1260505505: (_) => [],
+    3124254112: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.Elevation],
+    1626504194: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2197970202: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2937912522: (i) => [i.ProfileType, i.ProfileName, i.Position, i.Radius, i.WallThickness],
+    3893394355: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3497074424: (i) => [i.Position, i.ClothoidConstant],
+    300633059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3875453745: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.UsageName, i.TemplateType, i.HasPropertyTemplates],
+    3732776249: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    15328376: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    2510884976: (i) => [i.Position],
+    2185764099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    4105962743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1525564444: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.Identification, i.LongDescription, i.ResourceType, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    2559216714: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity],
+    3293443760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification],
+    2000195564: (i) => [i.Position, i.CosineTerm, i.ConstantTerm],
+    3895139033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.CostValues, i.CostQuantities],
+    1419761937: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.SubmittedOn, i.UpdateDate],
+    4189326743: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1916426348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3295246426: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1457835157: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1213902940: (i) => [i.Position, i.Radius],
+    1306400036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    4234616927: (i) => [i.SweptArea, i.Position, i.Directrix, !i.StartParam ? null : Labelise(i.StartParam), !i.EndParam ? null : Labelise(i.EndParam), i.FixedReference],
+    3256556792: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3849074793: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2963535650: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.LiningDepth, i.LiningThickness, i.ThresholdDepth, i.ThresholdThickness, i.TransomThickness, i.TransomOffset, i.LiningOffset, i.ThresholdOffset, i.CasingThickness, i.CasingDepth, i.ShapeAspectStyle, i.LiningToPanelOffsetX, i.LiningToPanelOffsetY],
+    1714330368: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.PanelDepth, i.PanelOperation, i.PanelWidth, i.PanelPosition, i.ShapeAspectStyle],
+    2323601079: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.OperationType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), i.UserDefinedOperationType];
+    },
+    445594917: (i) => [i.Name],
+    4006246654: (i) => [i.Name],
+    1758889154: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4123344466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.AssemblyPlace, i.PredefinedType],
+    2397081782: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1623761950: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2590856083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1704287377: (i) => [i.Position, i.SemiAxis1, i.SemiAxis2],
+    2107101300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    132023988: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3174744832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3390157468: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4148101412: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType, i.EventTriggerType, i.UserDefinedEventTriggerType, i.EventOccurenceTime],
+    2853485674: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName],
+    807026263: (i) => [i.Outer],
+    3737207727: (i) => [i.Outer, i.Voids],
+    24185140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType],
+    1310830890: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType],
+    4228831410: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],
+    647756555: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2489546625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2827207264: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2143335405: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1287392070: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3907093117: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3198132628: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3815607619: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1482959167: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1834744321: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1339347760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2297155007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    3009222698: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1893162501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    263784265: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1509553395: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3493046030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4230923436: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1594536857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2898700619: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString(), i.BaseCurve, i.EndPoint];
+    },
+    2706460486: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    1251058090: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1806887404: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2568555532: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3948183225: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2571569899: (i) => {
+      var _a;
+      return [i.Points, !i.Segments ? null : i.Segments.map((p) => Labelise(p)), (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    3946677679: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3113134337: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],
+    2391368822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.Jurisdiction, i.ResponsiblePersons, i.LastUpdateDate, i.CurrentValue, i.OriginalValue],
+    4288270099: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    679976338: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, (_a = i.Mountable) == null ? void 0 : _a.toString()];
+    },
+    3827777499: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1051575348: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1161773419: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2176059722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    1770583370: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    525669439: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],
+    976884017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],
+    377706215: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NominalDiameter, i.NominalLength, i.PredefinedType],
+    2108223431: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.NominalLength],
+    1114901282: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3181161470: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1950438474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    710110818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    977012517: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    506776471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4143007308: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheActor, i.PredefinedType],
+    3588315303: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2837617999: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    514975943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2382730787: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LifeCyclePhase, i.PredefinedType],
+    3566463478: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.OperationType, i.PanelPosition, i.FrameDepth, i.FrameThickness, i.ShapeAspectStyle],
+    3327091369: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],
+    1158309216: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    804291784: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4231323485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4017108033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2839578677: (i) => {
+      var _a;
+      return [i.Coordinates, (_a = i.Closed) == null ? void 0 : _a.toString(), i.Faces, i.PnIndex];
+    },
+    3724593414: (i) => [i.Points],
+    3740093272: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    1946335990: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    2744685151: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.PredefinedType],
+    2904328755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],
+    3651124850: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1842657554: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2250791053: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1763565496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2893384427: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3992365140: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],
+    1891881377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],
+    2324767716: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1469900589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    683857671: (i) => {
+      var _a, _b, _c;
+      return [i.UDegree, i.VDegree, i.ControlPointsList, i.SurfaceForm, (_a = i.UClosed) == null ? void 0 : _a.toString(), (_b = i.VClosed) == null ? void 0 : _b.toString(), (_c = i.SelfIntersect) == null ? void 0 : _c.toString(), i.UMultiplicities, i.VMultiplicities, i.UKnots, i.VKnots, i.KnotSpec, i.WeightsData];
+    },
+    4021432810: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],
+    3027567501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade],
+    964333572: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    2320036040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.PredefinedType],
+    2310774935: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.MeshLength, i.MeshWidth, i.LongitudinalBarNominalDiameter, i.TransverseBarNominalDiameter, i.LongitudinalBarCrossSectionArea, i.TransverseBarCrossSectionArea, i.LongitudinalBarSpacing, i.TransverseBarSpacing, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],
+    3818125796: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingElement, i.RelatedSurfaceFeatures],
+    160246688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.RelatingObject, i.RelatedObjects],
+    146592293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],
+    550521510: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],
+    2781568857: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1768891740: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2157484638: (i) => [i.Curve3D, i.AssociatedGeometry, i.MasterRepresentation],
+    3649235739: (i) => [i.Position, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],
+    544395925: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString(), i.BaseCurve, i.EndPoint];
+    },
+    1027922057: (i) => [i.Position, i.SepticTerm, i.SexticTerm, i.QuinticTerm, i.QuarticTerm, i.CubicTerm, i.QuadraticTerm, i.LinearTerm, i.ConstantTerm],
+    4074543187: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    33720170: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3599934289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1894708472: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    42703149: (i) => [i.Position, i.SineTerm, i.LinearTerm, i.ConstantTerm],
+    4097777520: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.RefLatitude, i.RefLongitude, i.RefElevation, i.LandTitleNumber, i.SiteAddress],
+    2533589738: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1072016465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3856911033: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType, i.ElevationWithFlooring],
+    1305183839: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3812236995: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.LongName],
+    3112655638: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1039846685: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    338393293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    682877961: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString()];
+    },
+    1179482911: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],
+    1004757350: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType];
+    },
+    4243806635: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.AxisDirection],
+    214636428: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],
+    2445595289: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType, i.Axis],
+    2757150158: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, i.PredefinedType],
+    1807405624: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType];
+    },
+    1252848954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose],
+    2082059205: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString()];
+    },
+    734778138: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition, i.ConditionCoordinateSystem],
+    1235345126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal],
+    2986769608: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.TheoryType, i.ResultForLoadGroup, (_a = i.IsLinear) == null ? void 0 : _a.toString()];
+    },
+    3657597509: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType];
+    },
+    1975003073: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedCondition],
+    148013059: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    3101698114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2315554128: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2254336722: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType],
+    413509423: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    5716631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3824725483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.TensionForce, i.PreStress, i.FrictionCoefficient, i.AnchorageSlip, i.MinCurvatureRadius],
+    2347447852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],
+    3081323446: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3663046924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.PredefinedType],
+    2281632017: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2415094496: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.SheathDiameter],
+    618700268: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1692211062: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2097647324: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1953115116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3593883385: (i) => {
+      var _a;
+      return [i.BasisCurve, i.Trim1, i.Trim2, (_a = i.SenseAgreement) == null ? void 0 : _a.toString(), i.MasterRepresentation];
+    },
+    1600972822: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1911125066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    728799441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    840318589: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1530820697: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3956297820: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2391383451: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3313531582: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2769231204: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    926996030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1898987631: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1133259667: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4009809668: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.PartitioningType, (_a = i.ParameterTakesPrecedence) == null ? void 0 : _a.toString(), i.UserDefinedPartitioningType];
+    },
+    4088093105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.WorkingTimes, i.ExceptionTimes, i.PredefinedType],
+    1028945134: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime],
+    4218914973: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],
+    3342526732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.CreationDate, i.Creators, i.Purpose, i.Duration, i.TotalFloat, i.StartTime, i.FinishTime, i.PredefinedType],
+    1033361043: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName],
+    3821786052: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.PredefinedType, i.Status, i.LongDescription],
+    1411407467: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3352864051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1871374353: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4266260250: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.RailHeadDistance],
+    1545765605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    317615605: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.DesignParameters],
+    1662888072: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    3460190687: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.OriginalValue, i.CurrentValue, i.TotalReplacementCost, i.Owner, i.User, i.ResponsiblePerson, i.IncorporationDate, i.DepreciatedValue],
+    1532957894: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1967976161: (i) => {
+      var _a, _b;
+      return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString()];
+    },
+    2461110595: (i) => {
+      var _a, _b;
+      return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString(), i.KnotMultiplicities, i.Knots, i.KnotSpec];
+    },
+    819618141: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3649138523: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    231477066: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1136057603: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    644574406: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.PredefinedType],
+    963979645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.UsageType, i.PredefinedType],
+    4031249490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.CompositionType, i.ElevationOfRefHeight, i.ElevationOfTerrain, i.BuildingAddress],
+    2979338954: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    39481116: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1909888760: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1177604601: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],
+    1876633798: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3862327254: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.LongName],
+    2188180465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    395041908: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3293546465: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2674252688: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1285652485: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3203706013: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2951183804: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3296154744: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2611217952: (i) => [i.Position, i.Radius],
+    1677625105: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2301859152: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    843113511: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    400855858: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3850581409: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2816379211: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3898045240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    1060000209: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    488727124: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.Identification, i.LongDescription, i.Usage, i.BaseCosts, i.BaseQuantity, i.PredefinedType],
+    2940368186: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    335055490: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2954562838: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1502416096: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1973544240: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3495092785: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3961806047: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3426335179: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1335981549: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2635815018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    479945903: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1599208980: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2063403501: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType],
+    1945004755: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3040386961: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3041715199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.FlowDirection, i.PredefinedType, i.SystemType],
+    3205830791: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],
+    395920057: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.OperationType, i.UserDefinedOperationType],
+    869906466: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3760055223: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2030761528: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3071239417: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1077100507: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3376911765: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    663422040: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2417008758: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3277789161: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2142170206: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1534661035: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1217240411: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    712377611: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1658829314: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2814081492: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3747195512: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    484807127: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1209101575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.LongName, i.PredefinedType],
+    346874300: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1810631287: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4222183408: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2058353004: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4278956645: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    4037862832: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    2188021234: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3132237377: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    987401354: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    707683696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2223149337: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3508470533: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    900683007: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2713699986: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    3009204131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.UAxes, i.VAxes, i.WAxes, i.PredefinedType],
+    3319311131: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2068733104: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4175244083: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2176052936: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2696325953: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, (_a = i.Mountable) == null ? void 0 : _a.toString()];
+    },
+    76236018: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    629592764: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1154579445: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation],
+    1638804497: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1437502449: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1073191201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2078563270: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    234836483: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2474470126: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2182337498: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    144952367: (i) => {
+      var _a;
+      return [i.Segments, (_a = i.SelfIntersect) == null ? void 0 : _a.toString()];
+    },
+    3694346114: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1383356374: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1687234759: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType, i.ConstructionType],
+    310824031: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3612865200: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3171933400: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    738039164: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    655969474: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    90941305: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3290496277: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2262370178: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3024970846: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3283111854: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1232101972: (i) => {
+      var _a, _b;
+      return [i.Degree, i.ControlPointsList, i.CurveForm, (_a = i.ClosedCurve) == null ? void 0 : _a.toString(), (_b = i.SelfIntersect) == null ? void 0 : _b.toString(), i.KnotMultiplicities, i.Knots, i.KnotSpec, i.WeightsData];
+    },
+    3798194928: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    979691226: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.SteelGrade, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.PredefinedType, i.BarSurface],
+    2572171363: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType, i.NominalDiameter, i.CrossSectionArea, i.BarLength, i.BarSurface, i.BendingShapeCode, !i.BendingParameters ? null : i.BendingParameters.map((p) => Labelise(p))],
+    2016517767: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3053780830: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1783015770: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1329646415: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    991950508: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1529196076: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3420628829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1999602285: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1404847402: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    331165859: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4252922144: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.NumberOfRisers, i.NumberOfTreads, i.RiserHeight, i.TreadLength, i.PredefinedType],
+    2515109513: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.OrientationOf2DPlane, i.LoadedBy, i.HasResults, i.SharedPlacement],
+    385403989: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.PredefinedType, i.ActionType, i.ActionSource, i.Coefficient, i.Purpose, i.SelfWeightCoefficients],
+    1621171031: (i) => {
+      var _a;
+      return [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.AppliedLoad, i.GlobalOrLocal, (_a = i.DestabilizingLoad) == null ? void 0 : _a.toString(), i.ProjectedOrTrue, i.PredefinedType];
+    },
+    1162798199: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    812556717: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3425753595: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3825984169: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1620046519: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3026737570: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3179687236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    4292641817: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4207607924: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2391406946: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3512223829: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4237592921: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3304561284: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.OverallHeight, i.OverallWidth, i.PredefinedType, i.PartitioningType, i.UserDefinedPartitioningType],
+    2874132201: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    1634111441: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    177149247: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2056796094: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3001207471: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    325726236: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.PredefinedType],
+    277319702: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    753842376: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4196446775: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    32344328: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3314249567: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1095909175: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2938176219: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    635142910: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3758799889: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1051757585: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4217484030: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3999819293: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3902619387: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    639361253: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3221913625: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3571504051: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2272882330: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    578613899: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ApplicableOccurrence, i.HasPropertySets, i.RepresentationMaps, i.Tag, i.ElementType, i.PredefinedType],
+    3460952963: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4136498852: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3640358203: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4074379575: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3693000487: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1052013943: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    562808652: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.LongName, i.PredefinedType],
+    1062813311: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    342316401: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3518393246: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1360408905: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1904799276: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    862014818: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3310460725: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    24726584: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    264262732: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    402227799: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1003880860: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3415622556: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    819412036: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    1426591983: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    182646315: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    2680139844: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    1971632696: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag],
+    2295281155: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4086658281: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    630975310: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    4288193352: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    3087945054: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType],
+    25142252: (i) => [i.GlobalId, i.OwnerHistory, i.Name, i.Description, i.ObjectType, i.ObjectPlacement, i.Representation, i.Tag, i.PredefinedType]
+  };
+  TypeInitialisers[3] = {
+    3699917729: (v) => new IFC4X3.IfcAbsorbedDoseMeasure(v),
+    4182062534: (v) => new IFC4X3.IfcAccelerationMeasure(v),
+    360377573: (v) => new IFC4X3.IfcAmountOfSubstanceMeasure(v),
+    632304761: (v) => new IFC4X3.IfcAngularVelocityMeasure(v),
+    3683503648: (v) => new IFC4X3.IfcArcIndex(v.map((x) => x.value)),
+    1500781891: (v) => new IFC4X3.IfcAreaDensityMeasure(v),
+    2650437152: (v) => new IFC4X3.IfcAreaMeasure(v),
+    2314439260: (v) => new IFC4X3.IfcBinary(v),
+    2735952531: (v) => new IFC4X3.IfcBoolean(v),
+    1867003952: (v) => new IFC4X3.IfcBoxAlignment(v),
+    1683019596: (v) => new IFC4X3.IfcCardinalPointReference(v),
+    2991860651: (v) => new IFC4X3.IfcComplexNumber(v.map((x) => x.value)),
+    3812528620: (v) => new IFC4X3.IfcCompoundPlaneAngleMeasure(v.map((x) => x.value)),
+    3238673880: (v) => new IFC4X3.IfcContextDependentMeasure(v),
+    1778710042: (v) => new IFC4X3.IfcCountMeasure(v),
+    94842927: (v) => new IFC4X3.IfcCurvatureMeasure(v),
+    937566702: (v) => new IFC4X3.IfcDate(v),
+    2195413836: (v) => new IFC4X3.IfcDateTime(v),
+    86635668: (v) => new IFC4X3.IfcDayInMonthNumber(v),
+    3701338814: (v) => new IFC4X3.IfcDayInWeekNumber(v),
+    1514641115: (v) => new IFC4X3.IfcDescriptiveMeasure(v),
+    4134073009: (v) => new IFC4X3.IfcDimensionCount(v),
+    524656162: (v) => new IFC4X3.IfcDoseEquivalentMeasure(v),
+    2541165894: (v) => new IFC4X3.IfcDuration(v),
+    69416015: (v) => new IFC4X3.IfcDynamicViscosityMeasure(v),
+    1827137117: (v) => new IFC4X3.IfcElectricCapacitanceMeasure(v),
+    3818826038: (v) => new IFC4X3.IfcElectricChargeMeasure(v),
+    2093906313: (v) => new IFC4X3.IfcElectricConductanceMeasure(v),
+    3790457270: (v) => new IFC4X3.IfcElectricCurrentMeasure(v),
+    2951915441: (v) => new IFC4X3.IfcElectricResistanceMeasure(v),
+    2506197118: (v) => new IFC4X3.IfcElectricVoltageMeasure(v),
+    2078135608: (v) => new IFC4X3.IfcEnergyMeasure(v),
+    1102727119: (v) => new IFC4X3.IfcFontStyle(v),
+    2715512545: (v) => new IFC4X3.IfcFontVariant(v),
+    2590844177: (v) => new IFC4X3.IfcFontWeight(v),
+    1361398929: (v) => new IFC4X3.IfcForceMeasure(v),
+    3044325142: (v) => new IFC4X3.IfcFrequencyMeasure(v),
+    3064340077: (v) => new IFC4X3.IfcGloballyUniqueId(v),
+    3113092358: (v) => new IFC4X3.IfcHeatFluxDensityMeasure(v),
+    1158859006: (v) => new IFC4X3.IfcHeatingValueMeasure(v),
+    983778844: (v) => new IFC4X3.IfcIdentifier(v),
+    3358199106: (v) => new IFC4X3.IfcIlluminanceMeasure(v),
+    2679005408: (v) => new IFC4X3.IfcInductanceMeasure(v),
+    1939436016: (v) => new IFC4X3.IfcInteger(v),
+    3809634241: (v) => new IFC4X3.IfcIntegerCountRateMeasure(v),
+    3686016028: (v) => new IFC4X3.IfcIonConcentrationMeasure(v),
+    3192672207: (v) => new IFC4X3.IfcIsothermalMoistureCapacityMeasure(v),
+    2054016361: (v) => new IFC4X3.IfcKinematicViscosityMeasure(v),
+    3258342251: (v) => new IFC4X3.IfcLabel(v),
+    1275358634: (v) => new IFC4X3.IfcLanguageId(v),
+    1243674935: (v) => new IFC4X3.IfcLengthMeasure(v),
+    1774176899: (v) => new IFC4X3.IfcLineIndex(v.map((x) => x.value)),
+    191860431: (v) => new IFC4X3.IfcLinearForceMeasure(v),
+    2128979029: (v) => new IFC4X3.IfcLinearMomentMeasure(v),
+    1307019551: (v) => new IFC4X3.IfcLinearStiffnessMeasure(v),
+    3086160713: (v) => new IFC4X3.IfcLinearVelocityMeasure(v),
+    503418787: (v) => new IFC4X3.IfcLogical(v),
+    2095003142: (v) => new IFC4X3.IfcLuminousFluxMeasure(v),
+    2755797622: (v) => new IFC4X3.IfcLuminousIntensityDistributionMeasure(v),
+    151039812: (v) => new IFC4X3.IfcLuminousIntensityMeasure(v),
+    286949696: (v) => new IFC4X3.IfcMagneticFluxDensityMeasure(v),
+    2486716878: (v) => new IFC4X3.IfcMagneticFluxMeasure(v),
+    1477762836: (v) => new IFC4X3.IfcMassDensityMeasure(v),
+    4017473158: (v) => new IFC4X3.IfcMassFlowRateMeasure(v),
+    3124614049: (v) => new IFC4X3.IfcMassMeasure(v),
+    3531705166: (v) => new IFC4X3.IfcMassPerLengthMeasure(v),
+    3341486342: (v) => new IFC4X3.IfcModulusOfElasticityMeasure(v),
+    2173214787: (v) => new IFC4X3.IfcModulusOfLinearSubgradeReactionMeasure(v),
+    1052454078: (v) => new IFC4X3.IfcModulusOfRotationalSubgradeReactionMeasure(v),
+    1753493141: (v) => new IFC4X3.IfcModulusOfSubgradeReactionMeasure(v),
+    3177669450: (v) => new IFC4X3.IfcMoistureDiffusivityMeasure(v),
+    1648970520: (v) => new IFC4X3.IfcMolecularWeightMeasure(v),
+    3114022597: (v) => new IFC4X3.IfcMomentOfInertiaMeasure(v),
+    2615040989: (v) => new IFC4X3.IfcMonetaryMeasure(v),
+    765770214: (v) => new IFC4X3.IfcMonthInYearNumber(v),
+    525895558: (v) => new IFC4X3.IfcNonNegativeLengthMeasure(v),
+    2095195183: (v) => new IFC4X3.IfcNormalisedRatioMeasure(v),
+    2395907400: (v) => new IFC4X3.IfcNumericMeasure(v),
+    929793134: (v) => new IFC4X3.IfcPHMeasure(v),
+    2260317790: (v) => new IFC4X3.IfcParameterValue(v),
+    2642773653: (v) => new IFC4X3.IfcPlanarForceMeasure(v),
+    4042175685: (v) => new IFC4X3.IfcPlaneAngleMeasure(v),
+    1790229001: (v) => new IFC4X3.IfcPositiveInteger(v),
+    2815919920: (v) => new IFC4X3.IfcPositiveLengthMeasure(v),
+    3054510233: (v) => new IFC4X3.IfcPositivePlaneAngleMeasure(v),
+    1245737093: (v) => new IFC4X3.IfcPositiveRatioMeasure(v),
+    1364037233: (v) => new IFC4X3.IfcPowerMeasure(v),
+    2169031380: (v) => new IFC4X3.IfcPresentableText(v),
+    3665567075: (v) => new IFC4X3.IfcPressureMeasure(v),
+    2798247006: (v) => new IFC4X3.IfcPropertySetDefinitionSet(v.map((x) => x.value)),
+    3972513137: (v) => new IFC4X3.IfcRadioActivityMeasure(v),
+    96294661: (v) => new IFC4X3.IfcRatioMeasure(v),
+    200335297: (v) => new IFC4X3.IfcReal(v),
+    2133746277: (v) => new IFC4X3.IfcRotationalFrequencyMeasure(v),
+    1755127002: (v) => new IFC4X3.IfcRotationalMassMeasure(v),
+    3211557302: (v) => new IFC4X3.IfcRotationalStiffnessMeasure(v),
+    3467162246: (v) => new IFC4X3.IfcSectionModulusMeasure(v),
+    2190458107: (v) => new IFC4X3.IfcSectionalAreaIntegralMeasure(v),
+    408310005: (v) => new IFC4X3.IfcShearModulusMeasure(v),
+    3471399674: (v) => new IFC4X3.IfcSolidAngleMeasure(v),
+    4157543285: (v) => new IFC4X3.IfcSoundPowerLevelMeasure(v),
+    846465480: (v) => new IFC4X3.IfcSoundPowerMeasure(v),
+    3457685358: (v) => new IFC4X3.IfcSoundPressureLevelMeasure(v),
+    993287707: (v) => new IFC4X3.IfcSoundPressureMeasure(v),
+    3477203348: (v) => new IFC4X3.IfcSpecificHeatCapacityMeasure(v),
+    2757832317: (v) => new IFC4X3.IfcSpecularExponent(v),
+    361837227: (v) => new IFC4X3.IfcSpecularRoughness(v),
+    58845555: (v) => new IFC4X3.IfcTemperatureGradientMeasure(v),
+    1209108979: (v) => new IFC4X3.IfcTemperatureRateOfChangeMeasure(v),
+    2801250643: (v) => new IFC4X3.IfcText(v),
+    1460886941: (v) => new IFC4X3.IfcTextAlignment(v),
+    3490877962: (v) => new IFC4X3.IfcTextDecoration(v),
+    603696268: (v) => new IFC4X3.IfcTextFontName(v),
+    296282323: (v) => new IFC4X3.IfcTextTransformation(v),
+    232962298: (v) => new IFC4X3.IfcThermalAdmittanceMeasure(v),
+    2645777649: (v) => new IFC4X3.IfcThermalConductivityMeasure(v),
+    2281867870: (v) => new IFC4X3.IfcThermalExpansionCoefficientMeasure(v),
+    857959152: (v) => new IFC4X3.IfcThermalResistanceMeasure(v),
+    2016195849: (v) => new IFC4X3.IfcThermalTransmittanceMeasure(v),
+    743184107: (v) => new IFC4X3.IfcThermodynamicTemperatureMeasure(v),
+    4075327185: (v) => new IFC4X3.IfcTime(v),
+    2726807636: (v) => new IFC4X3.IfcTimeMeasure(v),
+    2591213694: (v) => new IFC4X3.IfcTimeStamp(v),
+    1278329552: (v) => new IFC4X3.IfcTorqueMeasure(v),
+    950732822: (v) => new IFC4X3.IfcURIReference(v),
+    3345633955: (v) => new IFC4X3.IfcVaporPermeabilityMeasure(v),
+    3458127941: (v) => new IFC4X3.IfcVolumeMeasure(v),
+    2593997549: (v) => new IFC4X3.IfcVolumetricFlowRateMeasure(v),
+    51269191: (v) => new IFC4X3.IfcWarpingConstantMeasure(v),
+    1718600412: (v) => new IFC4X3.IfcWarpingMomentMeasure(v)
+  };
+  var IFC4X3;
+  (function(IFC4X32) {
+    class IfcAbsorbedDoseMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcAbsorbedDoseMeasure = IfcAbsorbedDoseMeasure;
+    class IfcAccelerationMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcAccelerationMeasure = IfcAccelerationMeasure;
+    class IfcAmountOfSubstanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcAmountOfSubstanceMeasure = IfcAmountOfSubstanceMeasure;
+    class IfcAngularVelocityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcAngularVelocityMeasure = IfcAngularVelocityMeasure;
+    class IfcArcIndex {
+      constructor(value) {
+        this.value = value;
+        this.type = 5;
+      }
+    }
+    IFC4X32.IfcArcIndex = IfcArcIndex;
+    ;
+    class IfcAreaDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcAreaDensityMeasure = IfcAreaDensityMeasure;
+    class IfcAreaMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcAreaMeasure = IfcAreaMeasure;
+    class IfcBinary {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcBinary = IfcBinary;
+    class IfcBoolean {
+      constructor(v) {
+        this.type = 3;
+        this.value = v === null ? v : v == "T" ? true : false;
+      }
+    }
+    IFC4X32.IfcBoolean = IfcBoolean;
+    class IfcBoxAlignment {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcBoxAlignment = IfcBoxAlignment;
+    class IfcCardinalPointReference {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcCardinalPointReference = IfcCardinalPointReference;
+    class IfcComplexNumber {
+      constructor(value) {
+        this.value = value;
+        this.type = 4;
+      }
+    }
+    IFC4X32.IfcComplexNumber = IfcComplexNumber;
+    ;
+    class IfcCompoundPlaneAngleMeasure {
+      constructor(value) {
+        this.value = value;
+        this.type = 10;
+      }
+    }
+    IFC4X32.IfcCompoundPlaneAngleMeasure = IfcCompoundPlaneAngleMeasure;
+    ;
+    class IfcContextDependentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcContextDependentMeasure = IfcContextDependentMeasure;
+    class IfcCountMeasure {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcCountMeasure = IfcCountMeasure;
+    class IfcCurvatureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcCurvatureMeasure = IfcCurvatureMeasure;
+    class IfcDate {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcDate = IfcDate;
+    class IfcDateTime {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcDateTime = IfcDateTime;
+    class IfcDayInMonthNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcDayInMonthNumber = IfcDayInMonthNumber;
+    class IfcDayInWeekNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcDayInWeekNumber = IfcDayInWeekNumber;
+    class IfcDescriptiveMeasure {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcDescriptiveMeasure = IfcDescriptiveMeasure;
+    class IfcDimensionCount {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcDimensionCount = IfcDimensionCount;
+    class IfcDoseEquivalentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcDoseEquivalentMeasure = IfcDoseEquivalentMeasure;
+    class IfcDuration {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcDuration = IfcDuration;
+    class IfcDynamicViscosityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcDynamicViscosityMeasure = IfcDynamicViscosityMeasure;
+    class IfcElectricCapacitanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcElectricCapacitanceMeasure = IfcElectricCapacitanceMeasure;
+    class IfcElectricChargeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcElectricChargeMeasure = IfcElectricChargeMeasure;
+    class IfcElectricConductanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcElectricConductanceMeasure = IfcElectricConductanceMeasure;
+    class IfcElectricCurrentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcElectricCurrentMeasure = IfcElectricCurrentMeasure;
+    class IfcElectricResistanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcElectricResistanceMeasure = IfcElectricResistanceMeasure;
+    class IfcElectricVoltageMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcElectricVoltageMeasure = IfcElectricVoltageMeasure;
+    class IfcEnergyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcEnergyMeasure = IfcEnergyMeasure;
+    class IfcFontStyle {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcFontStyle = IfcFontStyle;
+    class IfcFontVariant {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcFontVariant = IfcFontVariant;
+    class IfcFontWeight {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcFontWeight = IfcFontWeight;
+    class IfcForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcForceMeasure = IfcForceMeasure;
+    class IfcFrequencyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcFrequencyMeasure = IfcFrequencyMeasure;
+    class IfcGloballyUniqueId {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcGloballyUniqueId = IfcGloballyUniqueId;
+    class IfcHeatFluxDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcHeatFluxDensityMeasure = IfcHeatFluxDensityMeasure;
+    class IfcHeatingValueMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcHeatingValueMeasure = IfcHeatingValueMeasure;
+    class IfcIdentifier {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcIdentifier = IfcIdentifier;
+    class IfcIlluminanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcIlluminanceMeasure = IfcIlluminanceMeasure;
+    class IfcInductanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcInductanceMeasure = IfcInductanceMeasure;
+    class IfcInteger {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcInteger = IfcInteger;
+    class IfcIntegerCountRateMeasure {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcIntegerCountRateMeasure = IfcIntegerCountRateMeasure;
+    class IfcIonConcentrationMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcIonConcentrationMeasure = IfcIonConcentrationMeasure;
+    class IfcIsothermalMoistureCapacityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcIsothermalMoistureCapacityMeasure = IfcIsothermalMoistureCapacityMeasure;
+    class IfcKinematicViscosityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcKinematicViscosityMeasure = IfcKinematicViscosityMeasure;
+    class IfcLabel {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcLabel = IfcLabel;
+    class IfcLanguageId {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcLanguageId = IfcLanguageId;
+    class IfcLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcLengthMeasure = IfcLengthMeasure;
+    class IfcLineIndex {
+      constructor(value) {
+        this.value = value;
+        this.type = 5;
+      }
+    }
+    IFC4X32.IfcLineIndex = IfcLineIndex;
+    ;
+    class IfcLinearForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcLinearForceMeasure = IfcLinearForceMeasure;
+    class IfcLinearMomentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcLinearMomentMeasure = IfcLinearMomentMeasure;
+    class IfcLinearStiffnessMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcLinearStiffnessMeasure = IfcLinearStiffnessMeasure;
+    class IfcLinearVelocityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcLinearVelocityMeasure = IfcLinearVelocityMeasure;
+    class IfcLogical {
+      constructor(v) {
+        this.type = 3;
+        this.value = v === null ? v : v == "T" ? 1 : v == "F" ? 0 : 2;
+      }
+    }
+    IFC4X32.IfcLogical = IfcLogical;
+    class IfcLuminousFluxMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcLuminousFluxMeasure = IfcLuminousFluxMeasure;
+    class IfcLuminousIntensityDistributionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcLuminousIntensityDistributionMeasure = IfcLuminousIntensityDistributionMeasure;
+    class IfcLuminousIntensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcLuminousIntensityMeasure = IfcLuminousIntensityMeasure;
+    class IfcMagneticFluxDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMagneticFluxDensityMeasure = IfcMagneticFluxDensityMeasure;
+    class IfcMagneticFluxMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMagneticFluxMeasure = IfcMagneticFluxMeasure;
+    class IfcMassDensityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMassDensityMeasure = IfcMassDensityMeasure;
+    class IfcMassFlowRateMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMassFlowRateMeasure = IfcMassFlowRateMeasure;
+    class IfcMassMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMassMeasure = IfcMassMeasure;
+    class IfcMassPerLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMassPerLengthMeasure = IfcMassPerLengthMeasure;
+    class IfcModulusOfElasticityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcModulusOfElasticityMeasure = IfcModulusOfElasticityMeasure;
+    class IfcModulusOfLinearSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcModulusOfLinearSubgradeReactionMeasure = IfcModulusOfLinearSubgradeReactionMeasure;
+    class IfcModulusOfRotationalSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcModulusOfRotationalSubgradeReactionMeasure = IfcModulusOfRotationalSubgradeReactionMeasure;
+    class IfcModulusOfSubgradeReactionMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcModulusOfSubgradeReactionMeasure = IfcModulusOfSubgradeReactionMeasure;
+    class IfcMoistureDiffusivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMoistureDiffusivityMeasure = IfcMoistureDiffusivityMeasure;
+    class IfcMolecularWeightMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMolecularWeightMeasure = IfcMolecularWeightMeasure;
+    class IfcMomentOfInertiaMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMomentOfInertiaMeasure = IfcMomentOfInertiaMeasure;
+    class IfcMonetaryMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMonetaryMeasure = IfcMonetaryMeasure;
+    class IfcMonthInYearNumber {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcMonthInYearNumber = IfcMonthInYearNumber;
+    class IfcNonNegativeLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcNonNegativeLengthMeasure = IfcNonNegativeLengthMeasure;
+    class IfcNormalisedRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcNormalisedRatioMeasure = IfcNormalisedRatioMeasure;
+    class IfcNumericMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcNumericMeasure = IfcNumericMeasure;
+    class IfcPHMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPHMeasure = IfcPHMeasure;
+    class IfcParameterValue {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcParameterValue = IfcParameterValue;
+    class IfcPlanarForceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPlanarForceMeasure = IfcPlanarForceMeasure;
+    class IfcPlaneAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPlaneAngleMeasure = IfcPlaneAngleMeasure;
+    class IfcPositiveInteger {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPositiveInteger = IfcPositiveInteger;
+    class IfcPositiveLengthMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPositiveLengthMeasure = IfcPositiveLengthMeasure;
+    class IfcPositivePlaneAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPositivePlaneAngleMeasure = IfcPositivePlaneAngleMeasure;
+    class IfcPositiveRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPositiveRatioMeasure = IfcPositiveRatioMeasure;
+    class IfcPowerMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPowerMeasure = IfcPowerMeasure;
+    class IfcPresentableText {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcPresentableText = IfcPresentableText;
+    class IfcPressureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcPressureMeasure = IfcPressureMeasure;
+    class IfcPropertySetDefinitionSet {
+      constructor(value) {
+        this.value = value;
+        this.type = 5;
+      }
+    }
+    IFC4X32.IfcPropertySetDefinitionSet = IfcPropertySetDefinitionSet;
+    ;
+    class IfcRadioActivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcRadioActivityMeasure = IfcRadioActivityMeasure;
+    class IfcRatioMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcRatioMeasure = IfcRatioMeasure;
+    class IfcReal {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcReal = IfcReal;
+    class IfcRotationalFrequencyMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcRotationalFrequencyMeasure = IfcRotationalFrequencyMeasure;
+    class IfcRotationalMassMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcRotationalMassMeasure = IfcRotationalMassMeasure;
+    class IfcRotationalStiffnessMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcRotationalStiffnessMeasure = IfcRotationalStiffnessMeasure;
+    class IfcSectionModulusMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSectionModulusMeasure = IfcSectionModulusMeasure;
+    class IfcSectionalAreaIntegralMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSectionalAreaIntegralMeasure = IfcSectionalAreaIntegralMeasure;
+    class IfcShearModulusMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcShearModulusMeasure = IfcShearModulusMeasure;
+    class IfcSolidAngleMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSolidAngleMeasure = IfcSolidAngleMeasure;
+    class IfcSoundPowerLevelMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSoundPowerLevelMeasure = IfcSoundPowerLevelMeasure;
+    class IfcSoundPowerMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSoundPowerMeasure = IfcSoundPowerMeasure;
+    class IfcSoundPressureLevelMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSoundPressureLevelMeasure = IfcSoundPressureLevelMeasure;
+    class IfcSoundPressureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSoundPressureMeasure = IfcSoundPressureMeasure;
+    class IfcSpecificHeatCapacityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSpecificHeatCapacityMeasure = IfcSpecificHeatCapacityMeasure;
+    class IfcSpecularExponent {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSpecularExponent = IfcSpecularExponent;
+    class IfcSpecularRoughness {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcSpecularRoughness = IfcSpecularRoughness;
+    class IfcTemperatureGradientMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcTemperatureGradientMeasure = IfcTemperatureGradientMeasure;
+    class IfcTemperatureRateOfChangeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcTemperatureRateOfChangeMeasure = IfcTemperatureRateOfChangeMeasure;
+    class IfcText {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcText = IfcText;
+    class IfcTextAlignment {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcTextAlignment = IfcTextAlignment;
+    class IfcTextDecoration {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcTextDecoration = IfcTextDecoration;
+    class IfcTextFontName {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcTextFontName = IfcTextFontName;
+    class IfcTextTransformation {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcTextTransformation = IfcTextTransformation;
+    class IfcThermalAdmittanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcThermalAdmittanceMeasure = IfcThermalAdmittanceMeasure;
+    class IfcThermalConductivityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcThermalConductivityMeasure = IfcThermalConductivityMeasure;
+    class IfcThermalExpansionCoefficientMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcThermalExpansionCoefficientMeasure = IfcThermalExpansionCoefficientMeasure;
+    class IfcThermalResistanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcThermalResistanceMeasure = IfcThermalResistanceMeasure;
+    class IfcThermalTransmittanceMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcThermalTransmittanceMeasure = IfcThermalTransmittanceMeasure;
+    class IfcThermodynamicTemperatureMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcThermodynamicTemperatureMeasure = IfcThermodynamicTemperatureMeasure;
+    class IfcTime {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcTime = IfcTime;
+    class IfcTimeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcTimeMeasure = IfcTimeMeasure;
+    class IfcTimeStamp {
+      constructor(v) {
+        this.type = 10;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcTimeStamp = IfcTimeStamp;
+    class IfcTorqueMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcTorqueMeasure = IfcTorqueMeasure;
+    class IfcURIReference {
+      constructor(value) {
+        this.value = value;
+        this.type = 1;
+      }
+    }
+    IFC4X32.IfcURIReference = IfcURIReference;
+    class IfcVaporPermeabilityMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcVaporPermeabilityMeasure = IfcVaporPermeabilityMeasure;
+    class IfcVolumeMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcVolumeMeasure = IfcVolumeMeasure;
+    class IfcVolumetricFlowRateMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcVolumetricFlowRateMeasure = IfcVolumetricFlowRateMeasure;
+    class IfcWarpingConstantMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcWarpingConstantMeasure = IfcWarpingConstantMeasure;
+    class IfcWarpingMomentMeasure {
+      constructor(v) {
+        this.type = 4;
+        this.value = v === null ? v : parseFloat(v);
+      }
+    }
+    IFC4X32.IfcWarpingMomentMeasure = IfcWarpingMomentMeasure;
+    class IfcActionRequestTypeEnum {
+    }
+    IfcActionRequestTypeEnum.EMAIL = { type: 3, value: "EMAIL" };
+    IfcActionRequestTypeEnum.FAX = { type: 3, value: "FAX" };
+    IfcActionRequestTypeEnum.PHONE = { type: 3, value: "PHONE" };
+    IfcActionRequestTypeEnum.POST = { type: 3, value: "POST" };
+    IfcActionRequestTypeEnum.VERBAL = { type: 3, value: "VERBAL" };
+    IfcActionRequestTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActionRequestTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcActionRequestTypeEnum = IfcActionRequestTypeEnum;
+    class IfcActionSourceTypeEnum {
+    }
+    IfcActionSourceTypeEnum.BRAKES = { type: 3, value: "BRAKES" };
+    IfcActionSourceTypeEnum.BUOYANCY = { type: 3, value: "BUOYANCY" };
+    IfcActionSourceTypeEnum.COMPLETION_G1 = { type: 3, value: "COMPLETION_G1" };
+    IfcActionSourceTypeEnum.CREEP = { type: 3, value: "CREEP" };
+    IfcActionSourceTypeEnum.CURRENT = { type: 3, value: "CURRENT" };
+    IfcActionSourceTypeEnum.DEAD_LOAD_G = { type: 3, value: "DEAD_LOAD_G" };
+    IfcActionSourceTypeEnum.EARTHQUAKE_E = { type: 3, value: "EARTHQUAKE_E" };
+    IfcActionSourceTypeEnum.ERECTION = { type: 3, value: "ERECTION" };
+    IfcActionSourceTypeEnum.FIRE = { type: 3, value: "FIRE" };
+    IfcActionSourceTypeEnum.ICE = { type: 3, value: "ICE" };
+    IfcActionSourceTypeEnum.IMPACT = { type: 3, value: "IMPACT" };
+    IfcActionSourceTypeEnum.IMPULSE = { type: 3, value: "IMPULSE" };
+    IfcActionSourceTypeEnum.LACK_OF_FIT = { type: 3, value: "LACK_OF_FIT" };
+    IfcActionSourceTypeEnum.LIVE_LOAD_Q = { type: 3, value: "LIVE_LOAD_Q" };
+    IfcActionSourceTypeEnum.PRESTRESSING_P = { type: 3, value: "PRESTRESSING_P" };
+    IfcActionSourceTypeEnum.PROPPING = { type: 3, value: "PROPPING" };
+    IfcActionSourceTypeEnum.RAIN = { type: 3, value: "RAIN" };
+    IfcActionSourceTypeEnum.SETTLEMENT_U = { type: 3, value: "SETTLEMENT_U" };
+    IfcActionSourceTypeEnum.SHRINKAGE = { type: 3, value: "SHRINKAGE" };
+    IfcActionSourceTypeEnum.SNOW_S = { type: 3, value: "SNOW_S" };
+    IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION = { type: 3, value: "SYSTEM_IMPERFECTION" };
+    IfcActionSourceTypeEnum.TEMPERATURE_T = { type: 3, value: "TEMPERATURE_T" };
+    IfcActionSourceTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" };
+    IfcActionSourceTypeEnum.WAVE = { type: 3, value: "WAVE" };
+    IfcActionSourceTypeEnum.WIND_W = { type: 3, value: "WIND_W" };
+    IfcActionSourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActionSourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcActionSourceTypeEnum = IfcActionSourceTypeEnum;
+    class IfcActionTypeEnum {
+    }
+    IfcActionTypeEnum.EXTRAORDINARY_A = { type: 3, value: "EXTRAORDINARY_A" };
+    IfcActionTypeEnum.PERMANENT_G = { type: 3, value: "PERMANENT_G" };
+    IfcActionTypeEnum.VARIABLE_Q = { type: 3, value: "VARIABLE_Q" };
+    IfcActionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcActionTypeEnum = IfcActionTypeEnum;
+    class IfcActuatorTypeEnum {
+    }
+    IfcActuatorTypeEnum.ELECTRICACTUATOR = { type: 3, value: "ELECTRICACTUATOR" };
+    IfcActuatorTypeEnum.HANDOPERATEDACTUATOR = { type: 3, value: "HANDOPERATEDACTUATOR" };
+    IfcActuatorTypeEnum.HYDRAULICACTUATOR = { type: 3, value: "HYDRAULICACTUATOR" };
+    IfcActuatorTypeEnum.PNEUMATICACTUATOR = { type: 3, value: "PNEUMATICACTUATOR" };
+    IfcActuatorTypeEnum.THERMOSTATICACTUATOR = { type: 3, value: "THERMOSTATICACTUATOR" };
+    IfcActuatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcActuatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcActuatorTypeEnum = IfcActuatorTypeEnum;
+    class IfcAddressTypeEnum {
+    }
+    IfcAddressTypeEnum.DISTRIBUTIONPOINT = { type: 3, value: "DISTRIBUTIONPOINT" };
+    IfcAddressTypeEnum.HOME = { type: 3, value: "HOME" };
+    IfcAddressTypeEnum.OFFICE = { type: 3, value: "OFFICE" };
+    IfcAddressTypeEnum.SITE = { type: 3, value: "SITE" };
+    IfcAddressTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC4X32.IfcAddressTypeEnum = IfcAddressTypeEnum;
+    class IfcAirTerminalBoxTypeEnum {
+    }
+    IfcAirTerminalBoxTypeEnum.CONSTANTFLOW = { type: 3, value: "CONSTANTFLOW" };
+    IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREDEPENDANT" };
+    IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT = { type: 3, value: "VARIABLEFLOWPRESSUREINDEPENDANT" };
+    IfcAirTerminalBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirTerminalBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAirTerminalBoxTypeEnum = IfcAirTerminalBoxTypeEnum;
+    class IfcAirTerminalTypeEnum {
+    }
+    IfcAirTerminalTypeEnum.DIFFUSER = { type: 3, value: "DIFFUSER" };
+    IfcAirTerminalTypeEnum.GRILLE = { type: 3, value: "GRILLE" };
+    IfcAirTerminalTypeEnum.LOUVRE = { type: 3, value: "LOUVRE" };
+    IfcAirTerminalTypeEnum.REGISTER = { type: 3, value: "REGISTER" };
+    IfcAirTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAirTerminalTypeEnum = IfcAirTerminalTypeEnum;
+    class IfcAirToAirHeatRecoveryTypeEnum {
+    }
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECOUNTERFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER = { type: 3, value: "FIXEDPLATECROSSFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER = { type: 3, value: "FIXEDPLATEPARALLELFLOWEXCHANGER" };
+    IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE = { type: 3, value: "HEATPIPE" };
+    IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL = { type: 3, value: "ROTARYWHEEL" };
+    IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP = { type: 3, value: "RUNAROUNDCOILLOOP" };
+    IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONCOILTYPEHEATEXCHANGERS" };
+    IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS = { type: 3, value: "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS" };
+    IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS = { type: 3, value: "TWINTOWERENTHALPYRECOVERYLOOPS" };
+    IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAirToAirHeatRecoveryTypeEnum = IfcAirToAirHeatRecoveryTypeEnum;
+    class IfcAlarmTypeEnum {
+    }
+    IfcAlarmTypeEnum.BELL = { type: 3, value: "BELL" };
+    IfcAlarmTypeEnum.BREAKGLASSBUTTON = { type: 3, value: "BREAKGLASSBUTTON" };
+    IfcAlarmTypeEnum.LIGHT = { type: 3, value: "LIGHT" };
+    IfcAlarmTypeEnum.MANUALPULLBOX = { type: 3, value: "MANUALPULLBOX" };
+    IfcAlarmTypeEnum.RAILWAYCROCODILE = { type: 3, value: "RAILWAYCROCODILE" };
+    IfcAlarmTypeEnum.RAILWAYDETONATOR = { type: 3, value: "RAILWAYDETONATOR" };
+    IfcAlarmTypeEnum.SIREN = { type: 3, value: "SIREN" };
+    IfcAlarmTypeEnum.WHISTLE = { type: 3, value: "WHISTLE" };
+    IfcAlarmTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAlarmTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAlarmTypeEnum = IfcAlarmTypeEnum;
+    class IfcAlignmentCantSegmentTypeEnum {
+    }
+    IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" };
+    IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT = { type: 3, value: "CONSTANTCANT" };
+    IfcAlignmentCantSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" };
+    IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" };
+    IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION = { type: 3, value: "LINEARTRANSITION" };
+    IfcAlignmentCantSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" };
+    IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" };
+    IFC4X32.IfcAlignmentCantSegmentTypeEnum = IfcAlignmentCantSegmentTypeEnum;
+    class IfcAlignmentHorizontalSegmentTypeEnum {
+    }
+    IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE = { type: 3, value: "BLOSSCURVE" };
+    IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" };
+    IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" };
+    IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE = { type: 3, value: "COSINECURVE" };
+    IfcAlignmentHorizontalSegmentTypeEnum.CUBIC = { type: 3, value: "CUBIC" };
+    IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE = { type: 3, value: "HELMERTCURVE" };
+    IfcAlignmentHorizontalSegmentTypeEnum.LINE = { type: 3, value: "LINE" };
+    IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE = { type: 3, value: "SINECURVE" };
+    IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND = { type: 3, value: "VIENNESEBEND" };
+    IFC4X32.IfcAlignmentHorizontalSegmentTypeEnum = IfcAlignmentHorizontalSegmentTypeEnum;
+    class IfcAlignmentTypeEnum {
+    }
+    IfcAlignmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAlignmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAlignmentTypeEnum = IfcAlignmentTypeEnum;
+    class IfcAlignmentVerticalSegmentTypeEnum {
+    }
+    IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC = { type: 3, value: "CIRCULARARC" };
+    IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID = { type: 3, value: "CLOTHOID" };
+    IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT = { type: 3, value: "CONSTANTGRADIENT" };
+    IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC = { type: 3, value: "PARABOLICARC" };
+    IFC4X32.IfcAlignmentVerticalSegmentTypeEnum = IfcAlignmentVerticalSegmentTypeEnum;
+    class IfcAnalysisModelTypeEnum {
+    }
+    IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D = { type: 3, value: "IN_PLANE_LOADING_2D" };
+    IfcAnalysisModelTypeEnum.LOADING_3D = { type: 3, value: "LOADING_3D" };
+    IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D = { type: 3, value: "OUT_PLANE_LOADING_2D" };
+    IfcAnalysisModelTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAnalysisModelTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAnalysisModelTypeEnum = IfcAnalysisModelTypeEnum;
+    class IfcAnalysisTheoryTypeEnum {
+    }
+    IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY = { type: 3, value: "FIRST_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY = { type: 3, value: "FULL_NONLINEAR_THEORY" };
+    IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY = { type: 3, value: "SECOND_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY = { type: 3, value: "THIRD_ORDER_THEORY" };
+    IfcAnalysisTheoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAnalysisTheoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAnalysisTheoryTypeEnum = IfcAnalysisTheoryTypeEnum;
+    class IfcAnnotationTypeEnum {
+    }
+    IfcAnnotationTypeEnum.ASBUILTAREA = { type: 3, value: "ASBUILTAREA" };
+    IfcAnnotationTypeEnum.ASBUILTLINE = { type: 3, value: "ASBUILTLINE" };
+    IfcAnnotationTypeEnum.ASBUILTPOINT = { type: 3, value: "ASBUILTPOINT" };
+    IfcAnnotationTypeEnum.ASSUMEDAREA = { type: 3, value: "ASSUMEDAREA" };
+    IfcAnnotationTypeEnum.ASSUMEDLINE = { type: 3, value: "ASSUMEDLINE" };
+    IfcAnnotationTypeEnum.ASSUMEDPOINT = { type: 3, value: "ASSUMEDPOINT" };
+    IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL = { type: 3, value: "NON_PHYSICAL_SIGNAL" };
+    IfcAnnotationTypeEnum.SUPERELEVATIONEVENT = { type: 3, value: "SUPERELEVATIONEVENT" };
+    IfcAnnotationTypeEnum.WIDTHEVENT = { type: 3, value: "WIDTHEVENT" };
+    IfcAnnotationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAnnotationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAnnotationTypeEnum = IfcAnnotationTypeEnum;
+    class IfcArithmeticOperatorEnum {
+    }
+    IfcArithmeticOperatorEnum.ADD = { type: 3, value: "ADD" };
+    IfcArithmeticOperatorEnum.DIVIDE = { type: 3, value: "DIVIDE" };
+    IfcArithmeticOperatorEnum.MULTIPLY = { type: 3, value: "MULTIPLY" };
+    IfcArithmeticOperatorEnum.SUBTRACT = { type: 3, value: "SUBTRACT" };
+    IFC4X32.IfcArithmeticOperatorEnum = IfcArithmeticOperatorEnum;
+    class IfcAssemblyPlaceEnum {
+    }
+    IfcAssemblyPlaceEnum.FACTORY = { type: 3, value: "FACTORY" };
+    IfcAssemblyPlaceEnum.SITE = { type: 3, value: "SITE" };
+    IfcAssemblyPlaceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAssemblyPlaceEnum = IfcAssemblyPlaceEnum;
+    class IfcAudioVisualApplianceTypeEnum {
+    }
+    IfcAudioVisualApplianceTypeEnum.AMPLIFIER = { type: 3, value: "AMPLIFIER" };
+    IfcAudioVisualApplianceTypeEnum.CAMERA = { type: 3, value: "CAMERA" };
+    IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL = { type: 3, value: "COMMUNICATIONTERMINAL" };
+    IfcAudioVisualApplianceTypeEnum.DISPLAY = { type: 3, value: "DISPLAY" };
+    IfcAudioVisualApplianceTypeEnum.MICROPHONE = { type: 3, value: "MICROPHONE" };
+    IfcAudioVisualApplianceTypeEnum.PLAYER = { type: 3, value: "PLAYER" };
+    IfcAudioVisualApplianceTypeEnum.PROJECTOR = { type: 3, value: "PROJECTOR" };
+    IfcAudioVisualApplianceTypeEnum.RECEIVER = { type: 3, value: "RECEIVER" };
+    IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT = { type: 3, value: "RECORDINGEQUIPMENT" };
+    IfcAudioVisualApplianceTypeEnum.SPEAKER = { type: 3, value: "SPEAKER" };
+    IfcAudioVisualApplianceTypeEnum.SWITCHER = { type: 3, value: "SWITCHER" };
+    IfcAudioVisualApplianceTypeEnum.TELEPHONE = { type: 3, value: "TELEPHONE" };
+    IfcAudioVisualApplianceTypeEnum.TUNER = { type: 3, value: "TUNER" };
+    IfcAudioVisualApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcAudioVisualApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcAudioVisualApplianceTypeEnum = IfcAudioVisualApplianceTypeEnum;
+    class IfcBSplineCurveForm {
+    }
+    IfcBSplineCurveForm.CIRCULAR_ARC = { type: 3, value: "CIRCULAR_ARC" };
+    IfcBSplineCurveForm.ELLIPTIC_ARC = { type: 3, value: "ELLIPTIC_ARC" };
+    IfcBSplineCurveForm.HYPERBOLIC_ARC = { type: 3, value: "HYPERBOLIC_ARC" };
+    IfcBSplineCurveForm.PARABOLIC_ARC = { type: 3, value: "PARABOLIC_ARC" };
+    IfcBSplineCurveForm.POLYLINE_FORM = { type: 3, value: "POLYLINE_FORM" };
+    IfcBSplineCurveForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC4X32.IfcBSplineCurveForm = IfcBSplineCurveForm;
+    class IfcBSplineSurfaceForm {
+    }
+    IfcBSplineSurfaceForm.CONICAL_SURF = { type: 3, value: "CONICAL_SURF" };
+    IfcBSplineSurfaceForm.CYLINDRICAL_SURF = { type: 3, value: "CYLINDRICAL_SURF" };
+    IfcBSplineSurfaceForm.GENERALISED_CONE = { type: 3, value: "GENERALISED_CONE" };
+    IfcBSplineSurfaceForm.PLANE_SURF = { type: 3, value: "PLANE_SURF" };
+    IfcBSplineSurfaceForm.QUADRIC_SURF = { type: 3, value: "QUADRIC_SURF" };
+    IfcBSplineSurfaceForm.RULED_SURF = { type: 3, value: "RULED_SURF" };
+    IfcBSplineSurfaceForm.SPHERICAL_SURF = { type: 3, value: "SPHERICAL_SURF" };
+    IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION = { type: 3, value: "SURF_OF_LINEAR_EXTRUSION" };
+    IfcBSplineSurfaceForm.SURF_OF_REVOLUTION = { type: 3, value: "SURF_OF_REVOLUTION" };
+    IfcBSplineSurfaceForm.TOROIDAL_SURF = { type: 3, value: "TOROIDAL_SURF" };
+    IfcBSplineSurfaceForm.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC4X32.IfcBSplineSurfaceForm = IfcBSplineSurfaceForm;
+    class IfcBeamTypeEnum {
+    }
+    IfcBeamTypeEnum.BEAM = { type: 3, value: "BEAM" };
+    IfcBeamTypeEnum.CORNICE = { type: 3, value: "CORNICE" };
+    IfcBeamTypeEnum.DIAPHRAGM = { type: 3, value: "DIAPHRAGM" };
+    IfcBeamTypeEnum.EDGEBEAM = { type: 3, value: "EDGEBEAM" };
+    IfcBeamTypeEnum.GIRDER_SEGMENT = { type: 3, value: "GIRDER_SEGMENT" };
+    IfcBeamTypeEnum.HATSTONE = { type: 3, value: "HATSTONE" };
+    IfcBeamTypeEnum.HOLLOWCORE = { type: 3, value: "HOLLOWCORE" };
+    IfcBeamTypeEnum.JOIST = { type: 3, value: "JOIST" };
+    IfcBeamTypeEnum.LINTEL = { type: 3, value: "LINTEL" };
+    IfcBeamTypeEnum.PIERCAP = { type: 3, value: "PIERCAP" };
+    IfcBeamTypeEnum.SPANDREL = { type: 3, value: "SPANDREL" };
+    IfcBeamTypeEnum.T_BEAM = { type: 3, value: "T_BEAM" };
+    IfcBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBeamTypeEnum = IfcBeamTypeEnum;
+    class IfcBearingTypeDisplacementEnum {
+    }
+    IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT = { type: 3, value: "FIXED_MOVEMENT" };
+    IfcBearingTypeDisplacementEnum.FREE_MOVEMENT = { type: 3, value: "FREE_MOVEMENT" };
+    IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL = { type: 3, value: "GUIDED_LONGITUDINAL" };
+    IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL = { type: 3, value: "GUIDED_TRANSVERSAL" };
+    IfcBearingTypeDisplacementEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBearingTypeDisplacementEnum = IfcBearingTypeDisplacementEnum;
+    class IfcBearingTypeEnum {
+    }
+    IfcBearingTypeEnum.CYLINDRICAL = { type: 3, value: "CYLINDRICAL" };
+    IfcBearingTypeEnum.DISK = { type: 3, value: "DISK" };
+    IfcBearingTypeEnum.ELASTOMERIC = { type: 3, value: "ELASTOMERIC" };
+    IfcBearingTypeEnum.GUIDE = { type: 3, value: "GUIDE" };
+    IfcBearingTypeEnum.POT = { type: 3, value: "POT" };
+    IfcBearingTypeEnum.ROCKER = { type: 3, value: "ROCKER" };
+    IfcBearingTypeEnum.ROLLER = { type: 3, value: "ROLLER" };
+    IfcBearingTypeEnum.SPHERICAL = { type: 3, value: "SPHERICAL" };
+    IfcBearingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBearingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBearingTypeEnum = IfcBearingTypeEnum;
+    class IfcBenchmarkEnum {
+    }
+    IfcBenchmarkEnum.EQUALTO = { type: 3, value: "EQUALTO" };
+    IfcBenchmarkEnum.GREATERTHAN = { type: 3, value: "GREATERTHAN" };
+    IfcBenchmarkEnum.GREATERTHANOREQUALTO = { type: 3, value: "GREATERTHANOREQUALTO" };
+    IfcBenchmarkEnum.INCLUDEDIN = { type: 3, value: "INCLUDEDIN" };
+    IfcBenchmarkEnum.INCLUDES = { type: 3, value: "INCLUDES" };
+    IfcBenchmarkEnum.LESSTHAN = { type: 3, value: "LESSTHAN" };
+    IfcBenchmarkEnum.LESSTHANOREQUALTO = { type: 3, value: "LESSTHANOREQUALTO" };
+    IfcBenchmarkEnum.NOTEQUALTO = { type: 3, value: "NOTEQUALTO" };
+    IfcBenchmarkEnum.NOTINCLUDEDIN = { type: 3, value: "NOTINCLUDEDIN" };
+    IfcBenchmarkEnum.NOTINCLUDES = { type: 3, value: "NOTINCLUDES" };
+    IFC4X32.IfcBenchmarkEnum = IfcBenchmarkEnum;
+    class IfcBoilerTypeEnum {
+    }
+    IfcBoilerTypeEnum.STEAM = { type: 3, value: "STEAM" };
+    IfcBoilerTypeEnum.WATER = { type: 3, value: "WATER" };
+    IfcBoilerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBoilerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBoilerTypeEnum = IfcBoilerTypeEnum;
+    class IfcBooleanOperator {
+    }
+    IfcBooleanOperator.DIFFERENCE = { type: 3, value: "DIFFERENCE" };
+    IfcBooleanOperator.INTERSECTION = { type: 3, value: "INTERSECTION" };
+    IfcBooleanOperator.UNION = { type: 3, value: "UNION" };
+    IFC4X32.IfcBooleanOperator = IfcBooleanOperator;
+    class IfcBridgePartTypeEnum {
+    }
+    IfcBridgePartTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" };
+    IfcBridgePartTypeEnum.DECK = { type: 3, value: "DECK" };
+    IfcBridgePartTypeEnum.DECK_SEGMENT = { type: 3, value: "DECK_SEGMENT" };
+    IfcBridgePartTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" };
+    IfcBridgePartTypeEnum.PIER = { type: 3, value: "PIER" };
+    IfcBridgePartTypeEnum.PIER_SEGMENT = { type: 3, value: "PIER_SEGMENT" };
+    IfcBridgePartTypeEnum.PYLON = { type: 3, value: "PYLON" };
+    IfcBridgePartTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" };
+    IfcBridgePartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" };
+    IfcBridgePartTypeEnum.SURFACESTRUCTURE = { type: 3, value: "SURFACESTRUCTURE" };
+    IfcBridgePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBridgePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBridgePartTypeEnum = IfcBridgePartTypeEnum;
+    class IfcBridgeTypeEnum {
+    }
+    IfcBridgeTypeEnum.ARCHED = { type: 3, value: "ARCHED" };
+    IfcBridgeTypeEnum.CABLE_STAYED = { type: 3, value: "CABLE_STAYED" };
+    IfcBridgeTypeEnum.CANTILEVER = { type: 3, value: "CANTILEVER" };
+    IfcBridgeTypeEnum.CULVERT = { type: 3, value: "CULVERT" };
+    IfcBridgeTypeEnum.FRAMEWORK = { type: 3, value: "FRAMEWORK" };
+    IfcBridgeTypeEnum.GIRDER = { type: 3, value: "GIRDER" };
+    IfcBridgeTypeEnum.SUSPENSION = { type: 3, value: "SUSPENSION" };
+    IfcBridgeTypeEnum.TRUSS = { type: 3, value: "TRUSS" };
+    IfcBridgeTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBridgeTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBridgeTypeEnum = IfcBridgeTypeEnum;
+    class IfcBuildingElementPartTypeEnum {
+    }
+    IfcBuildingElementPartTypeEnum.APRON = { type: 3, value: "APRON" };
+    IfcBuildingElementPartTypeEnum.ARMOURUNIT = { type: 3, value: "ARMOURUNIT" };
+    IfcBuildingElementPartTypeEnum.INSULATION = { type: 3, value: "INSULATION" };
+    IfcBuildingElementPartTypeEnum.PRECASTPANEL = { type: 3, value: "PRECASTPANEL" };
+    IfcBuildingElementPartTypeEnum.SAFETYCAGE = { type: 3, value: "SAFETYCAGE" };
+    IfcBuildingElementPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBuildingElementPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBuildingElementPartTypeEnum = IfcBuildingElementPartTypeEnum;
+    class IfcBuildingElementProxyTypeEnum {
+    }
+    IfcBuildingElementProxyTypeEnum.COMPLEX = { type: 3, value: "COMPLEX" };
+    IfcBuildingElementProxyTypeEnum.ELEMENT = { type: 3, value: "ELEMENT" };
+    IfcBuildingElementProxyTypeEnum.PARTIAL = { type: 3, value: "PARTIAL" };
+    IfcBuildingElementProxyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBuildingElementProxyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBuildingElementProxyTypeEnum = IfcBuildingElementProxyTypeEnum;
+    class IfcBuildingSystemTypeEnum {
+    }
+    IfcBuildingSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" };
+    IfcBuildingSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" };
+    IfcBuildingSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" };
+    IfcBuildingSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" };
+    IfcBuildingSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" };
+    IfcBuildingSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" };
+    IfcBuildingSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" };
+    IfcBuildingSystemTypeEnum.SHADING = { type: 3, value: "SHADING" };
+    IfcBuildingSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" };
+    IfcBuildingSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBuildingSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBuildingSystemTypeEnum = IfcBuildingSystemTypeEnum;
+    class IfcBuiltSystemTypeEnum {
+    }
+    IfcBuiltSystemTypeEnum.EROSIONPREVENTION = { type: 3, value: "EROSIONPREVENTION" };
+    IfcBuiltSystemTypeEnum.FENESTRATION = { type: 3, value: "FENESTRATION" };
+    IfcBuiltSystemTypeEnum.FOUNDATION = { type: 3, value: "FOUNDATION" };
+    IfcBuiltSystemTypeEnum.LOADBEARING = { type: 3, value: "LOADBEARING" };
+    IfcBuiltSystemTypeEnum.MOORING = { type: 3, value: "MOORING" };
+    IfcBuiltSystemTypeEnum.OUTERSHELL = { type: 3, value: "OUTERSHELL" };
+    IfcBuiltSystemTypeEnum.PRESTRESSING = { type: 3, value: "PRESTRESSING" };
+    IfcBuiltSystemTypeEnum.RAILWAYLINE = { type: 3, value: "RAILWAYLINE" };
+    IfcBuiltSystemTypeEnum.RAILWAYTRACK = { type: 3, value: "RAILWAYTRACK" };
+    IfcBuiltSystemTypeEnum.REINFORCING = { type: 3, value: "REINFORCING" };
+    IfcBuiltSystemTypeEnum.SHADING = { type: 3, value: "SHADING" };
+    IfcBuiltSystemTypeEnum.TRACKCIRCUIT = { type: 3, value: "TRACKCIRCUIT" };
+    IfcBuiltSystemTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" };
+    IfcBuiltSystemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBuiltSystemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBuiltSystemTypeEnum = IfcBuiltSystemTypeEnum;
+    class IfcBurnerTypeEnum {
+    }
+    IfcBurnerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcBurnerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcBurnerTypeEnum = IfcBurnerTypeEnum;
+    class IfcCableCarrierFittingTypeEnum {
+    }
+    IfcCableCarrierFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcCableCarrierFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcCableCarrierFittingTypeEnum.CROSS = { type: 3, value: "CROSS" };
+    IfcCableCarrierFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcCableCarrierFittingTypeEnum.TEE = { type: 3, value: "TEE" };
+    IfcCableCarrierFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcCableCarrierFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableCarrierFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCableCarrierFittingTypeEnum = IfcCableCarrierFittingTypeEnum;
+    class IfcCableCarrierSegmentTypeEnum {
+    }
+    IfcCableCarrierSegmentTypeEnum.CABLEBRACKET = { type: 3, value: "CABLEBRACKET" };
+    IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT = { type: 3, value: "CABLELADDERSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT = { type: 3, value: "CABLETRAYSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT = { type: 3, value: "CABLETRUNKINGSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.CATENARYWIRE = { type: 3, value: "CATENARYWIRE" };
+    IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT = { type: 3, value: "CONDUITSEGMENT" };
+    IfcCableCarrierSegmentTypeEnum.DROPPER = { type: 3, value: "DROPPER" };
+    IfcCableCarrierSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableCarrierSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCableCarrierSegmentTypeEnum = IfcCableCarrierSegmentTypeEnum;
+    class IfcCableFittingTypeEnum {
+    }
+    IfcCableFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcCableFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" };
+    IfcCableFittingTypeEnum.EXIT = { type: 3, value: "EXIT" };
+    IfcCableFittingTypeEnum.FANOUT = { type: 3, value: "FANOUT" };
+    IfcCableFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcCableFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcCableFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCableFittingTypeEnum = IfcCableFittingTypeEnum;
+    class IfcCableSegmentTypeEnum {
+    }
+    IfcCableSegmentTypeEnum.BUSBARSEGMENT = { type: 3, value: "BUSBARSEGMENT" };
+    IfcCableSegmentTypeEnum.CABLESEGMENT = { type: 3, value: "CABLESEGMENT" };
+    IfcCableSegmentTypeEnum.CONDUCTORSEGMENT = { type: 3, value: "CONDUCTORSEGMENT" };
+    IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT = { type: 3, value: "CONTACTWIRESEGMENT" };
+    IfcCableSegmentTypeEnum.CORESEGMENT = { type: 3, value: "CORESEGMENT" };
+    IfcCableSegmentTypeEnum.FIBERSEGMENT = { type: 3, value: "FIBERSEGMENT" };
+    IfcCableSegmentTypeEnum.FIBERTUBE = { type: 3, value: "FIBERTUBE" };
+    IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT = { type: 3, value: "OPTICALCABLESEGMENT" };
+    IfcCableSegmentTypeEnum.STITCHWIRE = { type: 3, value: "STITCHWIRE" };
+    IfcCableSegmentTypeEnum.WIREPAIRSEGMENT = { type: 3, value: "WIREPAIRSEGMENT" };
+    IfcCableSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCableSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCableSegmentTypeEnum = IfcCableSegmentTypeEnum;
+    class IfcCaissonFoundationTypeEnum {
+    }
+    IfcCaissonFoundationTypeEnum.CAISSON = { type: 3, value: "CAISSON" };
+    IfcCaissonFoundationTypeEnum.WELL = { type: 3, value: "WELL" };
+    IfcCaissonFoundationTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCaissonFoundationTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCaissonFoundationTypeEnum = IfcCaissonFoundationTypeEnum;
+    class IfcChangeActionEnum {
+    }
+    IfcChangeActionEnum.ADDED = { type: 3, value: "ADDED" };
+    IfcChangeActionEnum.DELETED = { type: 3, value: "DELETED" };
+    IfcChangeActionEnum.MODIFIED = { type: 3, value: "MODIFIED" };
+    IfcChangeActionEnum.NOCHANGE = { type: 3, value: "NOCHANGE" };
+    IfcChangeActionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcChangeActionEnum = IfcChangeActionEnum;
+    class IfcChillerTypeEnum {
+    }
+    IfcChillerTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" };
+    IfcChillerTypeEnum.HEATRECOVERY = { type: 3, value: "HEATRECOVERY" };
+    IfcChillerTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" };
+    IfcChillerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcChillerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcChillerTypeEnum = IfcChillerTypeEnum;
+    class IfcChimneyTypeEnum {
+    }
+    IfcChimneyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcChimneyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcChimneyTypeEnum = IfcChimneyTypeEnum;
+    class IfcCoilTypeEnum {
+    }
+    IfcCoilTypeEnum.DXCOOLINGCOIL = { type: 3, value: "DXCOOLINGCOIL" };
+    IfcCoilTypeEnum.ELECTRICHEATINGCOIL = { type: 3, value: "ELECTRICHEATINGCOIL" };
+    IfcCoilTypeEnum.GASHEATINGCOIL = { type: 3, value: "GASHEATINGCOIL" };
+    IfcCoilTypeEnum.HYDRONICCOIL = { type: 3, value: "HYDRONICCOIL" };
+    IfcCoilTypeEnum.STEAMHEATINGCOIL = { type: 3, value: "STEAMHEATINGCOIL" };
+    IfcCoilTypeEnum.WATERCOOLINGCOIL = { type: 3, value: "WATERCOOLINGCOIL" };
+    IfcCoilTypeEnum.WATERHEATINGCOIL = { type: 3, value: "WATERHEATINGCOIL" };
+    IfcCoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCoilTypeEnum = IfcCoilTypeEnum;
+    class IfcColumnTypeEnum {
+    }
+    IfcColumnTypeEnum.COLUMN = { type: 3, value: "COLUMN" };
+    IfcColumnTypeEnum.PIERSTEM = { type: 3, value: "PIERSTEM" };
+    IfcColumnTypeEnum.PIERSTEM_SEGMENT = { type: 3, value: "PIERSTEM_SEGMENT" };
+    IfcColumnTypeEnum.PILASTER = { type: 3, value: "PILASTER" };
+    IfcColumnTypeEnum.STANDCOLUMN = { type: 3, value: "STANDCOLUMN" };
+    IfcColumnTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcColumnTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcColumnTypeEnum = IfcColumnTypeEnum;
+    class IfcCommunicationsApplianceTypeEnum {
+    }
+    IfcCommunicationsApplianceTypeEnum.ANTENNA = { type: 3, value: "ANTENNA" };
+    IfcCommunicationsApplianceTypeEnum.AUTOMATON = { type: 3, value: "AUTOMATON" };
+    IfcCommunicationsApplianceTypeEnum.COMPUTER = { type: 3, value: "COMPUTER" };
+    IfcCommunicationsApplianceTypeEnum.FAX = { type: 3, value: "FAX" };
+    IfcCommunicationsApplianceTypeEnum.GATEWAY = { type: 3, value: "GATEWAY" };
+    IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL = { type: 3, value: "INTELLIGENTPERIPHERAL" };
+    IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT = { type: 3, value: "IPNETWORKEQUIPMENT" };
+    IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT = { type: 3, value: "LINESIDEELECTRONICUNIT" };
+    IfcCommunicationsApplianceTypeEnum.MODEM = { type: 3, value: "MODEM" };
+    IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE = { type: 3, value: "NETWORKAPPLIANCE" };
+    IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE = { type: 3, value: "NETWORKBRIDGE" };
+    IfcCommunicationsApplianceTypeEnum.NETWORKHUB = { type: 3, value: "NETWORKHUB" };
+    IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL = { type: 3, value: "OPTICALLINETERMINAL" };
+    IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT = { type: 3, value: "OPTICALNETWORKUNIT" };
+    IfcCommunicationsApplianceTypeEnum.PRINTER = { type: 3, value: "PRINTER" };
+    IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER = { type: 3, value: "RADIOBLOCKCENTER" };
+    IfcCommunicationsApplianceTypeEnum.REPEATER = { type: 3, value: "REPEATER" };
+    IfcCommunicationsApplianceTypeEnum.ROUTER = { type: 3, value: "ROUTER" };
+    IfcCommunicationsApplianceTypeEnum.SCANNER = { type: 3, value: "SCANNER" };
+    IfcCommunicationsApplianceTypeEnum.TELECOMMAND = { type: 3, value: "TELECOMMAND" };
+    IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE = { type: 3, value: "TELEPHONYEXCHANGE" };
+    IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT = { type: 3, value: "TRANSITIONCOMPONENT" };
+    IfcCommunicationsApplianceTypeEnum.TRANSPONDER = { type: 3, value: "TRANSPONDER" };
+    IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT = { type: 3, value: "TRANSPORTEQUIPMENT" };
+    IfcCommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCommunicationsApplianceTypeEnum = IfcCommunicationsApplianceTypeEnum;
+    class IfcComplexPropertyTemplateTypeEnum {
+    }
+    IfcComplexPropertyTemplateTypeEnum.P_COMPLEX = { type: 3, value: "P_COMPLEX" };
+    IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX = { type: 3, value: "Q_COMPLEX" };
+    IFC4X32.IfcComplexPropertyTemplateTypeEnum = IfcComplexPropertyTemplateTypeEnum;
+    class IfcCompressorTypeEnum {
+    }
+    IfcCompressorTypeEnum.BOOSTER = { type: 3, value: "BOOSTER" };
+    IfcCompressorTypeEnum.DYNAMIC = { type: 3, value: "DYNAMIC" };
+    IfcCompressorTypeEnum.HERMETIC = { type: 3, value: "HERMETIC" };
+    IfcCompressorTypeEnum.OPENTYPE = { type: 3, value: "OPENTYPE" };
+    IfcCompressorTypeEnum.RECIPROCATING = { type: 3, value: "RECIPROCATING" };
+    IfcCompressorTypeEnum.ROLLINGPISTON = { type: 3, value: "ROLLINGPISTON" };
+    IfcCompressorTypeEnum.ROTARY = { type: 3, value: "ROTARY" };
+    IfcCompressorTypeEnum.ROTARYVANE = { type: 3, value: "ROTARYVANE" };
+    IfcCompressorTypeEnum.SCROLL = { type: 3, value: "SCROLL" };
+    IfcCompressorTypeEnum.SEMIHERMETIC = { type: 3, value: "SEMIHERMETIC" };
+    IfcCompressorTypeEnum.SINGLESCREW = { type: 3, value: "SINGLESCREW" };
+    IfcCompressorTypeEnum.SINGLESTAGE = { type: 3, value: "SINGLESTAGE" };
+    IfcCompressorTypeEnum.TROCHOIDAL = { type: 3, value: "TROCHOIDAL" };
+    IfcCompressorTypeEnum.TWINSCREW = { type: 3, value: "TWINSCREW" };
+    IfcCompressorTypeEnum.WELDEDSHELLHERMETIC = { type: 3, value: "WELDEDSHELLHERMETIC" };
+    IfcCompressorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCompressorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCompressorTypeEnum = IfcCompressorTypeEnum;
+    class IfcCondenserTypeEnum {
+    }
+    IfcCondenserTypeEnum.AIRCOOLED = { type: 3, value: "AIRCOOLED" };
+    IfcCondenserTypeEnum.EVAPORATIVECOOLED = { type: 3, value: "EVAPORATIVECOOLED" };
+    IfcCondenserTypeEnum.WATERCOOLED = { type: 3, value: "WATERCOOLED" };
+    IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE = { type: 3, value: "WATERCOOLEDBRAZEDPLATE" };
+    IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL = { type: 3, value: "WATERCOOLEDSHELLCOIL" };
+    IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE = { type: 3, value: "WATERCOOLEDSHELLTUBE" };
+    IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE = { type: 3, value: "WATERCOOLEDTUBEINTUBE" };
+    IfcCondenserTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCondenserTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCondenserTypeEnum = IfcCondenserTypeEnum;
+    class IfcConnectionTypeEnum {
+    }
+    IfcConnectionTypeEnum.ATEND = { type: 3, value: "ATEND" };
+    IfcConnectionTypeEnum.ATPATH = { type: 3, value: "ATPATH" };
+    IfcConnectionTypeEnum.ATSTART = { type: 3, value: "ATSTART" };
+    IfcConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcConnectionTypeEnum = IfcConnectionTypeEnum;
+    class IfcConstraintEnum {
+    }
+    IfcConstraintEnum.ADVISORY = { type: 3, value: "ADVISORY" };
+    IfcConstraintEnum.HARD = { type: 3, value: "HARD" };
+    IfcConstraintEnum.SOFT = { type: 3, value: "SOFT" };
+    IfcConstraintEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConstraintEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcConstraintEnum = IfcConstraintEnum;
+    class IfcConstructionEquipmentResourceTypeEnum {
+    }
+    IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING = { type: 3, value: "DEMOLISHING" };
+    IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING = { type: 3, value: "EARTHMOVING" };
+    IfcConstructionEquipmentResourceTypeEnum.ERECTING = { type: 3, value: "ERECTING" };
+    IfcConstructionEquipmentResourceTypeEnum.HEATING = { type: 3, value: "HEATING" };
+    IfcConstructionEquipmentResourceTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" };
+    IfcConstructionEquipmentResourceTypeEnum.PAVING = { type: 3, value: "PAVING" };
+    IfcConstructionEquipmentResourceTypeEnum.PUMPING = { type: 3, value: "PUMPING" };
+    IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING = { type: 3, value: "TRANSPORTING" };
+    IfcConstructionEquipmentResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcConstructionEquipmentResourceTypeEnum = IfcConstructionEquipmentResourceTypeEnum;
+    class IfcConstructionMaterialResourceTypeEnum {
+    }
+    IfcConstructionMaterialResourceTypeEnum.AGGREGATES = { type: 3, value: "AGGREGATES" };
+    IfcConstructionMaterialResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" };
+    IfcConstructionMaterialResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" };
+    IfcConstructionMaterialResourceTypeEnum.FUEL = { type: 3, value: "FUEL" };
+    IfcConstructionMaterialResourceTypeEnum.GYPSUM = { type: 3, value: "GYPSUM" };
+    IfcConstructionMaterialResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" };
+    IfcConstructionMaterialResourceTypeEnum.METAL = { type: 3, value: "METAL" };
+    IfcConstructionMaterialResourceTypeEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcConstructionMaterialResourceTypeEnum.WOOD = { type: 3, value: "WOOD" };
+    IfcConstructionMaterialResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConstructionMaterialResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcConstructionMaterialResourceTypeEnum = IfcConstructionMaterialResourceTypeEnum;
+    class IfcConstructionProductResourceTypeEnum {
+    }
+    IfcConstructionProductResourceTypeEnum.ASSEMBLY = { type: 3, value: "ASSEMBLY" };
+    IfcConstructionProductResourceTypeEnum.FORMWORK = { type: 3, value: "FORMWORK" };
+    IfcConstructionProductResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConstructionProductResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcConstructionProductResourceTypeEnum = IfcConstructionProductResourceTypeEnum;
+    class IfcControllerTypeEnum {
+    }
+    IfcControllerTypeEnum.FLOATING = { type: 3, value: "FLOATING" };
+    IfcControllerTypeEnum.MULTIPOSITION = { type: 3, value: "MULTIPOSITION" };
+    IfcControllerTypeEnum.PROGRAMMABLE = { type: 3, value: "PROGRAMMABLE" };
+    IfcControllerTypeEnum.PROPORTIONAL = { type: 3, value: "PROPORTIONAL" };
+    IfcControllerTypeEnum.TWOPOSITION = { type: 3, value: "TWOPOSITION" };
+    IfcControllerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcControllerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcControllerTypeEnum = IfcControllerTypeEnum;
+    class IfcConveyorSegmentTypeEnum {
+    }
+    IfcConveyorSegmentTypeEnum.BELTCONVEYOR = { type: 3, value: "BELTCONVEYOR" };
+    IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR = { type: 3, value: "BUCKETCONVEYOR" };
+    IfcConveyorSegmentTypeEnum.CHUTECONVEYOR = { type: 3, value: "CHUTECONVEYOR" };
+    IfcConveyorSegmentTypeEnum.SCREWCONVEYOR = { type: 3, value: "SCREWCONVEYOR" };
+    IfcConveyorSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcConveyorSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcConveyorSegmentTypeEnum = IfcConveyorSegmentTypeEnum;
+    class IfcCooledBeamTypeEnum {
+    }
+    IfcCooledBeamTypeEnum.ACTIVE = { type: 3, value: "ACTIVE" };
+    IfcCooledBeamTypeEnum.PASSIVE = { type: 3, value: "PASSIVE" };
+    IfcCooledBeamTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCooledBeamTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCooledBeamTypeEnum = IfcCooledBeamTypeEnum;
+    class IfcCoolingTowerTypeEnum {
+    }
+    IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT = { type: 3, value: "MECHANICALFORCEDDRAFT" };
+    IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT = { type: 3, value: "MECHANICALINDUCEDDRAFT" };
+    IfcCoolingTowerTypeEnum.NATURALDRAFT = { type: 3, value: "NATURALDRAFT" };
+    IfcCoolingTowerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoolingTowerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCoolingTowerTypeEnum = IfcCoolingTowerTypeEnum;
+    class IfcCostItemTypeEnum {
+    }
+    IfcCostItemTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCostItemTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCostItemTypeEnum = IfcCostItemTypeEnum;
+    class IfcCostScheduleTypeEnum {
+    }
+    IfcCostScheduleTypeEnum.BUDGET = { type: 3, value: "BUDGET" };
+    IfcCostScheduleTypeEnum.COSTPLAN = { type: 3, value: "COSTPLAN" };
+    IfcCostScheduleTypeEnum.ESTIMATE = { type: 3, value: "ESTIMATE" };
+    IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES = { type: 3, value: "PRICEDBILLOFQUANTITIES" };
+    IfcCostScheduleTypeEnum.SCHEDULEOFRATES = { type: 3, value: "SCHEDULEOFRATES" };
+    IfcCostScheduleTypeEnum.TENDER = { type: 3, value: "TENDER" };
+    IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES = { type: 3, value: "UNPRICEDBILLOFQUANTITIES" };
+    IfcCostScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCostScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCostScheduleTypeEnum = IfcCostScheduleTypeEnum;
+    class IfcCourseTypeEnum {
+    }
+    IfcCourseTypeEnum.ARMOUR = { type: 3, value: "ARMOUR" };
+    IfcCourseTypeEnum.BALLASTBED = { type: 3, value: "BALLASTBED" };
+    IfcCourseTypeEnum.CORE = { type: 3, value: "CORE" };
+    IfcCourseTypeEnum.FILTER = { type: 3, value: "FILTER" };
+    IfcCourseTypeEnum.PAVEMENT = { type: 3, value: "PAVEMENT" };
+    IfcCourseTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" };
+    IfcCourseTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCourseTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCourseTypeEnum = IfcCourseTypeEnum;
+    class IfcCoveringTypeEnum {
+    }
+    IfcCoveringTypeEnum.CEILING = { type: 3, value: "CEILING" };
+    IfcCoveringTypeEnum.CLADDING = { type: 3, value: "CLADDING" };
+    IfcCoveringTypeEnum.COPING = { type: 3, value: "COPING" };
+    IfcCoveringTypeEnum.FLOORING = { type: 3, value: "FLOORING" };
+    IfcCoveringTypeEnum.INSULATION = { type: 3, value: "INSULATION" };
+    IfcCoveringTypeEnum.MEMBRANE = { type: 3, value: "MEMBRANE" };
+    IfcCoveringTypeEnum.MOLDING = { type: 3, value: "MOLDING" };
+    IfcCoveringTypeEnum.ROOFING = { type: 3, value: "ROOFING" };
+    IfcCoveringTypeEnum.SKIRTINGBOARD = { type: 3, value: "SKIRTINGBOARD" };
+    IfcCoveringTypeEnum.SLEEVING = { type: 3, value: "SLEEVING" };
+    IfcCoveringTypeEnum.TOPPING = { type: 3, value: "TOPPING" };
+    IfcCoveringTypeEnum.WRAPPING = { type: 3, value: "WRAPPING" };
+    IfcCoveringTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCoveringTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCoveringTypeEnum = IfcCoveringTypeEnum;
+    class IfcCrewResourceTypeEnum {
+    }
+    IfcCrewResourceTypeEnum.OFFICE = { type: 3, value: "OFFICE" };
+    IfcCrewResourceTypeEnum.SITE = { type: 3, value: "SITE" };
+    IfcCrewResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCrewResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCrewResourceTypeEnum = IfcCrewResourceTypeEnum;
+    class IfcCurtainWallTypeEnum {
+    }
+    IfcCurtainWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcCurtainWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCurtainWallTypeEnum = IfcCurtainWallTypeEnum;
+    class IfcCurveInterpolationEnum {
+    }
+    IfcCurveInterpolationEnum.LINEAR = { type: 3, value: "LINEAR" };
+    IfcCurveInterpolationEnum.LOG_LINEAR = { type: 3, value: "LOG_LINEAR" };
+    IfcCurveInterpolationEnum.LOG_LOG = { type: 3, value: "LOG_LOG" };
+    IfcCurveInterpolationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcCurveInterpolationEnum = IfcCurveInterpolationEnum;
+    class IfcDamperTypeEnum {
+    }
+    IfcDamperTypeEnum.BACKDRAFTDAMPER = { type: 3, value: "BACKDRAFTDAMPER" };
+    IfcDamperTypeEnum.BALANCINGDAMPER = { type: 3, value: "BALANCINGDAMPER" };
+    IfcDamperTypeEnum.BLASTDAMPER = { type: 3, value: "BLASTDAMPER" };
+    IfcDamperTypeEnum.CONTROLDAMPER = { type: 3, value: "CONTROLDAMPER" };
+    IfcDamperTypeEnum.FIREDAMPER = { type: 3, value: "FIREDAMPER" };
+    IfcDamperTypeEnum.FIRESMOKEDAMPER = { type: 3, value: "FIRESMOKEDAMPER" };
+    IfcDamperTypeEnum.FUMEHOODEXHAUST = { type: 3, value: "FUMEHOODEXHAUST" };
+    IfcDamperTypeEnum.GRAVITYDAMPER = { type: 3, value: "GRAVITYDAMPER" };
+    IfcDamperTypeEnum.GRAVITYRELIEFDAMPER = { type: 3, value: "GRAVITYRELIEFDAMPER" };
+    IfcDamperTypeEnum.RELIEFDAMPER = { type: 3, value: "RELIEFDAMPER" };
+    IfcDamperTypeEnum.SMOKEDAMPER = { type: 3, value: "SMOKEDAMPER" };
+    IfcDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDamperTypeEnum = IfcDamperTypeEnum;
+    class IfcDataOriginEnum {
+    }
+    IfcDataOriginEnum.MEASURED = { type: 3, value: "MEASURED" };
+    IfcDataOriginEnum.PREDICTED = { type: 3, value: "PREDICTED" };
+    IfcDataOriginEnum.SIMULATED = { type: 3, value: "SIMULATED" };
+    IfcDataOriginEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDataOriginEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDataOriginEnum = IfcDataOriginEnum;
+    class IfcDerivedUnitEnum {
+    }
+    IfcDerivedUnitEnum.ACCELERATIONUNIT = { type: 3, value: "ACCELERATIONUNIT" };
+    IfcDerivedUnitEnum.ANGULARVELOCITYUNIT = { type: 3, value: "ANGULARVELOCITYUNIT" };
+    IfcDerivedUnitEnum.AREADENSITYUNIT = { type: 3, value: "AREADENSITYUNIT" };
+    IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT = { type: 3, value: "COMPOUNDPLANEANGLEUNIT" };
+    IfcDerivedUnitEnum.CURVATUREUNIT = { type: 3, value: "CURVATUREUNIT" };
+    IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT = { type: 3, value: "DYNAMICVISCOSITYUNIT" };
+    IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT = { type: 3, value: "HEATFLUXDENSITYUNIT" };
+    IfcDerivedUnitEnum.HEATINGVALUEUNIT = { type: 3, value: "HEATINGVALUEUNIT" };
+    IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT = { type: 3, value: "INTEGERCOUNTRATEUNIT" };
+    IfcDerivedUnitEnum.IONCONCENTRATIONUNIT = { type: 3, value: "IONCONCENTRATIONUNIT" };
+    IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT = { type: 3, value: "ISOTHERMALMOISTURECAPACITYUNIT" };
+    IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT = { type: 3, value: "KINEMATICVISCOSITYUNIT" };
+    IfcDerivedUnitEnum.LINEARFORCEUNIT = { type: 3, value: "LINEARFORCEUNIT" };
+    IfcDerivedUnitEnum.LINEARMOMENTUNIT = { type: 3, value: "LINEARMOMENTUNIT" };
+    IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT = { type: 3, value: "LINEARSTIFFNESSUNIT" };
+    IfcDerivedUnitEnum.LINEARVELOCITYUNIT = { type: 3, value: "LINEARVELOCITYUNIT" };
+    IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT = { type: 3, value: "LUMINOUSINTENSITYDISTRIBUTIONUNIT" };
+    IfcDerivedUnitEnum.MASSDENSITYUNIT = { type: 3, value: "MASSDENSITYUNIT" };
+    IfcDerivedUnitEnum.MASSFLOWRATEUNIT = { type: 3, value: "MASSFLOWRATEUNIT" };
+    IfcDerivedUnitEnum.MASSPERLENGTHUNIT = { type: 3, value: "MASSPERLENGTHUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT = { type: 3, value: "MODULUSOFELASTICITYUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFLINEARSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFROTATIONALSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT = { type: 3, value: "MODULUSOFSUBGRADEREACTIONUNIT" };
+    IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT = { type: 3, value: "MOISTUREDIFFUSIVITYUNIT" };
+    IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT = { type: 3, value: "MOLECULARWEIGHTUNIT" };
+    IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT = { type: 3, value: "MOMENTOFINERTIAUNIT" };
+    IfcDerivedUnitEnum.PHUNIT = { type: 3, value: "PHUNIT" };
+    IfcDerivedUnitEnum.PLANARFORCEUNIT = { type: 3, value: "PLANARFORCEUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT = { type: 3, value: "ROTATIONALFREQUENCYUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALMASSUNIT = { type: 3, value: "ROTATIONALMASSUNIT" };
+    IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT = { type: 3, value: "ROTATIONALSTIFFNESSUNIT" };
+    IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT = { type: 3, value: "SECTIONAREAINTEGRALUNIT" };
+    IfcDerivedUnitEnum.SECTIONMODULUSUNIT = { type: 3, value: "SECTIONMODULUSUNIT" };
+    IfcDerivedUnitEnum.SHEARMODULUSUNIT = { type: 3, value: "SHEARMODULUSUNIT" };
+    IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT = { type: 3, value: "SOUNDPOWERLEVELUNIT" };
+    IfcDerivedUnitEnum.SOUNDPOWERUNIT = { type: 3, value: "SOUNDPOWERUNIT" };
+    IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT = { type: 3, value: "SOUNDPRESSURELEVELUNIT" };
+    IfcDerivedUnitEnum.SOUNDPRESSUREUNIT = { type: 3, value: "SOUNDPRESSUREUNIT" };
+    IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT = { type: 3, value: "SPECIFICHEATCAPACITYUNIT" };
+    IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT = { type: 3, value: "TEMPERATUREGRADIENTUNIT" };
+    IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT = { type: 3, value: "TEMPERATURERATEOFCHANGEUNIT" };
+    IfcDerivedUnitEnum.THERMALADMITTANCEUNIT = { type: 3, value: "THERMALADMITTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT = { type: 3, value: "THERMALCONDUCTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT = { type: 3, value: "THERMALEXPANSIONCOEFFICIENTUNIT" };
+    IfcDerivedUnitEnum.THERMALRESISTANCEUNIT = { type: 3, value: "THERMALRESISTANCEUNIT" };
+    IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT = { type: 3, value: "THERMALTRANSMITTANCEUNIT" };
+    IfcDerivedUnitEnum.TORQUEUNIT = { type: 3, value: "TORQUEUNIT" };
+    IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT = { type: 3, value: "VAPORPERMEABILITYUNIT" };
+    IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT = { type: 3, value: "VOLUMETRICFLOWRATEUNIT" };
+    IfcDerivedUnitEnum.WARPINGCONSTANTUNIT = { type: 3, value: "WARPINGCONSTANTUNIT" };
+    IfcDerivedUnitEnum.WARPINGMOMENTUNIT = { type: 3, value: "WARPINGMOMENTUNIT" };
+    IfcDerivedUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC4X32.IfcDerivedUnitEnum = IfcDerivedUnitEnum;
+    class IfcDirectionSenseEnum {
+    }
+    IfcDirectionSenseEnum.NEGATIVE = { type: 3, value: "NEGATIVE" };
+    IfcDirectionSenseEnum.POSITIVE = { type: 3, value: "POSITIVE" };
+    IFC4X32.IfcDirectionSenseEnum = IfcDirectionSenseEnum;
+    class IfcDiscreteAccessoryTypeEnum {
+    }
+    IfcDiscreteAccessoryTypeEnum.ANCHORPLATE = { type: 3, value: "ANCHORPLATE" };
+    IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION = { type: 3, value: "BIRDPROTECTION" };
+    IfcDiscreteAccessoryTypeEnum.BRACKET = { type: 3, value: "BRACKET" };
+    IfcDiscreteAccessoryTypeEnum.CABLEARRANGER = { type: 3, value: "CABLEARRANGER" };
+    IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION = { type: 3, value: "ELASTIC_CUSHION" };
+    IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE = { type: 3, value: "EXPANSION_JOINT_DEVICE" };
+    IfcDiscreteAccessoryTypeEnum.FILLER = { type: 3, value: "FILLER" };
+    IfcDiscreteAccessoryTypeEnum.FLASHING = { type: 3, value: "FLASHING" };
+    IfcDiscreteAccessoryTypeEnum.INSULATOR = { type: 3, value: "INSULATOR" };
+    IfcDiscreteAccessoryTypeEnum.LOCK = { type: 3, value: "LOCK" };
+    IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING = { type: 3, value: "PANEL_STRENGTHENING" };
+    IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE = { type: 3, value: "POINTMACHINEMOUNTINGDEVICE" };
+    IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE = { type: 3, value: "POINT_MACHINE_LOCKING_DEVICE" };
+    IfcDiscreteAccessoryTypeEnum.RAILBRACE = { type: 3, value: "RAILBRACE" };
+    IfcDiscreteAccessoryTypeEnum.RAILPAD = { type: 3, value: "RAILPAD" };
+    IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION = { type: 3, value: "RAIL_LUBRICATION" };
+    IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT" };
+    IfcDiscreteAccessoryTypeEnum.SHOE = { type: 3, value: "SHOE" };
+    IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR = { type: 3, value: "SLIDINGCHAIR" };
+    IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION = { type: 3, value: "SOUNDABSORPTION" };
+    IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT = { type: 3, value: "TENSIONINGEQUIPMENT" };
+    IfcDiscreteAccessoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDiscreteAccessoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDiscreteAccessoryTypeEnum = IfcDiscreteAccessoryTypeEnum;
+    class IfcDistributionBoardTypeEnum {
+    }
+    IfcDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" };
+    IfcDistributionBoardTypeEnum.DISPATCHINGBOARD = { type: 3, value: "DISPATCHINGBOARD" };
+    IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" };
+    IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME = { type: 3, value: "DISTRIBUTIONFRAME" };
+    IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" };
+    IfcDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" };
+    IfcDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDistributionBoardTypeEnum = IfcDistributionBoardTypeEnum;
+    class IfcDistributionChamberElementTypeEnum {
+    }
+    IfcDistributionChamberElementTypeEnum.FORMEDDUCT = { type: 3, value: "FORMEDDUCT" };
+    IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER = { type: 3, value: "INSPECTIONCHAMBER" };
+    IfcDistributionChamberElementTypeEnum.INSPECTIONPIT = { type: 3, value: "INSPECTIONPIT" };
+    IfcDistributionChamberElementTypeEnum.MANHOLE = { type: 3, value: "MANHOLE" };
+    IfcDistributionChamberElementTypeEnum.METERCHAMBER = { type: 3, value: "METERCHAMBER" };
+    IfcDistributionChamberElementTypeEnum.SUMP = { type: 3, value: "SUMP" };
+    IfcDistributionChamberElementTypeEnum.TRENCH = { type: 3, value: "TRENCH" };
+    IfcDistributionChamberElementTypeEnum.VALVECHAMBER = { type: 3, value: "VALVECHAMBER" };
+    IfcDistributionChamberElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDistributionChamberElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDistributionChamberElementTypeEnum = IfcDistributionChamberElementTypeEnum;
+    class IfcDistributionPortTypeEnum {
+    }
+    IfcDistributionPortTypeEnum.CABLE = { type: 3, value: "CABLE" };
+    IfcDistributionPortTypeEnum.CABLECARRIER = { type: 3, value: "CABLECARRIER" };
+    IfcDistributionPortTypeEnum.DUCT = { type: 3, value: "DUCT" };
+    IfcDistributionPortTypeEnum.PIPE = { type: 3, value: "PIPE" };
+    IfcDistributionPortTypeEnum.WIRELESS = { type: 3, value: "WIRELESS" };
+    IfcDistributionPortTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDistributionPortTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDistributionPortTypeEnum = IfcDistributionPortTypeEnum;
+    class IfcDistributionSystemEnum {
+    }
+    IfcDistributionSystemEnum.AIRCONDITIONING = { type: 3, value: "AIRCONDITIONING" };
+    IfcDistributionSystemEnum.AUDIOVISUAL = { type: 3, value: "AUDIOVISUAL" };
+    IfcDistributionSystemEnum.CATENARY_SYSTEM = { type: 3, value: "CATENARY_SYSTEM" };
+    IfcDistributionSystemEnum.CHEMICAL = { type: 3, value: "CHEMICAL" };
+    IfcDistributionSystemEnum.CHILLEDWATER = { type: 3, value: "CHILLEDWATER" };
+    IfcDistributionSystemEnum.COMMUNICATION = { type: 3, value: "COMMUNICATION" };
+    IfcDistributionSystemEnum.COMPRESSEDAIR = { type: 3, value: "COMPRESSEDAIR" };
+    IfcDistributionSystemEnum.CONDENSERWATER = { type: 3, value: "CONDENSERWATER" };
+    IfcDistributionSystemEnum.CONTROL = { type: 3, value: "CONTROL" };
+    IfcDistributionSystemEnum.CONVEYING = { type: 3, value: "CONVEYING" };
+    IfcDistributionSystemEnum.DATA = { type: 3, value: "DATA" };
+    IfcDistributionSystemEnum.DISPOSAL = { type: 3, value: "DISPOSAL" };
+    IfcDistributionSystemEnum.DOMESTICCOLDWATER = { type: 3, value: "DOMESTICCOLDWATER" };
+    IfcDistributionSystemEnum.DOMESTICHOTWATER = { type: 3, value: "DOMESTICHOTWATER" };
+    IfcDistributionSystemEnum.DRAINAGE = { type: 3, value: "DRAINAGE" };
+    IfcDistributionSystemEnum.EARTHING = { type: 3, value: "EARTHING" };
+    IfcDistributionSystemEnum.ELECTRICAL = { type: 3, value: "ELECTRICAL" };
+    IfcDistributionSystemEnum.ELECTROACOUSTIC = { type: 3, value: "ELECTROACOUSTIC" };
+    IfcDistributionSystemEnum.EXHAUST = { type: 3, value: "EXHAUST" };
+    IfcDistributionSystemEnum.FIREPROTECTION = { type: 3, value: "FIREPROTECTION" };
+    IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK = { type: 3, value: "FIXEDTRANSMISSIONNETWORK" };
+    IfcDistributionSystemEnum.FUEL = { type: 3, value: "FUEL" };
+    IfcDistributionSystemEnum.GAS = { type: 3, value: "GAS" };
+    IfcDistributionSystemEnum.HAZARDOUS = { type: 3, value: "HAZARDOUS" };
+    IfcDistributionSystemEnum.HEATING = { type: 3, value: "HEATING" };
+    IfcDistributionSystemEnum.LIGHTING = { type: 3, value: "LIGHTING" };
+    IfcDistributionSystemEnum.LIGHTNINGPROTECTION = { type: 3, value: "LIGHTNINGPROTECTION" };
+    IfcDistributionSystemEnum.MOBILENETWORK = { type: 3, value: "MOBILENETWORK" };
+    IfcDistributionSystemEnum.MONITORINGSYSTEM = { type: 3, value: "MONITORINGSYSTEM" };
+    IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE = { type: 3, value: "MUNICIPALSOLIDWASTE" };
+    IfcDistributionSystemEnum.OIL = { type: 3, value: "OIL" };
+    IfcDistributionSystemEnum.OPERATIONAL = { type: 3, value: "OPERATIONAL" };
+    IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM = { type: 3, value: "OPERATIONALTELEPHONYSYSTEM" };
+    IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM = { type: 3, value: "OVERHEAD_CONTACTLINE_SYSTEM" };
+    IfcDistributionSystemEnum.POWERGENERATION = { type: 3, value: "POWERGENERATION" };
+    IfcDistributionSystemEnum.RAINWATER = { type: 3, value: "RAINWATER" };
+    IfcDistributionSystemEnum.REFRIGERATION = { type: 3, value: "REFRIGERATION" };
+    IfcDistributionSystemEnum.RETURN_CIRCUIT = { type: 3, value: "RETURN_CIRCUIT" };
+    IfcDistributionSystemEnum.SECURITY = { type: 3, value: "SECURITY" };
+    IfcDistributionSystemEnum.SEWAGE = { type: 3, value: "SEWAGE" };
+    IfcDistributionSystemEnum.SIGNAL = { type: 3, value: "SIGNAL" };
+    IfcDistributionSystemEnum.STORMWATER = { type: 3, value: "STORMWATER" };
+    IfcDistributionSystemEnum.TELEPHONE = { type: 3, value: "TELEPHONE" };
+    IfcDistributionSystemEnum.TV = { type: 3, value: "TV" };
+    IfcDistributionSystemEnum.VACUUM = { type: 3, value: "VACUUM" };
+    IfcDistributionSystemEnum.VENT = { type: 3, value: "VENT" };
+    IfcDistributionSystemEnum.VENTILATION = { type: 3, value: "VENTILATION" };
+    IfcDistributionSystemEnum.WASTEWATER = { type: 3, value: "WASTEWATER" };
+    IfcDistributionSystemEnum.WATERSUPPLY = { type: 3, value: "WATERSUPPLY" };
+    IfcDistributionSystemEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDistributionSystemEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDistributionSystemEnum = IfcDistributionSystemEnum;
+    class IfcDocumentConfidentialityEnum {
+    }
+    IfcDocumentConfidentialityEnum.CONFIDENTIAL = { type: 3, value: "CONFIDENTIAL" };
+    IfcDocumentConfidentialityEnum.PERSONAL = { type: 3, value: "PERSONAL" };
+    IfcDocumentConfidentialityEnum.PUBLIC = { type: 3, value: "PUBLIC" };
+    IfcDocumentConfidentialityEnum.RESTRICTED = { type: 3, value: "RESTRICTED" };
+    IfcDocumentConfidentialityEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDocumentConfidentialityEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDocumentConfidentialityEnum = IfcDocumentConfidentialityEnum;
+    class IfcDocumentStatusEnum {
+    }
+    IfcDocumentStatusEnum.DRAFT = { type: 3, value: "DRAFT" };
+    IfcDocumentStatusEnum.FINAL = { type: 3, value: "FINAL" };
+    IfcDocumentStatusEnum.FINALDRAFT = { type: 3, value: "FINALDRAFT" };
+    IfcDocumentStatusEnum.REVISION = { type: 3, value: "REVISION" };
+    IfcDocumentStatusEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDocumentStatusEnum = IfcDocumentStatusEnum;
+    class IfcDoorPanelOperationEnum {
+    }
+    IfcDoorPanelOperationEnum.DOUBLE_ACTING = { type: 3, value: "DOUBLE_ACTING" };
+    IfcDoorPanelOperationEnum.FIXEDPANEL = { type: 3, value: "FIXEDPANEL" };
+    IfcDoorPanelOperationEnum.FOLDING = { type: 3, value: "FOLDING" };
+    IfcDoorPanelOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" };
+    IfcDoorPanelOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" };
+    IfcDoorPanelOperationEnum.SLIDING = { type: 3, value: "SLIDING" };
+    IfcDoorPanelOperationEnum.SWINGING = { type: 3, value: "SWINGING" };
+    IfcDoorPanelOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDoorPanelOperationEnum = IfcDoorPanelOperationEnum;
+    class IfcDoorPanelPositionEnum {
+    }
+    IfcDoorPanelPositionEnum.LEFT = { type: 3, value: "LEFT" };
+    IfcDoorPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" };
+    IfcDoorPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" };
+    IfcDoorPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDoorPanelPositionEnum = IfcDoorPanelPositionEnum;
+    class IfcDoorStyleConstructionEnum {
+    }
+    IfcDoorStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" };
+    IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC = { type: 3, value: "ALUMINIUM_PLASTIC" };
+    IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" };
+    IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" };
+    IfcDoorStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcDoorStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" };
+    IfcDoorStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" };
+    IfcDoorStyleConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDoorStyleConstructionEnum = IfcDoorStyleConstructionEnum;
+    class IfcDoorStyleOperationEnum {
+    }
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING = { type: 3, value: "DOUBLE_DOOR_DOUBLE_SWING" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING = { type: 3, value: "DOUBLE_DOOR_FOLDING" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT" };
+    IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING = { type: 3, value: "DOUBLE_DOOR_SLIDING" };
+    IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" };
+    IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" };
+    IfcDoorStyleOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" };
+    IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" };
+    IfcDoorStyleOperationEnum.REVOLVING = { type: 3, value: "REVOLVING" };
+    IfcDoorStyleOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" };
+    IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" };
+    IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" };
+    IfcDoorStyleOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" };
+    IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" };
+    IfcDoorStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDoorStyleOperationEnum = IfcDoorStyleOperationEnum;
+    class IfcDoorTypeEnum {
+    }
+    IfcDoorTypeEnum.BOOM_BARRIER = { type: 3, value: "BOOM_BARRIER" };
+    IfcDoorTypeEnum.DOOR = { type: 3, value: "DOOR" };
+    IfcDoorTypeEnum.GATE = { type: 3, value: "GATE" };
+    IfcDoorTypeEnum.TRAPDOOR = { type: 3, value: "TRAPDOOR" };
+    IfcDoorTypeEnum.TURNSTILE = { type: 3, value: "TURNSTILE" };
+    IfcDoorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDoorTypeEnum = IfcDoorTypeEnum;
+    class IfcDoorTypeOperationEnum {
+    }
+    IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING = { type: 3, value: "DOUBLE_PANEL_DOUBLE_SWING" };
+    IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING = { type: 3, value: "DOUBLE_PANEL_FOLDING" };
+    IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL = { type: 3, value: "DOUBLE_PANEL_LIFTING_VERTICAL" };
+    IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING" };
+    IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT" };
+    IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT = { type: 3, value: "DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT" };
+    IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING = { type: 3, value: "DOUBLE_PANEL_SLIDING" };
+    IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT = { type: 3, value: "DOUBLE_SWING_LEFT" };
+    IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT = { type: 3, value: "DOUBLE_SWING_RIGHT" };
+    IfcDoorTypeOperationEnum.FOLDING_TO_LEFT = { type: 3, value: "FOLDING_TO_LEFT" };
+    IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT = { type: 3, value: "FOLDING_TO_RIGHT" };
+    IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL = { type: 3, value: "LIFTING_HORIZONTAL" };
+    IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT = { type: 3, value: "LIFTING_VERTICAL_LEFT" };
+    IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT = { type: 3, value: "LIFTING_VERTICAL_RIGHT" };
+    IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL = { type: 3, value: "REVOLVING_HORIZONTAL" };
+    IfcDoorTypeOperationEnum.REVOLVING_VERTICAL = { type: 3, value: "REVOLVING_VERTICAL" };
+    IfcDoorTypeOperationEnum.ROLLINGUP = { type: 3, value: "ROLLINGUP" };
+    IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT = { type: 3, value: "SINGLE_SWING_LEFT" };
+    IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT = { type: 3, value: "SINGLE_SWING_RIGHT" };
+    IfcDoorTypeOperationEnum.SLIDING_TO_LEFT = { type: 3, value: "SLIDING_TO_LEFT" };
+    IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT = { type: 3, value: "SLIDING_TO_RIGHT" };
+    IfcDoorTypeOperationEnum.SWING_FIXED_LEFT = { type: 3, value: "SWING_FIXED_LEFT" };
+    IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT = { type: 3, value: "SWING_FIXED_RIGHT" };
+    IfcDoorTypeOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDoorTypeOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDoorTypeOperationEnum = IfcDoorTypeOperationEnum;
+    class IfcDuctFittingTypeEnum {
+    }
+    IfcDuctFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcDuctFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcDuctFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" };
+    IfcDuctFittingTypeEnum.EXIT = { type: 3, value: "EXIT" };
+    IfcDuctFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcDuctFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" };
+    IfcDuctFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcDuctFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDuctFittingTypeEnum = IfcDuctFittingTypeEnum;
+    class IfcDuctSegmentTypeEnum {
+    }
+    IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" };
+    IfcDuctSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" };
+    IfcDuctSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDuctSegmentTypeEnum = IfcDuctSegmentTypeEnum;
+    class IfcDuctSilencerTypeEnum {
+    }
+    IfcDuctSilencerTypeEnum.FLATOVAL = { type: 3, value: "FLATOVAL" };
+    IfcDuctSilencerTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" };
+    IfcDuctSilencerTypeEnum.ROUND = { type: 3, value: "ROUND" };
+    IfcDuctSilencerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcDuctSilencerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcDuctSilencerTypeEnum = IfcDuctSilencerTypeEnum;
+    class IfcEarthworksCutTypeEnum {
+    }
+    IfcEarthworksCutTypeEnum.BASE_EXCAVATION = { type: 3, value: "BASE_EXCAVATION" };
+    IfcEarthworksCutTypeEnum.CUT = { type: 3, value: "CUT" };
+    IfcEarthworksCutTypeEnum.DREDGING = { type: 3, value: "DREDGING" };
+    IfcEarthworksCutTypeEnum.EXCAVATION = { type: 3, value: "EXCAVATION" };
+    IfcEarthworksCutTypeEnum.OVEREXCAVATION = { type: 3, value: "OVEREXCAVATION" };
+    IfcEarthworksCutTypeEnum.PAVEMENTMILLING = { type: 3, value: "PAVEMENTMILLING" };
+    IfcEarthworksCutTypeEnum.STEPEXCAVATION = { type: 3, value: "STEPEXCAVATION" };
+    IfcEarthworksCutTypeEnum.TOPSOILREMOVAL = { type: 3, value: "TOPSOILREMOVAL" };
+    IfcEarthworksCutTypeEnum.TRENCH = { type: 3, value: "TRENCH" };
+    IfcEarthworksCutTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEarthworksCutTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcEarthworksCutTypeEnum = IfcEarthworksCutTypeEnum;
+    class IfcEarthworksFillTypeEnum {
+    }
+    IfcEarthworksFillTypeEnum.BACKFILL = { type: 3, value: "BACKFILL" };
+    IfcEarthworksFillTypeEnum.COUNTERWEIGHT = { type: 3, value: "COUNTERWEIGHT" };
+    IfcEarthworksFillTypeEnum.EMBANKMENT = { type: 3, value: "EMBANKMENT" };
+    IfcEarthworksFillTypeEnum.SLOPEFILL = { type: 3, value: "SLOPEFILL" };
+    IfcEarthworksFillTypeEnum.SUBGRADE = { type: 3, value: "SUBGRADE" };
+    IfcEarthworksFillTypeEnum.SUBGRADEBED = { type: 3, value: "SUBGRADEBED" };
+    IfcEarthworksFillTypeEnum.TRANSITIONSECTION = { type: 3, value: "TRANSITIONSECTION" };
+    IfcEarthworksFillTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEarthworksFillTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcEarthworksFillTypeEnum = IfcEarthworksFillTypeEnum;
+    class IfcElectricApplianceTypeEnum {
+    }
+    IfcElectricApplianceTypeEnum.DISHWASHER = { type: 3, value: "DISHWASHER" };
+    IfcElectricApplianceTypeEnum.ELECTRICCOOKER = { type: 3, value: "ELECTRICCOOKER" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER = { type: 3, value: "FREESTANDINGELECTRICHEATER" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGFAN = { type: 3, value: "FREESTANDINGFAN" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER = { type: 3, value: "FREESTANDINGWATERCOOLER" };
+    IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER = { type: 3, value: "FREESTANDINGWATERHEATER" };
+    IfcElectricApplianceTypeEnum.FREEZER = { type: 3, value: "FREEZER" };
+    IfcElectricApplianceTypeEnum.FRIDGE_FREEZER = { type: 3, value: "FRIDGE_FREEZER" };
+    IfcElectricApplianceTypeEnum.HANDDRYER = { type: 3, value: "HANDDRYER" };
+    IfcElectricApplianceTypeEnum.KITCHENMACHINE = { type: 3, value: "KITCHENMACHINE" };
+    IfcElectricApplianceTypeEnum.MICROWAVE = { type: 3, value: "MICROWAVE" };
+    IfcElectricApplianceTypeEnum.PHOTOCOPIER = { type: 3, value: "PHOTOCOPIER" };
+    IfcElectricApplianceTypeEnum.REFRIGERATOR = { type: 3, value: "REFRIGERATOR" };
+    IfcElectricApplianceTypeEnum.TUMBLEDRYER = { type: 3, value: "TUMBLEDRYER" };
+    IfcElectricApplianceTypeEnum.VENDINGMACHINE = { type: 3, value: "VENDINGMACHINE" };
+    IfcElectricApplianceTypeEnum.WASHINGMACHINE = { type: 3, value: "WASHINGMACHINE" };
+    IfcElectricApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcElectricApplianceTypeEnum = IfcElectricApplianceTypeEnum;
+    class IfcElectricDistributionBoardTypeEnum {
+    }
+    IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT = { type: 3, value: "CONSUMERUNIT" };
+    IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD = { type: 3, value: "DISTRIBUTIONBOARD" };
+    IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE = { type: 3, value: "MOTORCONTROLCENTRE" };
+    IfcElectricDistributionBoardTypeEnum.SWITCHBOARD = { type: 3, value: "SWITCHBOARD" };
+    IfcElectricDistributionBoardTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricDistributionBoardTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcElectricDistributionBoardTypeEnum = IfcElectricDistributionBoardTypeEnum;
+    class IfcElectricFlowStorageDeviceTypeEnum {
+    }
+    IfcElectricFlowStorageDeviceTypeEnum.BATTERY = { type: 3, value: "BATTERY" };
+    IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR = { type: 3, value: "CAPACITOR" };
+    IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK = { type: 3, value: "CAPACITORBANK" };
+    IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR = { type: 3, value: "COMPENSATOR" };
+    IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER = { type: 3, value: "HARMONICFILTER" };
+    IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR = { type: 3, value: "INDUCTOR" };
+    IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK = { type: 3, value: "INDUCTORBANK" };
+    IfcElectricFlowStorageDeviceTypeEnum.RECHARGER = { type: 3, value: "RECHARGER" };
+    IfcElectricFlowStorageDeviceTypeEnum.UPS = { type: 3, value: "UPS" };
+    IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcElectricFlowStorageDeviceTypeEnum = IfcElectricFlowStorageDeviceTypeEnum;
+    class IfcElectricFlowTreatmentDeviceTypeEnum {
+    }
+    IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER = { type: 3, value: "ELECTRONICFILTER" };
+    IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcElectricFlowTreatmentDeviceTypeEnum = IfcElectricFlowTreatmentDeviceTypeEnum;
+    class IfcElectricGeneratorTypeEnum {
+    }
+    IfcElectricGeneratorTypeEnum.CHP = { type: 3, value: "CHP" };
+    IfcElectricGeneratorTypeEnum.ENGINEGENERATOR = { type: 3, value: "ENGINEGENERATOR" };
+    IfcElectricGeneratorTypeEnum.STANDALONE = { type: 3, value: "STANDALONE" };
+    IfcElectricGeneratorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricGeneratorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcElectricGeneratorTypeEnum = IfcElectricGeneratorTypeEnum;
+    class IfcElectricMotorTypeEnum {
+    }
+    IfcElectricMotorTypeEnum.DC = { type: 3, value: "DC" };
+    IfcElectricMotorTypeEnum.INDUCTION = { type: 3, value: "INDUCTION" };
+    IfcElectricMotorTypeEnum.POLYPHASE = { type: 3, value: "POLYPHASE" };
+    IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS = { type: 3, value: "RELUCTANCESYNCHRONOUS" };
+    IfcElectricMotorTypeEnum.SYNCHRONOUS = { type: 3, value: "SYNCHRONOUS" };
+    IfcElectricMotorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricMotorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcElectricMotorTypeEnum = IfcElectricMotorTypeEnum;
+    class IfcElectricTimeControlTypeEnum {
+    }
+    IfcElectricTimeControlTypeEnum.RELAY = { type: 3, value: "RELAY" };
+    IfcElectricTimeControlTypeEnum.TIMECLOCK = { type: 3, value: "TIMECLOCK" };
+    IfcElectricTimeControlTypeEnum.TIMEDELAY = { type: 3, value: "TIMEDELAY" };
+    IfcElectricTimeControlTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElectricTimeControlTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcElectricTimeControlTypeEnum = IfcElectricTimeControlTypeEnum;
+    class IfcElementAssemblyTypeEnum {
+    }
+    IfcElementAssemblyTypeEnum.ABUTMENT = { type: 3, value: "ABUTMENT" };
+    IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY = { type: 3, value: "ACCESSORY_ASSEMBLY" };
+    IfcElementAssemblyTypeEnum.ARCH = { type: 3, value: "ARCH" };
+    IfcElementAssemblyTypeEnum.BEAM_GRID = { type: 3, value: "BEAM_GRID" };
+    IfcElementAssemblyTypeEnum.BRACED_FRAME = { type: 3, value: "BRACED_FRAME" };
+    IfcElementAssemblyTypeEnum.CROSS_BRACING = { type: 3, value: "CROSS_BRACING" };
+    IfcElementAssemblyTypeEnum.DECK = { type: 3, value: "DECK" };
+    IfcElementAssemblyTypeEnum.DILATATIONPANEL = { type: 3, value: "DILATATIONPANEL" };
+    IfcElementAssemblyTypeEnum.ENTRANCEWORKS = { type: 3, value: "ENTRANCEWORKS" };
+    IfcElementAssemblyTypeEnum.GIRDER = { type: 3, value: "GIRDER" };
+    IfcElementAssemblyTypeEnum.GRID = { type: 3, value: "GRID" };
+    IfcElementAssemblyTypeEnum.MAST = { type: 3, value: "MAST" };
+    IfcElementAssemblyTypeEnum.PIER = { type: 3, value: "PIER" };
+    IfcElementAssemblyTypeEnum.PYLON = { type: 3, value: "PYLON" };
+    IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY = { type: 3, value: "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY" };
+    IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT = { type: 3, value: "REINFORCEMENT_UNIT" };
+    IfcElementAssemblyTypeEnum.RIGID_FRAME = { type: 3, value: "RIGID_FRAME" };
+    IfcElementAssemblyTypeEnum.SHELTER = { type: 3, value: "SHELTER" };
+    IfcElementAssemblyTypeEnum.SIGNALASSEMBLY = { type: 3, value: "SIGNALASSEMBLY" };
+    IfcElementAssemblyTypeEnum.SLAB_FIELD = { type: 3, value: "SLAB_FIELD" };
+    IfcElementAssemblyTypeEnum.SUMPBUSTER = { type: 3, value: "SUMPBUSTER" };
+    IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY = { type: 3, value: "SUPPORTINGASSEMBLY" };
+    IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY = { type: 3, value: "SUSPENSIONASSEMBLY" };
+    IfcElementAssemblyTypeEnum.TRACKPANEL = { type: 3, value: "TRACKPANEL" };
+    IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY = { type: 3, value: "TRACTION_SWITCHING_ASSEMBLY" };
+    IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE = { type: 3, value: "TRAFFIC_CALMING_DEVICE" };
+    IfcElementAssemblyTypeEnum.TRUSS = { type: 3, value: "TRUSS" };
+    IfcElementAssemblyTypeEnum.TURNOUTPANEL = { type: 3, value: "TURNOUTPANEL" };
+    IfcElementAssemblyTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcElementAssemblyTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcElementAssemblyTypeEnum = IfcElementAssemblyTypeEnum;
+    class IfcElementCompositionEnum {
+    }
+    IfcElementCompositionEnum.COMPLEX = { type: 3, value: "COMPLEX" };
+    IfcElementCompositionEnum.ELEMENT = { type: 3, value: "ELEMENT" };
+    IfcElementCompositionEnum.PARTIAL = { type: 3, value: "PARTIAL" };
+    IFC4X32.IfcElementCompositionEnum = IfcElementCompositionEnum;
+    class IfcEngineTypeEnum {
+    }
+    IfcEngineTypeEnum.EXTERNALCOMBUSTION = { type: 3, value: "EXTERNALCOMBUSTION" };
+    IfcEngineTypeEnum.INTERNALCOMBUSTION = { type: 3, value: "INTERNALCOMBUSTION" };
+    IfcEngineTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEngineTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcEngineTypeEnum = IfcEngineTypeEnum;
+    class IfcEvaporativeCoolerTypeEnum {
+    }
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER = { type: 3, value: "DIRECTEVAPORATIVEAIRWASHER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER = { type: 3, value: "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION = { type: 3, value: "INDIRECTDIRECTCOMBINATION" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER = { type: 3, value: "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER = { type: 3, value: "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER" };
+    IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL = { type: 3, value: "INDIRECTEVAPORATIVEWETCOIL" };
+    IfcEvaporativeCoolerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEvaporativeCoolerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcEvaporativeCoolerTypeEnum = IfcEvaporativeCoolerTypeEnum;
+    class IfcEvaporatorTypeEnum {
+    }
+    IfcEvaporatorTypeEnum.DIRECTEXPANSION = { type: 3, value: "DIRECTEXPANSION" };
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE = { type: 3, value: "DIRECTEXPANSIONBRAZEDPLATE" };
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE = { type: 3, value: "DIRECTEXPANSIONSHELLANDTUBE" };
+    IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE = { type: 3, value: "DIRECTEXPANSIONTUBEINTUBE" };
+    IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE = { type: 3, value: "FLOODEDSHELLANDTUBE" };
+    IfcEvaporatorTypeEnum.SHELLANDCOIL = { type: 3, value: "SHELLANDCOIL" };
+    IfcEvaporatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEvaporatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcEvaporatorTypeEnum = IfcEvaporatorTypeEnum;
+    class IfcEventTriggerTypeEnum {
+    }
+    IfcEventTriggerTypeEnum.EVENTCOMPLEX = { type: 3, value: "EVENTCOMPLEX" };
+    IfcEventTriggerTypeEnum.EVENTMESSAGE = { type: 3, value: "EVENTMESSAGE" };
+    IfcEventTriggerTypeEnum.EVENTRULE = { type: 3, value: "EVENTRULE" };
+    IfcEventTriggerTypeEnum.EVENTTIME = { type: 3, value: "EVENTTIME" };
+    IfcEventTriggerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEventTriggerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcEventTriggerTypeEnum = IfcEventTriggerTypeEnum;
+    class IfcEventTypeEnum {
+    }
+    IfcEventTypeEnum.ENDEVENT = { type: 3, value: "ENDEVENT" };
+    IfcEventTypeEnum.INTERMEDIATEEVENT = { type: 3, value: "INTERMEDIATEEVENT" };
+    IfcEventTypeEnum.STARTEVENT = { type: 3, value: "STARTEVENT" };
+    IfcEventTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcEventTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcEventTypeEnum = IfcEventTypeEnum;
+    class IfcExternalSpatialElementTypeEnum {
+    }
+    IfcExternalSpatialElementTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" };
+    IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" };
+    IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" };
+    IfcExternalSpatialElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcExternalSpatialElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcExternalSpatialElementTypeEnum = IfcExternalSpatialElementTypeEnum;
+    class IfcFacilityPartCommonTypeEnum {
+    }
+    IfcFacilityPartCommonTypeEnum.ABOVEGROUND = { type: 3, value: "ABOVEGROUND" };
+    IfcFacilityPartCommonTypeEnum.BELOWGROUND = { type: 3, value: "BELOWGROUND" };
+    IfcFacilityPartCommonTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcFacilityPartCommonTypeEnum.LEVELCROSSING = { type: 3, value: "LEVELCROSSING" };
+    IfcFacilityPartCommonTypeEnum.SEGMENT = { type: 3, value: "SEGMENT" };
+    IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE = { type: 3, value: "SUBSTRUCTURE" };
+    IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" };
+    IfcFacilityPartCommonTypeEnum.TERMINAL = { type: 3, value: "TERMINAL" };
+    IfcFacilityPartCommonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFacilityPartCommonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFacilityPartCommonTypeEnum = IfcFacilityPartCommonTypeEnum;
+    class IfcFacilityUsageEnum {
+    }
+    IfcFacilityUsageEnum.LATERAL = { type: 3, value: "LATERAL" };
+    IfcFacilityUsageEnum.LONGITUDINAL = { type: 3, value: "LONGITUDINAL" };
+    IfcFacilityUsageEnum.REGION = { type: 3, value: "REGION" };
+    IfcFacilityUsageEnum.VERTICAL = { type: 3, value: "VERTICAL" };
+    IfcFacilityUsageEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFacilityUsageEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFacilityUsageEnum = IfcFacilityUsageEnum;
+    class IfcFanTypeEnum {
+    }
+    IfcFanTypeEnum.CENTRIFUGALAIRFOIL = { type: 3, value: "CENTRIFUGALAIRFOIL" };
+    IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED = { type: 3, value: "CENTRIFUGALBACKWARDINCLINEDCURVED" };
+    IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED = { type: 3, value: "CENTRIFUGALFORWARDCURVED" };
+    IfcFanTypeEnum.CENTRIFUGALRADIAL = { type: 3, value: "CENTRIFUGALRADIAL" };
+    IfcFanTypeEnum.PROPELLORAXIAL = { type: 3, value: "PROPELLORAXIAL" };
+    IfcFanTypeEnum.TUBEAXIAL = { type: 3, value: "TUBEAXIAL" };
+    IfcFanTypeEnum.VANEAXIAL = { type: 3, value: "VANEAXIAL" };
+    IfcFanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFanTypeEnum = IfcFanTypeEnum;
+    class IfcFastenerTypeEnum {
+    }
+    IfcFastenerTypeEnum.GLUE = { type: 3, value: "GLUE" };
+    IfcFastenerTypeEnum.MORTAR = { type: 3, value: "MORTAR" };
+    IfcFastenerTypeEnum.WELD = { type: 3, value: "WELD" };
+    IfcFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFastenerTypeEnum = IfcFastenerTypeEnum;
+    class IfcFilterTypeEnum {
+    }
+    IfcFilterTypeEnum.AIRPARTICLEFILTER = { type: 3, value: "AIRPARTICLEFILTER" };
+    IfcFilterTypeEnum.COMPRESSEDAIRFILTER = { type: 3, value: "COMPRESSEDAIRFILTER" };
+    IfcFilterTypeEnum.ODORFILTER = { type: 3, value: "ODORFILTER" };
+    IfcFilterTypeEnum.OILFILTER = { type: 3, value: "OILFILTER" };
+    IfcFilterTypeEnum.STRAINER = { type: 3, value: "STRAINER" };
+    IfcFilterTypeEnum.WATERFILTER = { type: 3, value: "WATERFILTER" };
+    IfcFilterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFilterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFilterTypeEnum = IfcFilterTypeEnum;
+    class IfcFireSuppressionTerminalTypeEnum {
+    }
+    IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET = { type: 3, value: "BREECHINGINLET" };
+    IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT = { type: 3, value: "FIREHYDRANT" };
+    IfcFireSuppressionTerminalTypeEnum.FIREMONITOR = { type: 3, value: "FIREMONITOR" };
+    IfcFireSuppressionTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" };
+    IfcFireSuppressionTerminalTypeEnum.SPRINKLER = { type: 3, value: "SPRINKLER" };
+    IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR = { type: 3, value: "SPRINKLERDEFLECTOR" };
+    IfcFireSuppressionTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFireSuppressionTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFireSuppressionTerminalTypeEnum = IfcFireSuppressionTerminalTypeEnum;
+    class IfcFlowDirectionEnum {
+    }
+    IfcFlowDirectionEnum.SINK = { type: 3, value: "SINK" };
+    IfcFlowDirectionEnum.SOURCE = { type: 3, value: "SOURCE" };
+    IfcFlowDirectionEnum.SOURCEANDSINK = { type: 3, value: "SOURCEANDSINK" };
+    IfcFlowDirectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFlowDirectionEnum = IfcFlowDirectionEnum;
+    class IfcFlowInstrumentTypeEnum {
+    }
+    IfcFlowInstrumentTypeEnum.AMMETER = { type: 3, value: "AMMETER" };
+    IfcFlowInstrumentTypeEnum.COMBINED = { type: 3, value: "COMBINED" };
+    IfcFlowInstrumentTypeEnum.FREQUENCYMETER = { type: 3, value: "FREQUENCYMETER" };
+    IfcFlowInstrumentTypeEnum.PHASEANGLEMETER = { type: 3, value: "PHASEANGLEMETER" };
+    IfcFlowInstrumentTypeEnum.POWERFACTORMETER = { type: 3, value: "POWERFACTORMETER" };
+    IfcFlowInstrumentTypeEnum.PRESSUREGAUGE = { type: 3, value: "PRESSUREGAUGE" };
+    IfcFlowInstrumentTypeEnum.THERMOMETER = { type: 3, value: "THERMOMETER" };
+    IfcFlowInstrumentTypeEnum.VOLTMETER = { type: 3, value: "VOLTMETER" };
+    IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK = { type: 3, value: "VOLTMETER_PEAK" };
+    IfcFlowInstrumentTypeEnum.VOLTMETER_RMS = { type: 3, value: "VOLTMETER_RMS" };
+    IfcFlowInstrumentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFlowInstrumentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFlowInstrumentTypeEnum = IfcFlowInstrumentTypeEnum;
+    class IfcFlowMeterTypeEnum {
+    }
+    IfcFlowMeterTypeEnum.ENERGYMETER = { type: 3, value: "ENERGYMETER" };
+    IfcFlowMeterTypeEnum.GASMETER = { type: 3, value: "GASMETER" };
+    IfcFlowMeterTypeEnum.OILMETER = { type: 3, value: "OILMETER" };
+    IfcFlowMeterTypeEnum.WATERMETER = { type: 3, value: "WATERMETER" };
+    IfcFlowMeterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFlowMeterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFlowMeterTypeEnum = IfcFlowMeterTypeEnum;
+    class IfcFootingTypeEnum {
+    }
+    IfcFootingTypeEnum.CAISSON_FOUNDATION = { type: 3, value: "CAISSON_FOUNDATION" };
+    IfcFootingTypeEnum.FOOTING_BEAM = { type: 3, value: "FOOTING_BEAM" };
+    IfcFootingTypeEnum.PAD_FOOTING = { type: 3, value: "PAD_FOOTING" };
+    IfcFootingTypeEnum.PILE_CAP = { type: 3, value: "PILE_CAP" };
+    IfcFootingTypeEnum.STRIP_FOOTING = { type: 3, value: "STRIP_FOOTING" };
+    IfcFootingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFootingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFootingTypeEnum = IfcFootingTypeEnum;
+    class IfcFurnitureTypeEnum {
+    }
+    IfcFurnitureTypeEnum.BED = { type: 3, value: "BED" };
+    IfcFurnitureTypeEnum.CHAIR = { type: 3, value: "CHAIR" };
+    IfcFurnitureTypeEnum.DESK = { type: 3, value: "DESK" };
+    IfcFurnitureTypeEnum.FILECABINET = { type: 3, value: "FILECABINET" };
+    IfcFurnitureTypeEnum.SHELF = { type: 3, value: "SHELF" };
+    IfcFurnitureTypeEnum.SOFA = { type: 3, value: "SOFA" };
+    IfcFurnitureTypeEnum.TABLE = { type: 3, value: "TABLE" };
+    IfcFurnitureTypeEnum.TECHNICALCABINET = { type: 3, value: "TECHNICALCABINET" };
+    IfcFurnitureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcFurnitureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcFurnitureTypeEnum = IfcFurnitureTypeEnum;
+    class IfcGeographicElementTypeEnum {
+    }
+    IfcGeographicElementTypeEnum.SOIL_BORING_POINT = { type: 3, value: "SOIL_BORING_POINT" };
+    IfcGeographicElementTypeEnum.TERRAIN = { type: 3, value: "TERRAIN" };
+    IfcGeographicElementTypeEnum.VEGETATION = { type: 3, value: "VEGETATION" };
+    IfcGeographicElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGeographicElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcGeographicElementTypeEnum = IfcGeographicElementTypeEnum;
+    class IfcGeometricProjectionEnum {
+    }
+    IfcGeometricProjectionEnum.ELEVATION_VIEW = { type: 3, value: "ELEVATION_VIEW" };
+    IfcGeometricProjectionEnum.GRAPH_VIEW = { type: 3, value: "GRAPH_VIEW" };
+    IfcGeometricProjectionEnum.MODEL_VIEW = { type: 3, value: "MODEL_VIEW" };
+    IfcGeometricProjectionEnum.PLAN_VIEW = { type: 3, value: "PLAN_VIEW" };
+    IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW = { type: 3, value: "REFLECTED_PLAN_VIEW" };
+    IfcGeometricProjectionEnum.SECTION_VIEW = { type: 3, value: "SECTION_VIEW" };
+    IfcGeometricProjectionEnum.SKETCH_VIEW = { type: 3, value: "SKETCH_VIEW" };
+    IfcGeometricProjectionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGeometricProjectionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcGeometricProjectionEnum = IfcGeometricProjectionEnum;
+    class IfcGeotechnicalStratumTypeEnum {
+    }
+    IfcGeotechnicalStratumTypeEnum.SOLID = { type: 3, value: "SOLID" };
+    IfcGeotechnicalStratumTypeEnum.VOID = { type: 3, value: "VOID" };
+    IfcGeotechnicalStratumTypeEnum.WATER = { type: 3, value: "WATER" };
+    IfcGeotechnicalStratumTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGeotechnicalStratumTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcGeotechnicalStratumTypeEnum = IfcGeotechnicalStratumTypeEnum;
+    class IfcGlobalOrLocalEnum {
+    }
+    IfcGlobalOrLocalEnum.GLOBAL_COORDS = { type: 3, value: "GLOBAL_COORDS" };
+    IfcGlobalOrLocalEnum.LOCAL_COORDS = { type: 3, value: "LOCAL_COORDS" };
+    IFC4X32.IfcGlobalOrLocalEnum = IfcGlobalOrLocalEnum;
+    class IfcGridTypeEnum {
+    }
+    IfcGridTypeEnum.IRREGULAR = { type: 3, value: "IRREGULAR" };
+    IfcGridTypeEnum.RADIAL = { type: 3, value: "RADIAL" };
+    IfcGridTypeEnum.RECTANGULAR = { type: 3, value: "RECTANGULAR" };
+    IfcGridTypeEnum.TRIANGULAR = { type: 3, value: "TRIANGULAR" };
+    IfcGridTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcGridTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcGridTypeEnum = IfcGridTypeEnum;
+    class IfcHeatExchangerTypeEnum {
+    }
+    IfcHeatExchangerTypeEnum.PLATE = { type: 3, value: "PLATE" };
+    IfcHeatExchangerTypeEnum.SHELLANDTUBE = { type: 3, value: "SHELLANDTUBE" };
+    IfcHeatExchangerTypeEnum.TURNOUTHEATING = { type: 3, value: "TURNOUTHEATING" };
+    IfcHeatExchangerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcHeatExchangerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcHeatExchangerTypeEnum = IfcHeatExchangerTypeEnum;
+    class IfcHumidifierTypeEnum {
+    }
+    IfcHumidifierTypeEnum.ADIABATICAIRWASHER = { type: 3, value: "ADIABATICAIRWASHER" };
+    IfcHumidifierTypeEnum.ADIABATICATOMIZING = { type: 3, value: "ADIABATICATOMIZING" };
+    IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE = { type: 3, value: "ADIABATICCOMPRESSEDAIRNOZZLE" };
+    IfcHumidifierTypeEnum.ADIABATICPAN = { type: 3, value: "ADIABATICPAN" };
+    IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA = { type: 3, value: "ADIABATICRIGIDMEDIA" };
+    IfcHumidifierTypeEnum.ADIABATICULTRASONIC = { type: 3, value: "ADIABATICULTRASONIC" };
+    IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT = { type: 3, value: "ADIABATICWETTEDELEMENT" };
+    IfcHumidifierTypeEnum.ASSISTEDBUTANE = { type: 3, value: "ASSISTEDBUTANE" };
+    IfcHumidifierTypeEnum.ASSISTEDELECTRIC = { type: 3, value: "ASSISTEDELECTRIC" };
+    IfcHumidifierTypeEnum.ASSISTEDNATURALGAS = { type: 3, value: "ASSISTEDNATURALGAS" };
+    IfcHumidifierTypeEnum.ASSISTEDPROPANE = { type: 3, value: "ASSISTEDPROPANE" };
+    IfcHumidifierTypeEnum.ASSISTEDSTEAM = { type: 3, value: "ASSISTEDSTEAM" };
+    IfcHumidifierTypeEnum.STEAMINJECTION = { type: 3, value: "STEAMINJECTION" };
+    IfcHumidifierTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcHumidifierTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcHumidifierTypeEnum = IfcHumidifierTypeEnum;
+    class IfcImpactProtectionDeviceTypeEnum {
+    }
+    IfcImpactProtectionDeviceTypeEnum.BUMPER = { type: 3, value: "BUMPER" };
+    IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION = { type: 3, value: "CRASHCUSHION" };
+    IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM = { type: 3, value: "DAMPINGSYSTEM" };
+    IfcImpactProtectionDeviceTypeEnum.FENDER = { type: 3, value: "FENDER" };
+    IfcImpactProtectionDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcImpactProtectionDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcImpactProtectionDeviceTypeEnum = IfcImpactProtectionDeviceTypeEnum;
+    class IfcInterceptorTypeEnum {
+    }
+    IfcInterceptorTypeEnum.CYCLONIC = { type: 3, value: "CYCLONIC" };
+    IfcInterceptorTypeEnum.GREASE = { type: 3, value: "GREASE" };
+    IfcInterceptorTypeEnum.OIL = { type: 3, value: "OIL" };
+    IfcInterceptorTypeEnum.PETROL = { type: 3, value: "PETROL" };
+    IfcInterceptorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcInterceptorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcInterceptorTypeEnum = IfcInterceptorTypeEnum;
+    class IfcInternalOrExternalEnum {
+    }
+    IfcInternalOrExternalEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcInternalOrExternalEnum.EXTERNAL_EARTH = { type: 3, value: "EXTERNAL_EARTH" };
+    IfcInternalOrExternalEnum.EXTERNAL_FIRE = { type: 3, value: "EXTERNAL_FIRE" };
+    IfcInternalOrExternalEnum.EXTERNAL_WATER = { type: 3, value: "EXTERNAL_WATER" };
+    IfcInternalOrExternalEnum.INTERNAL = { type: 3, value: "INTERNAL" };
+    IfcInternalOrExternalEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcInternalOrExternalEnum = IfcInternalOrExternalEnum;
+    class IfcInventoryTypeEnum {
+    }
+    IfcInventoryTypeEnum.ASSETINVENTORY = { type: 3, value: "ASSETINVENTORY" };
+    IfcInventoryTypeEnum.FURNITUREINVENTORY = { type: 3, value: "FURNITUREINVENTORY" };
+    IfcInventoryTypeEnum.SPACEINVENTORY = { type: 3, value: "SPACEINVENTORY" };
+    IfcInventoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcInventoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcInventoryTypeEnum = IfcInventoryTypeEnum;
+    class IfcJunctionBoxTypeEnum {
+    }
+    IfcJunctionBoxTypeEnum.DATA = { type: 3, value: "DATA" };
+    IfcJunctionBoxTypeEnum.POWER = { type: 3, value: "POWER" };
+    IfcJunctionBoxTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcJunctionBoxTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcJunctionBoxTypeEnum = IfcJunctionBoxTypeEnum;
+    class IfcKnotType {
+    }
+    IfcKnotType.PIECEWISE_BEZIER_KNOTS = { type: 3, value: "PIECEWISE_BEZIER_KNOTS" };
+    IfcKnotType.QUASI_UNIFORM_KNOTS = { type: 3, value: "QUASI_UNIFORM_KNOTS" };
+    IfcKnotType.UNIFORM_KNOTS = { type: 3, value: "UNIFORM_KNOTS" };
+    IfcKnotType.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC4X32.IfcKnotType = IfcKnotType;
+    class IfcLaborResourceTypeEnum {
+    }
+    IfcLaborResourceTypeEnum.ADMINISTRATION = { type: 3, value: "ADMINISTRATION" };
+    IfcLaborResourceTypeEnum.CARPENTRY = { type: 3, value: "CARPENTRY" };
+    IfcLaborResourceTypeEnum.CLEANING = { type: 3, value: "CLEANING" };
+    IfcLaborResourceTypeEnum.CONCRETE = { type: 3, value: "CONCRETE" };
+    IfcLaborResourceTypeEnum.DRYWALL = { type: 3, value: "DRYWALL" };
+    IfcLaborResourceTypeEnum.ELECTRIC = { type: 3, value: "ELECTRIC" };
+    IfcLaborResourceTypeEnum.FINISHING = { type: 3, value: "FINISHING" };
+    IfcLaborResourceTypeEnum.FLOORING = { type: 3, value: "FLOORING" };
+    IfcLaborResourceTypeEnum.GENERAL = { type: 3, value: "GENERAL" };
+    IfcLaborResourceTypeEnum.HVAC = { type: 3, value: "HVAC" };
+    IfcLaborResourceTypeEnum.LANDSCAPING = { type: 3, value: "LANDSCAPING" };
+    IfcLaborResourceTypeEnum.MASONRY = { type: 3, value: "MASONRY" };
+    IfcLaborResourceTypeEnum.PAINTING = { type: 3, value: "PAINTING" };
+    IfcLaborResourceTypeEnum.PAVING = { type: 3, value: "PAVING" };
+    IfcLaborResourceTypeEnum.PLUMBING = { type: 3, value: "PLUMBING" };
+    IfcLaborResourceTypeEnum.ROOFING = { type: 3, value: "ROOFING" };
+    IfcLaborResourceTypeEnum.SITEGRADING = { type: 3, value: "SITEGRADING" };
+    IfcLaborResourceTypeEnum.STEELWORK = { type: 3, value: "STEELWORK" };
+    IfcLaborResourceTypeEnum.SURVEYING = { type: 3, value: "SURVEYING" };
+    IfcLaborResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLaborResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcLaborResourceTypeEnum = IfcLaborResourceTypeEnum;
+    class IfcLampTypeEnum {
+    }
+    IfcLampTypeEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" };
+    IfcLampTypeEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" };
+    IfcLampTypeEnum.HALOGEN = { type: 3, value: "HALOGEN" };
+    IfcLampTypeEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" };
+    IfcLampTypeEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" };
+    IfcLampTypeEnum.LED = { type: 3, value: "LED" };
+    IfcLampTypeEnum.METALHALIDE = { type: 3, value: "METALHALIDE" };
+    IfcLampTypeEnum.OLED = { type: 3, value: "OLED" };
+    IfcLampTypeEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" };
+    IfcLampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcLampTypeEnum = IfcLampTypeEnum;
+    class IfcLayerSetDirectionEnum {
+    }
+    IfcLayerSetDirectionEnum.AXIS1 = { type: 3, value: "AXIS1" };
+    IfcLayerSetDirectionEnum.AXIS2 = { type: 3, value: "AXIS2" };
+    IfcLayerSetDirectionEnum.AXIS3 = { type: 3, value: "AXIS3" };
+    IFC4X32.IfcLayerSetDirectionEnum = IfcLayerSetDirectionEnum;
+    class IfcLightDistributionCurveEnum {
+    }
+    IfcLightDistributionCurveEnum.TYPE_A = { type: 3, value: "TYPE_A" };
+    IfcLightDistributionCurveEnum.TYPE_B = { type: 3, value: "TYPE_B" };
+    IfcLightDistributionCurveEnum.TYPE_C = { type: 3, value: "TYPE_C" };
+    IfcLightDistributionCurveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcLightDistributionCurveEnum = IfcLightDistributionCurveEnum;
+    class IfcLightEmissionSourceEnum {
+    }
+    IfcLightEmissionSourceEnum.COMPACTFLUORESCENT = { type: 3, value: "COMPACTFLUORESCENT" };
+    IfcLightEmissionSourceEnum.FLUORESCENT = { type: 3, value: "FLUORESCENT" };
+    IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY = { type: 3, value: "HIGHPRESSUREMERCURY" };
+    IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM = { type: 3, value: "HIGHPRESSURESODIUM" };
+    IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE = { type: 3, value: "LIGHTEMITTINGDIODE" };
+    IfcLightEmissionSourceEnum.LOWPRESSURESODIUM = { type: 3, value: "LOWPRESSURESODIUM" };
+    IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN = { type: 3, value: "LOWVOLTAGEHALOGEN" };
+    IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN = { type: 3, value: "MAINVOLTAGEHALOGEN" };
+    IfcLightEmissionSourceEnum.METALHALIDE = { type: 3, value: "METALHALIDE" };
+    IfcLightEmissionSourceEnum.TUNGSTENFILAMENT = { type: 3, value: "TUNGSTENFILAMENT" };
+    IfcLightEmissionSourceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcLightEmissionSourceEnum = IfcLightEmissionSourceEnum;
+    class IfcLightFixtureTypeEnum {
+    }
+    IfcLightFixtureTypeEnum.DIRECTIONSOURCE = { type: 3, value: "DIRECTIONSOURCE" };
+    IfcLightFixtureTypeEnum.POINTSOURCE = { type: 3, value: "POINTSOURCE" };
+    IfcLightFixtureTypeEnum.SECURITYLIGHTING = { type: 3, value: "SECURITYLIGHTING" };
+    IfcLightFixtureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLightFixtureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcLightFixtureTypeEnum = IfcLightFixtureTypeEnum;
+    class IfcLiquidTerminalTypeEnum {
+    }
+    IfcLiquidTerminalTypeEnum.HOSEREEL = { type: 3, value: "HOSEREEL" };
+    IfcLiquidTerminalTypeEnum.LOADINGARM = { type: 3, value: "LOADINGARM" };
+    IfcLiquidTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLiquidTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcLiquidTerminalTypeEnum = IfcLiquidTerminalTypeEnum;
+    class IfcLoadGroupTypeEnum {
+    }
+    IfcLoadGroupTypeEnum.LOAD_CASE = { type: 3, value: "LOAD_CASE" };
+    IfcLoadGroupTypeEnum.LOAD_COMBINATION = { type: 3, value: "LOAD_COMBINATION" };
+    IfcLoadGroupTypeEnum.LOAD_GROUP = { type: 3, value: "LOAD_GROUP" };
+    IfcLoadGroupTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcLoadGroupTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcLoadGroupTypeEnum = IfcLoadGroupTypeEnum;
+    class IfcLogicalOperatorEnum {
+    }
+    IfcLogicalOperatorEnum.LOGICALAND = { type: 3, value: "LOGICALAND" };
+    IfcLogicalOperatorEnum.LOGICALNOTAND = { type: 3, value: "LOGICALNOTAND" };
+    IfcLogicalOperatorEnum.LOGICALNOTOR = { type: 3, value: "LOGICALNOTOR" };
+    IfcLogicalOperatorEnum.LOGICALOR = { type: 3, value: "LOGICALOR" };
+    IfcLogicalOperatorEnum.LOGICALXOR = { type: 3, value: "LOGICALXOR" };
+    IFC4X32.IfcLogicalOperatorEnum = IfcLogicalOperatorEnum;
+    class IfcMarineFacilityTypeEnum {
+    }
+    IfcMarineFacilityTypeEnum.BARRIERBEACH = { type: 3, value: "BARRIERBEACH" };
+    IfcMarineFacilityTypeEnum.BREAKWATER = { type: 3, value: "BREAKWATER" };
+    IfcMarineFacilityTypeEnum.CANAL = { type: 3, value: "CANAL" };
+    IfcMarineFacilityTypeEnum.DRYDOCK = { type: 3, value: "DRYDOCK" };
+    IfcMarineFacilityTypeEnum.FLOATINGDOCK = { type: 3, value: "FLOATINGDOCK" };
+    IfcMarineFacilityTypeEnum.HYDROLIFT = { type: 3, value: "HYDROLIFT" };
+    IfcMarineFacilityTypeEnum.JETTY = { type: 3, value: "JETTY" };
+    IfcMarineFacilityTypeEnum.LAUNCHRECOVERY = { type: 3, value: "LAUNCHRECOVERY" };
+    IfcMarineFacilityTypeEnum.MARINEDEFENCE = { type: 3, value: "MARINEDEFENCE" };
+    IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL = { type: 3, value: "NAVIGATIONALCHANNEL" };
+    IfcMarineFacilityTypeEnum.PORT = { type: 3, value: "PORT" };
+    IfcMarineFacilityTypeEnum.QUAY = { type: 3, value: "QUAY" };
+    IfcMarineFacilityTypeEnum.REVETMENT = { type: 3, value: "REVETMENT" };
+    IfcMarineFacilityTypeEnum.SHIPLIFT = { type: 3, value: "SHIPLIFT" };
+    IfcMarineFacilityTypeEnum.SHIPLOCK = { type: 3, value: "SHIPLOCK" };
+    IfcMarineFacilityTypeEnum.SHIPYARD = { type: 3, value: "SHIPYARD" };
+    IfcMarineFacilityTypeEnum.SLIPWAY = { type: 3, value: "SLIPWAY" };
+    IfcMarineFacilityTypeEnum.WATERWAY = { type: 3, value: "WATERWAY" };
+    IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT = { type: 3, value: "WATERWAYSHIPLIFT" };
+    IfcMarineFacilityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMarineFacilityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcMarineFacilityTypeEnum = IfcMarineFacilityTypeEnum;
+    class IfcMarinePartTypeEnum {
+    }
+    IfcMarinePartTypeEnum.ABOVEWATERLINE = { type: 3, value: "ABOVEWATERLINE" };
+    IfcMarinePartTypeEnum.ANCHORAGE = { type: 3, value: "ANCHORAGE" };
+    IfcMarinePartTypeEnum.APPROACHCHANNEL = { type: 3, value: "APPROACHCHANNEL" };
+    IfcMarinePartTypeEnum.BELOWWATERLINE = { type: 3, value: "BELOWWATERLINE" };
+    IfcMarinePartTypeEnum.BERTHINGSTRUCTURE = { type: 3, value: "BERTHINGSTRUCTURE" };
+    IfcMarinePartTypeEnum.CHAMBER = { type: 3, value: "CHAMBER" };
+    IfcMarinePartTypeEnum.CILL_LEVEL = { type: 3, value: "CILL_LEVEL" };
+    IfcMarinePartTypeEnum.COPELEVEL = { type: 3, value: "COPELEVEL" };
+    IfcMarinePartTypeEnum.CORE = { type: 3, value: "CORE" };
+    IfcMarinePartTypeEnum.CREST = { type: 3, value: "CREST" };
+    IfcMarinePartTypeEnum.GATEHEAD = { type: 3, value: "GATEHEAD" };
+    IfcMarinePartTypeEnum.GUDINGSTRUCTURE = { type: 3, value: "GUDINGSTRUCTURE" };
+    IfcMarinePartTypeEnum.HIGHWATERLINE = { type: 3, value: "HIGHWATERLINE" };
+    IfcMarinePartTypeEnum.LANDFIELD = { type: 3, value: "LANDFIELD" };
+    IfcMarinePartTypeEnum.LEEWARDSIDE = { type: 3, value: "LEEWARDSIDE" };
+    IfcMarinePartTypeEnum.LOWWATERLINE = { type: 3, value: "LOWWATERLINE" };
+    IfcMarinePartTypeEnum.MANUFACTURING = { type: 3, value: "MANUFACTURING" };
+    IfcMarinePartTypeEnum.NAVIGATIONALAREA = { type: 3, value: "NAVIGATIONALAREA" };
+    IfcMarinePartTypeEnum.PROTECTION = { type: 3, value: "PROTECTION" };
+    IfcMarinePartTypeEnum.SHIPTRANSFER = { type: 3, value: "SHIPTRANSFER" };
+    IfcMarinePartTypeEnum.STORAGEAREA = { type: 3, value: "STORAGEAREA" };
+    IfcMarinePartTypeEnum.VEHICLESERVICING = { type: 3, value: "VEHICLESERVICING" };
+    IfcMarinePartTypeEnum.WATERFIELD = { type: 3, value: "WATERFIELD" };
+    IfcMarinePartTypeEnum.WEATHERSIDE = { type: 3, value: "WEATHERSIDE" };
+    IfcMarinePartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMarinePartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcMarinePartTypeEnum = IfcMarinePartTypeEnum;
+    class IfcMechanicalFastenerTypeEnum {
+    }
+    IfcMechanicalFastenerTypeEnum.ANCHORBOLT = { type: 3, value: "ANCHORBOLT" };
+    IfcMechanicalFastenerTypeEnum.BOLT = { type: 3, value: "BOLT" };
+    IfcMechanicalFastenerTypeEnum.CHAIN = { type: 3, value: "CHAIN" };
+    IfcMechanicalFastenerTypeEnum.COUPLER = { type: 3, value: "COUPLER" };
+    IfcMechanicalFastenerTypeEnum.DOWEL = { type: 3, value: "DOWEL" };
+    IfcMechanicalFastenerTypeEnum.NAIL = { type: 3, value: "NAIL" };
+    IfcMechanicalFastenerTypeEnum.NAILPLATE = { type: 3, value: "NAILPLATE" };
+    IfcMechanicalFastenerTypeEnum.RAILFASTENING = { type: 3, value: "RAILFASTENING" };
+    IfcMechanicalFastenerTypeEnum.RAILJOINT = { type: 3, value: "RAILJOINT" };
+    IfcMechanicalFastenerTypeEnum.RIVET = { type: 3, value: "RIVET" };
+    IfcMechanicalFastenerTypeEnum.ROPE = { type: 3, value: "ROPE" };
+    IfcMechanicalFastenerTypeEnum.SCREW = { type: 3, value: "SCREW" };
+    IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR = { type: 3, value: "SHEARCONNECTOR" };
+    IfcMechanicalFastenerTypeEnum.STAPLE = { type: 3, value: "STAPLE" };
+    IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR = { type: 3, value: "STUDSHEARCONNECTOR" };
+    IfcMechanicalFastenerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMechanicalFastenerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcMechanicalFastenerTypeEnum = IfcMechanicalFastenerTypeEnum;
+    class IfcMedicalDeviceTypeEnum {
+    }
+    IfcMedicalDeviceTypeEnum.AIRSTATION = { type: 3, value: "AIRSTATION" };
+    IfcMedicalDeviceTypeEnum.FEEDAIRUNIT = { type: 3, value: "FEEDAIRUNIT" };
+    IfcMedicalDeviceTypeEnum.OXYGENGENERATOR = { type: 3, value: "OXYGENGENERATOR" };
+    IfcMedicalDeviceTypeEnum.OXYGENPLANT = { type: 3, value: "OXYGENPLANT" };
+    IfcMedicalDeviceTypeEnum.VACUUMSTATION = { type: 3, value: "VACUUMSTATION" };
+    IfcMedicalDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMedicalDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcMedicalDeviceTypeEnum = IfcMedicalDeviceTypeEnum;
+    class IfcMemberTypeEnum {
+    }
+    IfcMemberTypeEnum.ARCH_SEGMENT = { type: 3, value: "ARCH_SEGMENT" };
+    IfcMemberTypeEnum.BRACE = { type: 3, value: "BRACE" };
+    IfcMemberTypeEnum.CHORD = { type: 3, value: "CHORD" };
+    IfcMemberTypeEnum.COLLAR = { type: 3, value: "COLLAR" };
+    IfcMemberTypeEnum.MEMBER = { type: 3, value: "MEMBER" };
+    IfcMemberTypeEnum.MULLION = { type: 3, value: "MULLION" };
+    IfcMemberTypeEnum.PLATE = { type: 3, value: "PLATE" };
+    IfcMemberTypeEnum.POST = { type: 3, value: "POST" };
+    IfcMemberTypeEnum.PURLIN = { type: 3, value: "PURLIN" };
+    IfcMemberTypeEnum.RAFTER = { type: 3, value: "RAFTER" };
+    IfcMemberTypeEnum.STAY_CABLE = { type: 3, value: "STAY_CABLE" };
+    IfcMemberTypeEnum.STIFFENING_RIB = { type: 3, value: "STIFFENING_RIB" };
+    IfcMemberTypeEnum.STRINGER = { type: 3, value: "STRINGER" };
+    IfcMemberTypeEnum.STRUCTURALCABLE = { type: 3, value: "STRUCTURALCABLE" };
+    IfcMemberTypeEnum.STRUT = { type: 3, value: "STRUT" };
+    IfcMemberTypeEnum.STUD = { type: 3, value: "STUD" };
+    IfcMemberTypeEnum.SUSPENDER = { type: 3, value: "SUSPENDER" };
+    IfcMemberTypeEnum.SUSPENSION_CABLE = { type: 3, value: "SUSPENSION_CABLE" };
+    IfcMemberTypeEnum.TIEBAR = { type: 3, value: "TIEBAR" };
+    IfcMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcMemberTypeEnum = IfcMemberTypeEnum;
+    class IfcMobileTelecommunicationsApplianceTypeEnum {
+    }
+    IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT = { type: 3, value: "ACCESSPOINT" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT = { type: 3, value: "BASEBANDUNIT" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION = { type: 3, value: "BASETRANSCEIVERSTATION" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B = { type: 3, value: "E_UTRAN_NODE_B" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE = { type: 3, value: "GATEWAY_GPRS_SUPPORT_NODE" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT = { type: 3, value: "MASTERUNIT" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER = { type: 3, value: "MOBILESWITCHINGCENTER" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER = { type: 3, value: "MSCSERVER" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT = { type: 3, value: "PACKETCONTROLUNIT" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT = { type: 3, value: "REMOTERADIOUNIT" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT = { type: 3, value: "REMOTEUNIT" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE = { type: 3, value: "SERVICE_GPRS_SUPPORT_NODE" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER = { type: 3, value: "SUBSCRIBERSERVER" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcMobileTelecommunicationsApplianceTypeEnum = IfcMobileTelecommunicationsApplianceTypeEnum;
+    class IfcMooringDeviceTypeEnum {
+    }
+    IfcMooringDeviceTypeEnum.BOLLARD = { type: 3, value: "BOLLARD" };
+    IfcMooringDeviceTypeEnum.LINETENSIONER = { type: 3, value: "LINETENSIONER" };
+    IfcMooringDeviceTypeEnum.MAGNETICDEVICE = { type: 3, value: "MAGNETICDEVICE" };
+    IfcMooringDeviceTypeEnum.MOORINGHOOKS = { type: 3, value: "MOORINGHOOKS" };
+    IfcMooringDeviceTypeEnum.VACUUMDEVICE = { type: 3, value: "VACUUMDEVICE" };
+    IfcMooringDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMooringDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcMooringDeviceTypeEnum = IfcMooringDeviceTypeEnum;
+    class IfcMotorConnectionTypeEnum {
+    }
+    IfcMotorConnectionTypeEnum.BELTDRIVE = { type: 3, value: "BELTDRIVE" };
+    IfcMotorConnectionTypeEnum.COUPLING = { type: 3, value: "COUPLING" };
+    IfcMotorConnectionTypeEnum.DIRECTDRIVE = { type: 3, value: "DIRECTDRIVE" };
+    IfcMotorConnectionTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcMotorConnectionTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcMotorConnectionTypeEnum = IfcMotorConnectionTypeEnum;
+    class IfcNavigationElementTypeEnum {
+    }
+    IfcNavigationElementTypeEnum.BEACON = { type: 3, value: "BEACON" };
+    IfcNavigationElementTypeEnum.BUOY = { type: 3, value: "BUOY" };
+    IfcNavigationElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcNavigationElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcNavigationElementTypeEnum = IfcNavigationElementTypeEnum;
+    class IfcObjectTypeEnum {
+    }
+    IfcObjectTypeEnum.ACTOR = { type: 3, value: "ACTOR" };
+    IfcObjectTypeEnum.CONTROL = { type: 3, value: "CONTROL" };
+    IfcObjectTypeEnum.GROUP = { type: 3, value: "GROUP" };
+    IfcObjectTypeEnum.PROCESS = { type: 3, value: "PROCESS" };
+    IfcObjectTypeEnum.PRODUCT = { type: 3, value: "PRODUCT" };
+    IfcObjectTypeEnum.PROJECT = { type: 3, value: "PROJECT" };
+    IfcObjectTypeEnum.RESOURCE = { type: 3, value: "RESOURCE" };
+    IfcObjectTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcObjectTypeEnum = IfcObjectTypeEnum;
+    class IfcObjectiveEnum {
+    }
+    IfcObjectiveEnum.CODECOMPLIANCE = { type: 3, value: "CODECOMPLIANCE" };
+    IfcObjectiveEnum.CODEWAIVER = { type: 3, value: "CODEWAIVER" };
+    IfcObjectiveEnum.DESIGNINTENT = { type: 3, value: "DESIGNINTENT" };
+    IfcObjectiveEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcObjectiveEnum.HEALTHANDSAFETY = { type: 3, value: "HEALTHANDSAFETY" };
+    IfcObjectiveEnum.MERGECONFLICT = { type: 3, value: "MERGECONFLICT" };
+    IfcObjectiveEnum.MODELVIEW = { type: 3, value: "MODELVIEW" };
+    IfcObjectiveEnum.PARAMETER = { type: 3, value: "PARAMETER" };
+    IfcObjectiveEnum.REQUIREMENT = { type: 3, value: "REQUIREMENT" };
+    IfcObjectiveEnum.SPECIFICATION = { type: 3, value: "SPECIFICATION" };
+    IfcObjectiveEnum.TRIGGERCONDITION = { type: 3, value: "TRIGGERCONDITION" };
+    IfcObjectiveEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcObjectiveEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcObjectiveEnum = IfcObjectiveEnum;
+    class IfcOccupantTypeEnum {
+    }
+    IfcOccupantTypeEnum.ASSIGNEE = { type: 3, value: "ASSIGNEE" };
+    IfcOccupantTypeEnum.ASSIGNOR = { type: 3, value: "ASSIGNOR" };
+    IfcOccupantTypeEnum.LESSEE = { type: 3, value: "LESSEE" };
+    IfcOccupantTypeEnum.LESSOR = { type: 3, value: "LESSOR" };
+    IfcOccupantTypeEnum.LETTINGAGENT = { type: 3, value: "LETTINGAGENT" };
+    IfcOccupantTypeEnum.OWNER = { type: 3, value: "OWNER" };
+    IfcOccupantTypeEnum.TENANT = { type: 3, value: "TENANT" };
+    IfcOccupantTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcOccupantTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcOccupantTypeEnum = IfcOccupantTypeEnum;
+    class IfcOpeningElementTypeEnum {
+    }
+    IfcOpeningElementTypeEnum.OPENING = { type: 3, value: "OPENING" };
+    IfcOpeningElementTypeEnum.RECESS = { type: 3, value: "RECESS" };
+    IfcOpeningElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcOpeningElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcOpeningElementTypeEnum = IfcOpeningElementTypeEnum;
+    class IfcOutletTypeEnum {
+    }
+    IfcOutletTypeEnum.AUDIOVISUALOUTLET = { type: 3, value: "AUDIOVISUALOUTLET" };
+    IfcOutletTypeEnum.COMMUNICATIONSOUTLET = { type: 3, value: "COMMUNICATIONSOUTLET" };
+    IfcOutletTypeEnum.DATAOUTLET = { type: 3, value: "DATAOUTLET" };
+    IfcOutletTypeEnum.POWEROUTLET = { type: 3, value: "POWEROUTLET" };
+    IfcOutletTypeEnum.TELEPHONEOUTLET = { type: 3, value: "TELEPHONEOUTLET" };
+    IfcOutletTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcOutletTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcOutletTypeEnum = IfcOutletTypeEnum;
+    class IfcPavementTypeEnum {
+    }
+    IfcPavementTypeEnum.FLEXIBLE = { type: 3, value: "FLEXIBLE" };
+    IfcPavementTypeEnum.RIGID = { type: 3, value: "RIGID" };
+    IfcPavementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPavementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPavementTypeEnum = IfcPavementTypeEnum;
+    class IfcPerformanceHistoryTypeEnum {
+    }
+    IfcPerformanceHistoryTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPerformanceHistoryTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPerformanceHistoryTypeEnum = IfcPerformanceHistoryTypeEnum;
+    class IfcPermeableCoveringOperationEnum {
+    }
+    IfcPermeableCoveringOperationEnum.GRILL = { type: 3, value: "GRILL" };
+    IfcPermeableCoveringOperationEnum.LOUVER = { type: 3, value: "LOUVER" };
+    IfcPermeableCoveringOperationEnum.SCREEN = { type: 3, value: "SCREEN" };
+    IfcPermeableCoveringOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPermeableCoveringOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPermeableCoveringOperationEnum = IfcPermeableCoveringOperationEnum;
+    class IfcPermitTypeEnum {
+    }
+    IfcPermitTypeEnum.ACCESS = { type: 3, value: "ACCESS" };
+    IfcPermitTypeEnum.BUILDING = { type: 3, value: "BUILDING" };
+    IfcPermitTypeEnum.WORK = { type: 3, value: "WORK" };
+    IfcPermitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPermitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPermitTypeEnum = IfcPermitTypeEnum;
+    class IfcPhysicalOrVirtualEnum {
+    }
+    IfcPhysicalOrVirtualEnum.PHYSICAL = { type: 3, value: "PHYSICAL" };
+    IfcPhysicalOrVirtualEnum.VIRTUAL = { type: 3, value: "VIRTUAL" };
+    IfcPhysicalOrVirtualEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPhysicalOrVirtualEnum = IfcPhysicalOrVirtualEnum;
+    class IfcPileConstructionEnum {
+    }
+    IfcPileConstructionEnum.CAST_IN_PLACE = { type: 3, value: "CAST_IN_PLACE" };
+    IfcPileConstructionEnum.COMPOSITE = { type: 3, value: "COMPOSITE" };
+    IfcPileConstructionEnum.PRECAST_CONCRETE = { type: 3, value: "PRECAST_CONCRETE" };
+    IfcPileConstructionEnum.PREFAB_STEEL = { type: 3, value: "PREFAB_STEEL" };
+    IfcPileConstructionEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPileConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPileConstructionEnum = IfcPileConstructionEnum;
+    class IfcPileTypeEnum {
+    }
+    IfcPileTypeEnum.BORED = { type: 3, value: "BORED" };
+    IfcPileTypeEnum.COHESION = { type: 3, value: "COHESION" };
+    IfcPileTypeEnum.DRIVEN = { type: 3, value: "DRIVEN" };
+    IfcPileTypeEnum.FRICTION = { type: 3, value: "FRICTION" };
+    IfcPileTypeEnum.JETGROUTING = { type: 3, value: "JETGROUTING" };
+    IfcPileTypeEnum.SUPPORT = { type: 3, value: "SUPPORT" };
+    IfcPileTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPileTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPileTypeEnum = IfcPileTypeEnum;
+    class IfcPipeFittingTypeEnum {
+    }
+    IfcPipeFittingTypeEnum.BEND = { type: 3, value: "BEND" };
+    IfcPipeFittingTypeEnum.CONNECTOR = { type: 3, value: "CONNECTOR" };
+    IfcPipeFittingTypeEnum.ENTRY = { type: 3, value: "ENTRY" };
+    IfcPipeFittingTypeEnum.EXIT = { type: 3, value: "EXIT" };
+    IfcPipeFittingTypeEnum.JUNCTION = { type: 3, value: "JUNCTION" };
+    IfcPipeFittingTypeEnum.OBSTRUCTION = { type: 3, value: "OBSTRUCTION" };
+    IfcPipeFittingTypeEnum.TRANSITION = { type: 3, value: "TRANSITION" };
+    IfcPipeFittingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPipeFittingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPipeFittingTypeEnum = IfcPipeFittingTypeEnum;
+    class IfcPipeSegmentTypeEnum {
+    }
+    IfcPipeSegmentTypeEnum.CULVERT = { type: 3, value: "CULVERT" };
+    IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT = { type: 3, value: "FLEXIBLESEGMENT" };
+    IfcPipeSegmentTypeEnum.GUTTER = { type: 3, value: "GUTTER" };
+    IfcPipeSegmentTypeEnum.RIGIDSEGMENT = { type: 3, value: "RIGIDSEGMENT" };
+    IfcPipeSegmentTypeEnum.SPOOL = { type: 3, value: "SPOOL" };
+    IfcPipeSegmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPipeSegmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPipeSegmentTypeEnum = IfcPipeSegmentTypeEnum;
+    class IfcPlateTypeEnum {
+    }
+    IfcPlateTypeEnum.BASE_PLATE = { type: 3, value: "BASE_PLATE" };
+    IfcPlateTypeEnum.COVER_PLATE = { type: 3, value: "COVER_PLATE" };
+    IfcPlateTypeEnum.CURTAIN_PANEL = { type: 3, value: "CURTAIN_PANEL" };
+    IfcPlateTypeEnum.FLANGE_PLATE = { type: 3, value: "FLANGE_PLATE" };
+    IfcPlateTypeEnum.GUSSET_PLATE = { type: 3, value: "GUSSET_PLATE" };
+    IfcPlateTypeEnum.SHEET = { type: 3, value: "SHEET" };
+    IfcPlateTypeEnum.SPLICE_PLATE = { type: 3, value: "SPLICE_PLATE" };
+    IfcPlateTypeEnum.STIFFENER_PLATE = { type: 3, value: "STIFFENER_PLATE" };
+    IfcPlateTypeEnum.WEB_PLATE = { type: 3, value: "WEB_PLATE" };
+    IfcPlateTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPlateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPlateTypeEnum = IfcPlateTypeEnum;
+    class IfcPreferredSurfaceCurveRepresentation {
+    }
+    IfcPreferredSurfaceCurveRepresentation.CURVE3D = { type: 3, value: "CURVE3D" };
+    IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 = { type: 3, value: "PCURVE_S1" };
+    IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 = { type: 3, value: "PCURVE_S2" };
+    IFC4X32.IfcPreferredSurfaceCurveRepresentation = IfcPreferredSurfaceCurveRepresentation;
+    class IfcProcedureTypeEnum {
+    }
+    IfcProcedureTypeEnum.ADVICE_CAUTION = { type: 3, value: "ADVICE_CAUTION" };
+    IfcProcedureTypeEnum.ADVICE_NOTE = { type: 3, value: "ADVICE_NOTE" };
+    IfcProcedureTypeEnum.ADVICE_WARNING = { type: 3, value: "ADVICE_WARNING" };
+    IfcProcedureTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" };
+    IfcProcedureTypeEnum.DIAGNOSTIC = { type: 3, value: "DIAGNOSTIC" };
+    IfcProcedureTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" };
+    IfcProcedureTypeEnum.STARTUP = { type: 3, value: "STARTUP" };
+    IfcProcedureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProcedureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcProcedureTypeEnum = IfcProcedureTypeEnum;
+    class IfcProfileTypeEnum {
+    }
+    IfcProfileTypeEnum.AREA = { type: 3, value: "AREA" };
+    IfcProfileTypeEnum.CURVE = { type: 3, value: "CURVE" };
+    IFC4X32.IfcProfileTypeEnum = IfcProfileTypeEnum;
+    class IfcProjectOrderTypeEnum {
+    }
+    IfcProjectOrderTypeEnum.CHANGEORDER = { type: 3, value: "CHANGEORDER" };
+    IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER = { type: 3, value: "MAINTENANCEWORKORDER" };
+    IfcProjectOrderTypeEnum.MOVEORDER = { type: 3, value: "MOVEORDER" };
+    IfcProjectOrderTypeEnum.PURCHASEORDER = { type: 3, value: "PURCHASEORDER" };
+    IfcProjectOrderTypeEnum.WORKORDER = { type: 3, value: "WORKORDER" };
+    IfcProjectOrderTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProjectOrderTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcProjectOrderTypeEnum = IfcProjectOrderTypeEnum;
+    class IfcProjectedOrTrueLengthEnum {
+    }
+    IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH = { type: 3, value: "PROJECTED_LENGTH" };
+    IfcProjectedOrTrueLengthEnum.TRUE_LENGTH = { type: 3, value: "TRUE_LENGTH" };
+    IFC4X32.IfcProjectedOrTrueLengthEnum = IfcProjectedOrTrueLengthEnum;
+    class IfcProjectionElementTypeEnum {
+    }
+    IfcProjectionElementTypeEnum.BLISTER = { type: 3, value: "BLISTER" };
+    IfcProjectionElementTypeEnum.DEVIATOR = { type: 3, value: "DEVIATOR" };
+    IfcProjectionElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProjectionElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcProjectionElementTypeEnum = IfcProjectionElementTypeEnum;
+    class IfcPropertySetTemplateTypeEnum {
+    }
+    IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN = { type: 3, value: "PSET_MATERIALDRIVEN" };
+    IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN = { type: 3, value: "PSET_OCCURRENCEDRIVEN" };
+    IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN = { type: 3, value: "PSET_PERFORMANCEDRIVEN" };
+    IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN = { type: 3, value: "PSET_PROFILEDRIVEN" };
+    IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY = { type: 3, value: "PSET_TYPEDRIVENONLY" };
+    IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE = { type: 3, value: "PSET_TYPEDRIVENOVERRIDE" };
+    IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN = { type: 3, value: "QTO_OCCURRENCEDRIVEN" };
+    IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY = { type: 3, value: "QTO_TYPEDRIVENONLY" };
+    IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE = { type: 3, value: "QTO_TYPEDRIVENOVERRIDE" };
+    IfcPropertySetTemplateTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPropertySetTemplateTypeEnum = IfcPropertySetTemplateTypeEnum;
+    class IfcProtectiveDeviceTrippingUnitTypeEnum {
+    }
+    IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC = { type: 3, value: "ELECTROMAGNETIC" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC = { type: 3, value: "ELECTRONIC" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT = { type: 3, value: "RESIDUALCURRENT" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL = { type: 3, value: "THERMAL" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcProtectiveDeviceTrippingUnitTypeEnum = IfcProtectiveDeviceTrippingUnitTypeEnum;
+    class IfcProtectiveDeviceTypeEnum {
+    }
+    IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE = { type: 3, value: "ANTI_ARCING_DEVICE" };
+    IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER = { type: 3, value: "CIRCUITBREAKER" };
+    IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH = { type: 3, value: "EARTHINGSWITCH" };
+    IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER = { type: 3, value: "EARTHLEAKAGECIRCUITBREAKER" };
+    IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR = { type: 3, value: "FUSEDISCONNECTOR" };
+    IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER = { type: 3, value: "RESIDUALCURRENTCIRCUITBREAKER" };
+    IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH = { type: 3, value: "RESIDUALCURRENTSWITCH" };
+    IfcProtectiveDeviceTypeEnum.SPARKGAP = { type: 3, value: "SPARKGAP" };
+    IfcProtectiveDeviceTypeEnum.VARISTOR = { type: 3, value: "VARISTOR" };
+    IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER = { type: 3, value: "VOLTAGELIMITER" };
+    IfcProtectiveDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcProtectiveDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcProtectiveDeviceTypeEnum = IfcProtectiveDeviceTypeEnum;
+    class IfcPumpTypeEnum {
+    }
+    IfcPumpTypeEnum.CIRCULATOR = { type: 3, value: "CIRCULATOR" };
+    IfcPumpTypeEnum.ENDSUCTION = { type: 3, value: "ENDSUCTION" };
+    IfcPumpTypeEnum.SPLITCASE = { type: 3, value: "SPLITCASE" };
+    IfcPumpTypeEnum.SUBMERSIBLEPUMP = { type: 3, value: "SUBMERSIBLEPUMP" };
+    IfcPumpTypeEnum.SUMPPUMP = { type: 3, value: "SUMPPUMP" };
+    IfcPumpTypeEnum.VERTICALINLINE = { type: 3, value: "VERTICALINLINE" };
+    IfcPumpTypeEnum.VERTICALTURBINE = { type: 3, value: "VERTICALTURBINE" };
+    IfcPumpTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcPumpTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcPumpTypeEnum = IfcPumpTypeEnum;
+    class IfcRailTypeEnum {
+    }
+    IfcRailTypeEnum.BLADE = { type: 3, value: "BLADE" };
+    IfcRailTypeEnum.CHECKRAIL = { type: 3, value: "CHECKRAIL" };
+    IfcRailTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" };
+    IfcRailTypeEnum.RACKRAIL = { type: 3, value: "RACKRAIL" };
+    IfcRailTypeEnum.RAIL = { type: 3, value: "RAIL" };
+    IfcRailTypeEnum.STOCKRAIL = { type: 3, value: "STOCKRAIL" };
+    IfcRailTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRailTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRailTypeEnum = IfcRailTypeEnum;
+    class IfcRailingTypeEnum {
+    }
+    IfcRailingTypeEnum.BALUSTRADE = { type: 3, value: "BALUSTRADE" };
+    IfcRailingTypeEnum.FENCE = { type: 3, value: "FENCE" };
+    IfcRailingTypeEnum.GUARDRAIL = { type: 3, value: "GUARDRAIL" };
+    IfcRailingTypeEnum.HANDRAIL = { type: 3, value: "HANDRAIL" };
+    IfcRailingTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRailingTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRailingTypeEnum = IfcRailingTypeEnum;
+    class IfcRailwayPartTypeEnum {
+    }
+    IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE = { type: 3, value: "DILATATIONSUPERSTRUCTURE" };
+    IfcRailwayPartTypeEnum.LINESIDESTRUCTURE = { type: 3, value: "LINESIDESTRUCTURE" };
+    IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART = { type: 3, value: "LINESIDESTRUCTUREPART" };
+    IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE = { type: 3, value: "PLAINTRACKSUPERSTRUCTURE" };
+    IfcRailwayPartTypeEnum.SUPERSTRUCTURE = { type: 3, value: "SUPERSTRUCTURE" };
+    IfcRailwayPartTypeEnum.TRACKSTRUCTURE = { type: 3, value: "TRACKSTRUCTURE" };
+    IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART = { type: 3, value: "TRACKSTRUCTUREPART" };
+    IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE = { type: 3, value: "TURNOUTSUPERSTRUCTURE" };
+    IfcRailwayPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRailwayPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRailwayPartTypeEnum = IfcRailwayPartTypeEnum;
+    class IfcRailwayTypeEnum {
+    }
+    IfcRailwayTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRailwayTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRailwayTypeEnum = IfcRailwayTypeEnum;
+    class IfcRampFlightTypeEnum {
+    }
+    IfcRampFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" };
+    IfcRampFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" };
+    IfcRampFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRampFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRampFlightTypeEnum = IfcRampFlightTypeEnum;
+    class IfcRampTypeEnum {
+    }
+    IfcRampTypeEnum.HALF_TURN_RAMP = { type: 3, value: "HALF_TURN_RAMP" };
+    IfcRampTypeEnum.QUARTER_TURN_RAMP = { type: 3, value: "QUARTER_TURN_RAMP" };
+    IfcRampTypeEnum.SPIRAL_RAMP = { type: 3, value: "SPIRAL_RAMP" };
+    IfcRampTypeEnum.STRAIGHT_RUN_RAMP = { type: 3, value: "STRAIGHT_RUN_RAMP" };
+    IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP = { type: 3, value: "TWO_QUARTER_TURN_RAMP" };
+    IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP = { type: 3, value: "TWO_STRAIGHT_RUN_RAMP" };
+    IfcRampTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRampTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRampTypeEnum = IfcRampTypeEnum;
+    class IfcRecurrenceTypeEnum {
+    }
+    IfcRecurrenceTypeEnum.BY_DAY_COUNT = { type: 3, value: "BY_DAY_COUNT" };
+    IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT = { type: 3, value: "BY_WEEKDAY_COUNT" };
+    IfcRecurrenceTypeEnum.DAILY = { type: 3, value: "DAILY" };
+    IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH = { type: 3, value: "MONTHLY_BY_DAY_OF_MONTH" };
+    IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION = { type: 3, value: "MONTHLY_BY_POSITION" };
+    IfcRecurrenceTypeEnum.WEEKLY = { type: 3, value: "WEEKLY" };
+    IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH = { type: 3, value: "YEARLY_BY_DAY_OF_MONTH" };
+    IfcRecurrenceTypeEnum.YEARLY_BY_POSITION = { type: 3, value: "YEARLY_BY_POSITION" };
+    IFC4X32.IfcRecurrenceTypeEnum = IfcRecurrenceTypeEnum;
+    class IfcReferentTypeEnum {
+    }
+    IfcReferentTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" };
+    IfcReferentTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" };
+    IfcReferentTypeEnum.KILOPOINT = { type: 3, value: "KILOPOINT" };
+    IfcReferentTypeEnum.LANDMARK = { type: 3, value: "LANDMARK" };
+    IfcReferentTypeEnum.MILEPOINT = { type: 3, value: "MILEPOINT" };
+    IfcReferentTypeEnum.POSITION = { type: 3, value: "POSITION" };
+    IfcReferentTypeEnum.REFERENCEMARKER = { type: 3, value: "REFERENCEMARKER" };
+    IfcReferentTypeEnum.STATION = { type: 3, value: "STATION" };
+    IfcReferentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReferentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcReferentTypeEnum = IfcReferentTypeEnum;
+    class IfcReflectanceMethodEnum {
+    }
+    IfcReflectanceMethodEnum.BLINN = { type: 3, value: "BLINN" };
+    IfcReflectanceMethodEnum.FLAT = { type: 3, value: "FLAT" };
+    IfcReflectanceMethodEnum.GLASS = { type: 3, value: "GLASS" };
+    IfcReflectanceMethodEnum.MATT = { type: 3, value: "MATT" };
+    IfcReflectanceMethodEnum.METAL = { type: 3, value: "METAL" };
+    IfcReflectanceMethodEnum.MIRROR = { type: 3, value: "MIRROR" };
+    IfcReflectanceMethodEnum.PHONG = { type: 3, value: "PHONG" };
+    IfcReflectanceMethodEnum.PHYSICAL = { type: 3, value: "PHYSICAL" };
+    IfcReflectanceMethodEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcReflectanceMethodEnum.STRAUSS = { type: 3, value: "STRAUSS" };
+    IfcReflectanceMethodEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcReflectanceMethodEnum = IfcReflectanceMethodEnum;
+    class IfcReinforcedSoilTypeEnum {
+    }
+    IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED = { type: 3, value: "DYNAMICALLYCOMPACTED" };
+    IfcReinforcedSoilTypeEnum.GROUTED = { type: 3, value: "GROUTED" };
+    IfcReinforcedSoilTypeEnum.REPLACED = { type: 3, value: "REPLACED" };
+    IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED = { type: 3, value: "ROLLERCOMPACTED" };
+    IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED = { type: 3, value: "SURCHARGEPRELOADED" };
+    IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED = { type: 3, value: "VERTICALLYDRAINED" };
+    IfcReinforcedSoilTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReinforcedSoilTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcReinforcedSoilTypeEnum = IfcReinforcedSoilTypeEnum;
+    class IfcReinforcingBarRoleEnum {
+    }
+    IfcReinforcingBarRoleEnum.ANCHORING = { type: 3, value: "ANCHORING" };
+    IfcReinforcingBarRoleEnum.EDGE = { type: 3, value: "EDGE" };
+    IfcReinforcingBarRoleEnum.LIGATURE = { type: 3, value: "LIGATURE" };
+    IfcReinforcingBarRoleEnum.MAIN = { type: 3, value: "MAIN" };
+    IfcReinforcingBarRoleEnum.PUNCHING = { type: 3, value: "PUNCHING" };
+    IfcReinforcingBarRoleEnum.RING = { type: 3, value: "RING" };
+    IfcReinforcingBarRoleEnum.SHEAR = { type: 3, value: "SHEAR" };
+    IfcReinforcingBarRoleEnum.STUD = { type: 3, value: "STUD" };
+    IfcReinforcingBarRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReinforcingBarRoleEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcReinforcingBarRoleEnum = IfcReinforcingBarRoleEnum;
+    class IfcReinforcingBarSurfaceEnum {
+    }
+    IfcReinforcingBarSurfaceEnum.PLAIN = { type: 3, value: "PLAIN" };
+    IfcReinforcingBarSurfaceEnum.TEXTURED = { type: 3, value: "TEXTURED" };
+    IFC4X32.IfcReinforcingBarSurfaceEnum = IfcReinforcingBarSurfaceEnum;
+    class IfcReinforcingBarTypeEnum {
+    }
+    IfcReinforcingBarTypeEnum.ANCHORING = { type: 3, value: "ANCHORING" };
+    IfcReinforcingBarTypeEnum.EDGE = { type: 3, value: "EDGE" };
+    IfcReinforcingBarTypeEnum.LIGATURE = { type: 3, value: "LIGATURE" };
+    IfcReinforcingBarTypeEnum.MAIN = { type: 3, value: "MAIN" };
+    IfcReinforcingBarTypeEnum.PUNCHING = { type: 3, value: "PUNCHING" };
+    IfcReinforcingBarTypeEnum.RING = { type: 3, value: "RING" };
+    IfcReinforcingBarTypeEnum.SHEAR = { type: 3, value: "SHEAR" };
+    IfcReinforcingBarTypeEnum.SPACEBAR = { type: 3, value: "SPACEBAR" };
+    IfcReinforcingBarTypeEnum.STUD = { type: 3, value: "STUD" };
+    IfcReinforcingBarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReinforcingBarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcReinforcingBarTypeEnum = IfcReinforcingBarTypeEnum;
+    class IfcReinforcingMeshTypeEnum {
+    }
+    IfcReinforcingMeshTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcReinforcingMeshTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcReinforcingMeshTypeEnum = IfcReinforcingMeshTypeEnum;
+    class IfcRoadPartTypeEnum {
+    }
+    IfcRoadPartTypeEnum.BICYCLECROSSING = { type: 3, value: "BICYCLECROSSING" };
+    IfcRoadPartTypeEnum.BUS_STOP = { type: 3, value: "BUS_STOP" };
+    IfcRoadPartTypeEnum.CARRIAGEWAY = { type: 3, value: "CARRIAGEWAY" };
+    IfcRoadPartTypeEnum.CENTRALISLAND = { type: 3, value: "CENTRALISLAND" };
+    IfcRoadPartTypeEnum.CENTRALRESERVE = { type: 3, value: "CENTRALRESERVE" };
+    IfcRoadPartTypeEnum.HARDSHOULDER = { type: 3, value: "HARDSHOULDER" };
+    IfcRoadPartTypeEnum.INTERSECTION = { type: 3, value: "INTERSECTION" };
+    IfcRoadPartTypeEnum.LAYBY = { type: 3, value: "LAYBY" };
+    IfcRoadPartTypeEnum.PARKINGBAY = { type: 3, value: "PARKINGBAY" };
+    IfcRoadPartTypeEnum.PASSINGBAY = { type: 3, value: "PASSINGBAY" };
+    IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING = { type: 3, value: "PEDESTRIAN_CROSSING" };
+    IfcRoadPartTypeEnum.RAILWAYCROSSING = { type: 3, value: "RAILWAYCROSSING" };
+    IfcRoadPartTypeEnum.REFUGEISLAND = { type: 3, value: "REFUGEISLAND" };
+    IfcRoadPartTypeEnum.ROADSEGMENT = { type: 3, value: "ROADSEGMENT" };
+    IfcRoadPartTypeEnum.ROADSIDE = { type: 3, value: "ROADSIDE" };
+    IfcRoadPartTypeEnum.ROADSIDEPART = { type: 3, value: "ROADSIDEPART" };
+    IfcRoadPartTypeEnum.ROADWAYPLATEAU = { type: 3, value: "ROADWAYPLATEAU" };
+    IfcRoadPartTypeEnum.ROUNDABOUT = { type: 3, value: "ROUNDABOUT" };
+    IfcRoadPartTypeEnum.SHOULDER = { type: 3, value: "SHOULDER" };
+    IfcRoadPartTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" };
+    IfcRoadPartTypeEnum.SOFTSHOULDER = { type: 3, value: "SOFTSHOULDER" };
+    IfcRoadPartTypeEnum.TOLLPLAZA = { type: 3, value: "TOLLPLAZA" };
+    IfcRoadPartTypeEnum.TRAFFICISLAND = { type: 3, value: "TRAFFICISLAND" };
+    IfcRoadPartTypeEnum.TRAFFICLANE = { type: 3, value: "TRAFFICLANE" };
+    IfcRoadPartTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRoadPartTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRoadPartTypeEnum = IfcRoadPartTypeEnum;
+    class IfcRoadTypeEnum {
+    }
+    IfcRoadTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRoadTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRoadTypeEnum = IfcRoadTypeEnum;
+    class IfcRoleEnum {
+    }
+    IfcRoleEnum.ARCHITECT = { type: 3, value: "ARCHITECT" };
+    IfcRoleEnum.BUILDINGOPERATOR = { type: 3, value: "BUILDINGOPERATOR" };
+    IfcRoleEnum.BUILDINGOWNER = { type: 3, value: "BUILDINGOWNER" };
+    IfcRoleEnum.CIVILENGINEER = { type: 3, value: "CIVILENGINEER" };
+    IfcRoleEnum.CLIENT = { type: 3, value: "CLIENT" };
+    IfcRoleEnum.COMMISSIONINGENGINEER = { type: 3, value: "COMMISSIONINGENGINEER" };
+    IfcRoleEnum.CONSTRUCTIONMANAGER = { type: 3, value: "CONSTRUCTIONMANAGER" };
+    IfcRoleEnum.CONSULTANT = { type: 3, value: "CONSULTANT" };
+    IfcRoleEnum.CONTRACTOR = { type: 3, value: "CONTRACTOR" };
+    IfcRoleEnum.COSTENGINEER = { type: 3, value: "COSTENGINEER" };
+    IfcRoleEnum.ELECTRICALENGINEER = { type: 3, value: "ELECTRICALENGINEER" };
+    IfcRoleEnum.ENGINEER = { type: 3, value: "ENGINEER" };
+    IfcRoleEnum.FACILITIESMANAGER = { type: 3, value: "FACILITIESMANAGER" };
+    IfcRoleEnum.FIELDCONSTRUCTIONMANAGER = { type: 3, value: "FIELDCONSTRUCTIONMANAGER" };
+    IfcRoleEnum.MANUFACTURER = { type: 3, value: "MANUFACTURER" };
+    IfcRoleEnum.MECHANICALENGINEER = { type: 3, value: "MECHANICALENGINEER" };
+    IfcRoleEnum.OWNER = { type: 3, value: "OWNER" };
+    IfcRoleEnum.PROJECTMANAGER = { type: 3, value: "PROJECTMANAGER" };
+    IfcRoleEnum.RESELLER = { type: 3, value: "RESELLER" };
+    IfcRoleEnum.STRUCTURALENGINEER = { type: 3, value: "STRUCTURALENGINEER" };
+    IfcRoleEnum.SUBCONTRACTOR = { type: 3, value: "SUBCONTRACTOR" };
+    IfcRoleEnum.SUPPLIER = { type: 3, value: "SUPPLIER" };
+    IfcRoleEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC4X32.IfcRoleEnum = IfcRoleEnum;
+    class IfcRoofTypeEnum {
+    }
+    IfcRoofTypeEnum.BARREL_ROOF = { type: 3, value: "BARREL_ROOF" };
+    IfcRoofTypeEnum.BUTTERFLY_ROOF = { type: 3, value: "BUTTERFLY_ROOF" };
+    IfcRoofTypeEnum.DOME_ROOF = { type: 3, value: "DOME_ROOF" };
+    IfcRoofTypeEnum.FLAT_ROOF = { type: 3, value: "FLAT_ROOF" };
+    IfcRoofTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" };
+    IfcRoofTypeEnum.GABLE_ROOF = { type: 3, value: "GABLE_ROOF" };
+    IfcRoofTypeEnum.GAMBREL_ROOF = { type: 3, value: "GAMBREL_ROOF" };
+    IfcRoofTypeEnum.HIPPED_GABLE_ROOF = { type: 3, value: "HIPPED_GABLE_ROOF" };
+    IfcRoofTypeEnum.HIP_ROOF = { type: 3, value: "HIP_ROOF" };
+    IfcRoofTypeEnum.MANSARD_ROOF = { type: 3, value: "MANSARD_ROOF" };
+    IfcRoofTypeEnum.PAVILION_ROOF = { type: 3, value: "PAVILION_ROOF" };
+    IfcRoofTypeEnum.RAINBOW_ROOF = { type: 3, value: "RAINBOW_ROOF" };
+    IfcRoofTypeEnum.SHED_ROOF = { type: 3, value: "SHED_ROOF" };
+    IfcRoofTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcRoofTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcRoofTypeEnum = IfcRoofTypeEnum;
+    class IfcSIPrefix {
+    }
+    IfcSIPrefix.ATTO = { type: 3, value: "ATTO" };
+    IfcSIPrefix.CENTI = { type: 3, value: "CENTI" };
+    IfcSIPrefix.DECA = { type: 3, value: "DECA" };
+    IfcSIPrefix.DECI = { type: 3, value: "DECI" };
+    IfcSIPrefix.EXA = { type: 3, value: "EXA" };
+    IfcSIPrefix.FEMTO = { type: 3, value: "FEMTO" };
+    IfcSIPrefix.GIGA = { type: 3, value: "GIGA" };
+    IfcSIPrefix.HECTO = { type: 3, value: "HECTO" };
+    IfcSIPrefix.KILO = { type: 3, value: "KILO" };
+    IfcSIPrefix.MEGA = { type: 3, value: "MEGA" };
+    IfcSIPrefix.MICRO = { type: 3, value: "MICRO" };
+    IfcSIPrefix.MILLI = { type: 3, value: "MILLI" };
+    IfcSIPrefix.NANO = { type: 3, value: "NANO" };
+    IfcSIPrefix.PETA = { type: 3, value: "PETA" };
+    IfcSIPrefix.PICO = { type: 3, value: "PICO" };
+    IfcSIPrefix.TERA = { type: 3, value: "TERA" };
+    IFC4X32.IfcSIPrefix = IfcSIPrefix;
+    class IfcSIUnitName {
+    }
+    IfcSIUnitName.AMPERE = { type: 3, value: "AMPERE" };
+    IfcSIUnitName.BECQUEREL = { type: 3, value: "BECQUEREL" };
+    IfcSIUnitName.CANDELA = { type: 3, value: "CANDELA" };
+    IfcSIUnitName.COULOMB = { type: 3, value: "COULOMB" };
+    IfcSIUnitName.CUBIC_METRE = { type: 3, value: "CUBIC_METRE" };
+    IfcSIUnitName.DEGREE_CELSIUS = { type: 3, value: "DEGREE_CELSIUS" };
+    IfcSIUnitName.FARAD = { type: 3, value: "FARAD" };
+    IfcSIUnitName.GRAM = { type: 3, value: "GRAM" };
+    IfcSIUnitName.GRAY = { type: 3, value: "GRAY" };
+    IfcSIUnitName.HENRY = { type: 3, value: "HENRY" };
+    IfcSIUnitName.HERTZ = { type: 3, value: "HERTZ" };
+    IfcSIUnitName.JOULE = { type: 3, value: "JOULE" };
+    IfcSIUnitName.KELVIN = { type: 3, value: "KELVIN" };
+    IfcSIUnitName.LUMEN = { type: 3, value: "LUMEN" };
+    IfcSIUnitName.LUX = { type: 3, value: "LUX" };
+    IfcSIUnitName.METRE = { type: 3, value: "METRE" };
+    IfcSIUnitName.MOLE = { type: 3, value: "MOLE" };
+    IfcSIUnitName.NEWTON = { type: 3, value: "NEWTON" };
+    IfcSIUnitName.OHM = { type: 3, value: "OHM" };
+    IfcSIUnitName.PASCAL = { type: 3, value: "PASCAL" };
+    IfcSIUnitName.RADIAN = { type: 3, value: "RADIAN" };
+    IfcSIUnitName.SECOND = { type: 3, value: "SECOND" };
+    IfcSIUnitName.SIEMENS = { type: 3, value: "SIEMENS" };
+    IfcSIUnitName.SIEVERT = { type: 3, value: "SIEVERT" };
+    IfcSIUnitName.SQUARE_METRE = { type: 3, value: "SQUARE_METRE" };
+    IfcSIUnitName.STERADIAN = { type: 3, value: "STERADIAN" };
+    IfcSIUnitName.TESLA = { type: 3, value: "TESLA" };
+    IfcSIUnitName.VOLT = { type: 3, value: "VOLT" };
+    IfcSIUnitName.WATT = { type: 3, value: "WATT" };
+    IfcSIUnitName.WEBER = { type: 3, value: "WEBER" };
+    IFC4X32.IfcSIUnitName = IfcSIUnitName;
+    class IfcSanitaryTerminalTypeEnum {
+    }
+    IfcSanitaryTerminalTypeEnum.BATH = { type: 3, value: "BATH" };
+    IfcSanitaryTerminalTypeEnum.BIDET = { type: 3, value: "BIDET" };
+    IfcSanitaryTerminalTypeEnum.CISTERN = { type: 3, value: "CISTERN" };
+    IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN = { type: 3, value: "SANITARYFOUNTAIN" };
+    IfcSanitaryTerminalTypeEnum.SHOWER = { type: 3, value: "SHOWER" };
+    IfcSanitaryTerminalTypeEnum.SINK = { type: 3, value: "SINK" };
+    IfcSanitaryTerminalTypeEnum.TOILETPAN = { type: 3, value: "TOILETPAN" };
+    IfcSanitaryTerminalTypeEnum.URINAL = { type: 3, value: "URINAL" };
+    IfcSanitaryTerminalTypeEnum.WASHHANDBASIN = { type: 3, value: "WASHHANDBASIN" };
+    IfcSanitaryTerminalTypeEnum.WCSEAT = { type: 3, value: "WCSEAT" };
+    IfcSanitaryTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSanitaryTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSanitaryTerminalTypeEnum = IfcSanitaryTerminalTypeEnum;
+    class IfcSectionTypeEnum {
+    }
+    IfcSectionTypeEnum.TAPERED = { type: 3, value: "TAPERED" };
+    IfcSectionTypeEnum.UNIFORM = { type: 3, value: "UNIFORM" };
+    IFC4X32.IfcSectionTypeEnum = IfcSectionTypeEnum;
+    class IfcSensorTypeEnum {
+    }
+    IfcSensorTypeEnum.CO2SENSOR = { type: 3, value: "CO2SENSOR" };
+    IfcSensorTypeEnum.CONDUCTANCESENSOR = { type: 3, value: "CONDUCTANCESENSOR" };
+    IfcSensorTypeEnum.CONTACTSENSOR = { type: 3, value: "CONTACTSENSOR" };
+    IfcSensorTypeEnum.COSENSOR = { type: 3, value: "COSENSOR" };
+    IfcSensorTypeEnum.EARTHQUAKESENSOR = { type: 3, value: "EARTHQUAKESENSOR" };
+    IfcSensorTypeEnum.FIRESENSOR = { type: 3, value: "FIRESENSOR" };
+    IfcSensorTypeEnum.FLOWSENSOR = { type: 3, value: "FLOWSENSOR" };
+    IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR = { type: 3, value: "FOREIGNOBJECTDETECTIONSENSOR" };
+    IfcSensorTypeEnum.FROSTSENSOR = { type: 3, value: "FROSTSENSOR" };
+    IfcSensorTypeEnum.GASSENSOR = { type: 3, value: "GASSENSOR" };
+    IfcSensorTypeEnum.HEATSENSOR = { type: 3, value: "HEATSENSOR" };
+    IfcSensorTypeEnum.HUMIDITYSENSOR = { type: 3, value: "HUMIDITYSENSOR" };
+    IfcSensorTypeEnum.IDENTIFIERSENSOR = { type: 3, value: "IDENTIFIERSENSOR" };
+    IfcSensorTypeEnum.IONCONCENTRATIONSENSOR = { type: 3, value: "IONCONCENTRATIONSENSOR" };
+    IfcSensorTypeEnum.LEVELSENSOR = { type: 3, value: "LEVELSENSOR" };
+    IfcSensorTypeEnum.LIGHTSENSOR = { type: 3, value: "LIGHTSENSOR" };
+    IfcSensorTypeEnum.MOISTURESENSOR = { type: 3, value: "MOISTURESENSOR" };
+    IfcSensorTypeEnum.MOVEMENTSENSOR = { type: 3, value: "MOVEMENTSENSOR" };
+    IfcSensorTypeEnum.OBSTACLESENSOR = { type: 3, value: "OBSTACLESENSOR" };
+    IfcSensorTypeEnum.PHSENSOR = { type: 3, value: "PHSENSOR" };
+    IfcSensorTypeEnum.PRESSURESENSOR = { type: 3, value: "PRESSURESENSOR" };
+    IfcSensorTypeEnum.RADIATIONSENSOR = { type: 3, value: "RADIATIONSENSOR" };
+    IfcSensorTypeEnum.RADIOACTIVITYSENSOR = { type: 3, value: "RADIOACTIVITYSENSOR" };
+    IfcSensorTypeEnum.RAINSENSOR = { type: 3, value: "RAINSENSOR" };
+    IfcSensorTypeEnum.SMOKESENSOR = { type: 3, value: "SMOKESENSOR" };
+    IfcSensorTypeEnum.SNOWDEPTHSENSOR = { type: 3, value: "SNOWDEPTHSENSOR" };
+    IfcSensorTypeEnum.SOUNDSENSOR = { type: 3, value: "SOUNDSENSOR" };
+    IfcSensorTypeEnum.TEMPERATURESENSOR = { type: 3, value: "TEMPERATURESENSOR" };
+    IfcSensorTypeEnum.TRAINSENSOR = { type: 3, value: "TRAINSENSOR" };
+    IfcSensorTypeEnum.TURNOUTCLOSURESENSOR = { type: 3, value: "TURNOUTCLOSURESENSOR" };
+    IfcSensorTypeEnum.WHEELSENSOR = { type: 3, value: "WHEELSENSOR" };
+    IfcSensorTypeEnum.WINDSENSOR = { type: 3, value: "WINDSENSOR" };
+    IfcSensorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSensorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSensorTypeEnum = IfcSensorTypeEnum;
+    class IfcSequenceEnum {
+    }
+    IfcSequenceEnum.FINISH_FINISH = { type: 3, value: "FINISH_FINISH" };
+    IfcSequenceEnum.FINISH_START = { type: 3, value: "FINISH_START" };
+    IfcSequenceEnum.START_FINISH = { type: 3, value: "START_FINISH" };
+    IfcSequenceEnum.START_START = { type: 3, value: "START_START" };
+    IfcSequenceEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSequenceEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSequenceEnum = IfcSequenceEnum;
+    class IfcShadingDeviceTypeEnum {
+    }
+    IfcShadingDeviceTypeEnum.AWNING = { type: 3, value: "AWNING" };
+    IfcShadingDeviceTypeEnum.JALOUSIE = { type: 3, value: "JALOUSIE" };
+    IfcShadingDeviceTypeEnum.SHUTTER = { type: 3, value: "SHUTTER" };
+    IfcShadingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcShadingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcShadingDeviceTypeEnum = IfcShadingDeviceTypeEnum;
+    class IfcSignTypeEnum {
+    }
+    IfcSignTypeEnum.MARKER = { type: 3, value: "MARKER" };
+    IfcSignTypeEnum.MIRROR = { type: 3, value: "MIRROR" };
+    IfcSignTypeEnum.PICTORAL = { type: 3, value: "PICTORAL" };
+    IfcSignTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSignTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSignTypeEnum = IfcSignTypeEnum;
+    class IfcSignalTypeEnum {
+    }
+    IfcSignalTypeEnum.AUDIO = { type: 3, value: "AUDIO" };
+    IfcSignalTypeEnum.MIXED = { type: 3, value: "MIXED" };
+    IfcSignalTypeEnum.VISUAL = { type: 3, value: "VISUAL" };
+    IfcSignalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSignalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSignalTypeEnum = IfcSignalTypeEnum;
+    class IfcSimplePropertyTemplateTypeEnum {
+    }
+    IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE = { type: 3, value: "P_BOUNDEDVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE = { type: 3, value: "P_ENUMERATEDVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE = { type: 3, value: "P_LISTVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE = { type: 3, value: "P_REFERENCEVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE = { type: 3, value: "P_SINGLEVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE = { type: 3, value: "P_TABLEVALUE" };
+    IfcSimplePropertyTemplateTypeEnum.Q_AREA = { type: 3, value: "Q_AREA" };
+    IfcSimplePropertyTemplateTypeEnum.Q_COUNT = { type: 3, value: "Q_COUNT" };
+    IfcSimplePropertyTemplateTypeEnum.Q_LENGTH = { type: 3, value: "Q_LENGTH" };
+    IfcSimplePropertyTemplateTypeEnum.Q_NUMBER = { type: 3, value: "Q_NUMBER" };
+    IfcSimplePropertyTemplateTypeEnum.Q_TIME = { type: 3, value: "Q_TIME" };
+    IfcSimplePropertyTemplateTypeEnum.Q_VOLUME = { type: 3, value: "Q_VOLUME" };
+    IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT = { type: 3, value: "Q_WEIGHT" };
+    IFC4X32.IfcSimplePropertyTemplateTypeEnum = IfcSimplePropertyTemplateTypeEnum;
+    class IfcSlabTypeEnum {
+    }
+    IfcSlabTypeEnum.APPROACH_SLAB = { type: 3, value: "APPROACH_SLAB" };
+    IfcSlabTypeEnum.BASESLAB = { type: 3, value: "BASESLAB" };
+    IfcSlabTypeEnum.FLOOR = { type: 3, value: "FLOOR" };
+    IfcSlabTypeEnum.LANDING = { type: 3, value: "LANDING" };
+    IfcSlabTypeEnum.PAVING = { type: 3, value: "PAVING" };
+    IfcSlabTypeEnum.ROOF = { type: 3, value: "ROOF" };
+    IfcSlabTypeEnum.SIDEWALK = { type: 3, value: "SIDEWALK" };
+    IfcSlabTypeEnum.TRACKSLAB = { type: 3, value: "TRACKSLAB" };
+    IfcSlabTypeEnum.WEARING = { type: 3, value: "WEARING" };
+    IfcSlabTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSlabTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSlabTypeEnum = IfcSlabTypeEnum;
+    class IfcSolarDeviceTypeEnum {
+    }
+    IfcSolarDeviceTypeEnum.SOLARCOLLECTOR = { type: 3, value: "SOLARCOLLECTOR" };
+    IfcSolarDeviceTypeEnum.SOLARPANEL = { type: 3, value: "SOLARPANEL" };
+    IfcSolarDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSolarDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSolarDeviceTypeEnum = IfcSolarDeviceTypeEnum;
+    class IfcSpaceHeaterTypeEnum {
+    }
+    IfcSpaceHeaterTypeEnum.CONVECTOR = { type: 3, value: "CONVECTOR" };
+    IfcSpaceHeaterTypeEnum.RADIATOR = { type: 3, value: "RADIATOR" };
+    IfcSpaceHeaterTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSpaceHeaterTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSpaceHeaterTypeEnum = IfcSpaceHeaterTypeEnum;
+    class IfcSpaceTypeEnum {
+    }
+    IfcSpaceTypeEnum.BERTH = { type: 3, value: "BERTH" };
+    IfcSpaceTypeEnum.EXTERNAL = { type: 3, value: "EXTERNAL" };
+    IfcSpaceTypeEnum.GFA = { type: 3, value: "GFA" };
+    IfcSpaceTypeEnum.INTERNAL = { type: 3, value: "INTERNAL" };
+    IfcSpaceTypeEnum.PARKING = { type: 3, value: "PARKING" };
+    IfcSpaceTypeEnum.SPACE = { type: 3, value: "SPACE" };
+    IfcSpaceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSpaceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSpaceTypeEnum = IfcSpaceTypeEnum;
+    class IfcSpatialZoneTypeEnum {
+    }
+    IfcSpatialZoneTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" };
+    IfcSpatialZoneTypeEnum.FIRESAFETY = { type: 3, value: "FIRESAFETY" };
+    IfcSpatialZoneTypeEnum.INTERFERENCE = { type: 3, value: "INTERFERENCE" };
+    IfcSpatialZoneTypeEnum.LIGHTING = { type: 3, value: "LIGHTING" };
+    IfcSpatialZoneTypeEnum.OCCUPANCY = { type: 3, value: "OCCUPANCY" };
+    IfcSpatialZoneTypeEnum.RESERVATION = { type: 3, value: "RESERVATION" };
+    IfcSpatialZoneTypeEnum.SECURITY = { type: 3, value: "SECURITY" };
+    IfcSpatialZoneTypeEnum.THERMAL = { type: 3, value: "THERMAL" };
+    IfcSpatialZoneTypeEnum.TRANSPORT = { type: 3, value: "TRANSPORT" };
+    IfcSpatialZoneTypeEnum.VENTILATION = { type: 3, value: "VENTILATION" };
+    IfcSpatialZoneTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSpatialZoneTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSpatialZoneTypeEnum = IfcSpatialZoneTypeEnum;
+    class IfcStackTerminalTypeEnum {
+    }
+    IfcStackTerminalTypeEnum.BIRDCAGE = { type: 3, value: "BIRDCAGE" };
+    IfcStackTerminalTypeEnum.COWL = { type: 3, value: "COWL" };
+    IfcStackTerminalTypeEnum.RAINWATERHOPPER = { type: 3, value: "RAINWATERHOPPER" };
+    IfcStackTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStackTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcStackTerminalTypeEnum = IfcStackTerminalTypeEnum;
+    class IfcStairFlightTypeEnum {
+    }
+    IfcStairFlightTypeEnum.CURVED = { type: 3, value: "CURVED" };
+    IfcStairFlightTypeEnum.FREEFORM = { type: 3, value: "FREEFORM" };
+    IfcStairFlightTypeEnum.SPIRAL = { type: 3, value: "SPIRAL" };
+    IfcStairFlightTypeEnum.STRAIGHT = { type: 3, value: "STRAIGHT" };
+    IfcStairFlightTypeEnum.WINDER = { type: 3, value: "WINDER" };
+    IfcStairFlightTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStairFlightTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcStairFlightTypeEnum = IfcStairFlightTypeEnum;
+    class IfcStairTypeEnum {
+    }
+    IfcStairTypeEnum.CURVED_RUN_STAIR = { type: 3, value: "CURVED_RUN_STAIR" };
+    IfcStairTypeEnum.DOUBLE_RETURN_STAIR = { type: 3, value: "DOUBLE_RETURN_STAIR" };
+    IfcStairTypeEnum.HALF_TURN_STAIR = { type: 3, value: "HALF_TURN_STAIR" };
+    IfcStairTypeEnum.HALF_WINDING_STAIR = { type: 3, value: "HALF_WINDING_STAIR" };
+    IfcStairTypeEnum.LADDER = { type: 3, value: "LADDER" };
+    IfcStairTypeEnum.QUARTER_TURN_STAIR = { type: 3, value: "QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.QUARTER_WINDING_STAIR = { type: 3, value: "QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.SPIRAL_STAIR = { type: 3, value: "SPIRAL_STAIR" };
+    IfcStairTypeEnum.STRAIGHT_RUN_STAIR = { type: 3, value: "STRAIGHT_RUN_STAIR" };
+    IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR = { type: 3, value: "THREE_QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR = { type: 3, value: "THREE_QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.TWO_CURVED_RUN_STAIR = { type: 3, value: "TWO_CURVED_RUN_STAIR" };
+    IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR = { type: 3, value: "TWO_QUARTER_TURN_STAIR" };
+    IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR = { type: 3, value: "TWO_QUARTER_WINDING_STAIR" };
+    IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR = { type: 3, value: "TWO_STRAIGHT_RUN_STAIR" };
+    IfcStairTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStairTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcStairTypeEnum = IfcStairTypeEnum;
+    class IfcStateEnum {
+    }
+    IfcStateEnum.LOCKED = { type: 3, value: "LOCKED" };
+    IfcStateEnum.READONLY = { type: 3, value: "READONLY" };
+    IfcStateEnum.READONLYLOCKED = { type: 3, value: "READONLYLOCKED" };
+    IfcStateEnum.READWRITE = { type: 3, value: "READWRITE" };
+    IfcStateEnum.READWRITELOCKED = { type: 3, value: "READWRITELOCKED" };
+    IFC4X32.IfcStateEnum = IfcStateEnum;
+    class IfcStructuralCurveActivityTypeEnum {
+    }
+    IfcStructuralCurveActivityTypeEnum.CONST = { type: 3, value: "CONST" };
+    IfcStructuralCurveActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" };
+    IfcStructuralCurveActivityTypeEnum.EQUIDISTANT = { type: 3, value: "EQUIDISTANT" };
+    IfcStructuralCurveActivityTypeEnum.LINEAR = { type: 3, value: "LINEAR" };
+    IfcStructuralCurveActivityTypeEnum.PARABOLA = { type: 3, value: "PARABOLA" };
+    IfcStructuralCurveActivityTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" };
+    IfcStructuralCurveActivityTypeEnum.SINUS = { type: 3, value: "SINUS" };
+    IfcStructuralCurveActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralCurveActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcStructuralCurveActivityTypeEnum = IfcStructuralCurveActivityTypeEnum;
+    class IfcStructuralCurveMemberTypeEnum {
+    }
+    IfcStructuralCurveMemberTypeEnum.CABLE = { type: 3, value: "CABLE" };
+    IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER = { type: 3, value: "COMPRESSION_MEMBER" };
+    IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER = { type: 3, value: "PIN_JOINED_MEMBER" };
+    IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER = { type: 3, value: "RIGID_JOINED_MEMBER" };
+    IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER = { type: 3, value: "TENSION_MEMBER" };
+    IfcStructuralCurveMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralCurveMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcStructuralCurveMemberTypeEnum = IfcStructuralCurveMemberTypeEnum;
+    class IfcStructuralSurfaceActivityTypeEnum {
+    }
+    IfcStructuralSurfaceActivityTypeEnum.BILINEAR = { type: 3, value: "BILINEAR" };
+    IfcStructuralSurfaceActivityTypeEnum.CONST = { type: 3, value: "CONST" };
+    IfcStructuralSurfaceActivityTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" };
+    IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR = { type: 3, value: "ISOCONTOUR" };
+    IfcStructuralSurfaceActivityTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcStructuralSurfaceActivityTypeEnum = IfcStructuralSurfaceActivityTypeEnum;
+    class IfcStructuralSurfaceMemberTypeEnum {
+    }
+    IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT = { type: 3, value: "BENDING_ELEMENT" };
+    IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT = { type: 3, value: "MEMBRANE_ELEMENT" };
+    IfcStructuralSurfaceMemberTypeEnum.SHELL = { type: 3, value: "SHELL" };
+    IfcStructuralSurfaceMemberTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcStructuralSurfaceMemberTypeEnum = IfcStructuralSurfaceMemberTypeEnum;
+    class IfcSubContractResourceTypeEnum {
+    }
+    IfcSubContractResourceTypeEnum.PURCHASE = { type: 3, value: "PURCHASE" };
+    IfcSubContractResourceTypeEnum.WORK = { type: 3, value: "WORK" };
+    IfcSubContractResourceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSubContractResourceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSubContractResourceTypeEnum = IfcSubContractResourceTypeEnum;
+    class IfcSurfaceFeatureTypeEnum {
+    }
+    IfcSurfaceFeatureTypeEnum.DEFECT = { type: 3, value: "DEFECT" };
+    IfcSurfaceFeatureTypeEnum.HATCHMARKING = { type: 3, value: "HATCHMARKING" };
+    IfcSurfaceFeatureTypeEnum.LINEMARKING = { type: 3, value: "LINEMARKING" };
+    IfcSurfaceFeatureTypeEnum.MARK = { type: 3, value: "MARK" };
+    IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING = { type: 3, value: "NONSKIDSURFACING" };
+    IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING = { type: 3, value: "PAVEMENTSURFACEMARKING" };
+    IfcSurfaceFeatureTypeEnum.RUMBLESTRIP = { type: 3, value: "RUMBLESTRIP" };
+    IfcSurfaceFeatureTypeEnum.SYMBOLMARKING = { type: 3, value: "SYMBOLMARKING" };
+    IfcSurfaceFeatureTypeEnum.TAG = { type: 3, value: "TAG" };
+    IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP = { type: 3, value: "TRANSVERSERUMBLESTRIP" };
+    IfcSurfaceFeatureTypeEnum.TREATMENT = { type: 3, value: "TREATMENT" };
+    IfcSurfaceFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSurfaceFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSurfaceFeatureTypeEnum = IfcSurfaceFeatureTypeEnum;
+    class IfcSurfaceSide {
+    }
+    IfcSurfaceSide.BOTH = { type: 3, value: "BOTH" };
+    IfcSurfaceSide.NEGATIVE = { type: 3, value: "NEGATIVE" };
+    IfcSurfaceSide.POSITIVE = { type: 3, value: "POSITIVE" };
+    IFC4X32.IfcSurfaceSide = IfcSurfaceSide;
+    class IfcSwitchingDeviceTypeEnum {
+    }
+    IfcSwitchingDeviceTypeEnum.CONTACTOR = { type: 3, value: "CONTACTOR" };
+    IfcSwitchingDeviceTypeEnum.DIMMERSWITCH = { type: 3, value: "DIMMERSWITCH" };
+    IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP = { type: 3, value: "EMERGENCYSTOP" };
+    IfcSwitchingDeviceTypeEnum.KEYPAD = { type: 3, value: "KEYPAD" };
+    IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH = { type: 3, value: "MOMENTARYSWITCH" };
+    IfcSwitchingDeviceTypeEnum.RELAY = { type: 3, value: "RELAY" };
+    IfcSwitchingDeviceTypeEnum.SELECTORSWITCH = { type: 3, value: "SELECTORSWITCH" };
+    IfcSwitchingDeviceTypeEnum.STARTER = { type: 3, value: "STARTER" };
+    IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT = { type: 3, value: "START_AND_STOP_EQUIPMENT" };
+    IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR = { type: 3, value: "SWITCHDISCONNECTOR" };
+    IfcSwitchingDeviceTypeEnum.TOGGLESWITCH = { type: 3, value: "TOGGLESWITCH" };
+    IfcSwitchingDeviceTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSwitchingDeviceTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSwitchingDeviceTypeEnum = IfcSwitchingDeviceTypeEnum;
+    class IfcSystemFurnitureElementTypeEnum {
+    }
+    IfcSystemFurnitureElementTypeEnum.PANEL = { type: 3, value: "PANEL" };
+    IfcSystemFurnitureElementTypeEnum.SUBRACK = { type: 3, value: "SUBRACK" };
+    IfcSystemFurnitureElementTypeEnum.WORKSURFACE = { type: 3, value: "WORKSURFACE" };
+    IfcSystemFurnitureElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcSystemFurnitureElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcSystemFurnitureElementTypeEnum = IfcSystemFurnitureElementTypeEnum;
+    class IfcTankTypeEnum {
+    }
+    IfcTankTypeEnum.BASIN = { type: 3, value: "BASIN" };
+    IfcTankTypeEnum.BREAKPRESSURE = { type: 3, value: "BREAKPRESSURE" };
+    IfcTankTypeEnum.EXPANSION = { type: 3, value: "EXPANSION" };
+    IfcTankTypeEnum.FEEDANDEXPANSION = { type: 3, value: "FEEDANDEXPANSION" };
+    IfcTankTypeEnum.OILRETENTIONTRAY = { type: 3, value: "OILRETENTIONTRAY" };
+    IfcTankTypeEnum.PRESSUREVESSEL = { type: 3, value: "PRESSUREVESSEL" };
+    IfcTankTypeEnum.STORAGE = { type: 3, value: "STORAGE" };
+    IfcTankTypeEnum.VESSEL = { type: 3, value: "VESSEL" };
+    IfcTankTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTankTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTankTypeEnum = IfcTankTypeEnum;
+    class IfcTaskDurationEnum {
+    }
+    IfcTaskDurationEnum.ELAPSEDTIME = { type: 3, value: "ELAPSEDTIME" };
+    IfcTaskDurationEnum.WORKTIME = { type: 3, value: "WORKTIME" };
+    IfcTaskDurationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTaskDurationEnum = IfcTaskDurationEnum;
+    class IfcTaskTypeEnum {
+    }
+    IfcTaskTypeEnum.ADJUSTMENT = { type: 3, value: "ADJUSTMENT" };
+    IfcTaskTypeEnum.ATTENDANCE = { type: 3, value: "ATTENDANCE" };
+    IfcTaskTypeEnum.CALIBRATION = { type: 3, value: "CALIBRATION" };
+    IfcTaskTypeEnum.CONSTRUCTION = { type: 3, value: "CONSTRUCTION" };
+    IfcTaskTypeEnum.DEMOLITION = { type: 3, value: "DEMOLITION" };
+    IfcTaskTypeEnum.DISMANTLE = { type: 3, value: "DISMANTLE" };
+    IfcTaskTypeEnum.DISPOSAL = { type: 3, value: "DISPOSAL" };
+    IfcTaskTypeEnum.EMERGENCY = { type: 3, value: "EMERGENCY" };
+    IfcTaskTypeEnum.INSPECTION = { type: 3, value: "INSPECTION" };
+    IfcTaskTypeEnum.INSTALLATION = { type: 3, value: "INSTALLATION" };
+    IfcTaskTypeEnum.LOGISTIC = { type: 3, value: "LOGISTIC" };
+    IfcTaskTypeEnum.MAINTENANCE = { type: 3, value: "MAINTENANCE" };
+    IfcTaskTypeEnum.MOVE = { type: 3, value: "MOVE" };
+    IfcTaskTypeEnum.OPERATION = { type: 3, value: "OPERATION" };
+    IfcTaskTypeEnum.REMOVAL = { type: 3, value: "REMOVAL" };
+    IfcTaskTypeEnum.RENOVATION = { type: 3, value: "RENOVATION" };
+    IfcTaskTypeEnum.SAFETY = { type: 3, value: "SAFETY" };
+    IfcTaskTypeEnum.SHUTDOWN = { type: 3, value: "SHUTDOWN" };
+    IfcTaskTypeEnum.STARTUP = { type: 3, value: "STARTUP" };
+    IfcTaskTypeEnum.TESTING = { type: 3, value: "TESTING" };
+    IfcTaskTypeEnum.TROUBLESHOOTING = { type: 3, value: "TROUBLESHOOTING" };
+    IfcTaskTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTaskTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTaskTypeEnum = IfcTaskTypeEnum;
+    class IfcTendonAnchorTypeEnum {
+    }
+    IfcTendonAnchorTypeEnum.COUPLER = { type: 3, value: "COUPLER" };
+    IfcTendonAnchorTypeEnum.FIXED_END = { type: 3, value: "FIXED_END" };
+    IfcTendonAnchorTypeEnum.TENSIONING_END = { type: 3, value: "TENSIONING_END" };
+    IfcTendonAnchorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTendonAnchorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTendonAnchorTypeEnum = IfcTendonAnchorTypeEnum;
+    class IfcTendonConduitTypeEnum {
+    }
+    IfcTendonConduitTypeEnum.COUPLER = { type: 3, value: "COUPLER" };
+    IfcTendonConduitTypeEnum.DIABOLO = { type: 3, value: "DIABOLO" };
+    IfcTendonConduitTypeEnum.DUCT = { type: 3, value: "DUCT" };
+    IfcTendonConduitTypeEnum.GROUTING_DUCT = { type: 3, value: "GROUTING_DUCT" };
+    IfcTendonConduitTypeEnum.TRUMPET = { type: 3, value: "TRUMPET" };
+    IfcTendonConduitTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTendonConduitTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTendonConduitTypeEnum = IfcTendonConduitTypeEnum;
+    class IfcTendonTypeEnum {
+    }
+    IfcTendonTypeEnum.BAR = { type: 3, value: "BAR" };
+    IfcTendonTypeEnum.COATED = { type: 3, value: "COATED" };
+    IfcTendonTypeEnum.STRAND = { type: 3, value: "STRAND" };
+    IfcTendonTypeEnum.WIRE = { type: 3, value: "WIRE" };
+    IfcTendonTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTendonTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTendonTypeEnum = IfcTendonTypeEnum;
+    class IfcTextPath {
+    }
+    IfcTextPath.DOWN = { type: 3, value: "DOWN" };
+    IfcTextPath.LEFT = { type: 3, value: "LEFT" };
+    IfcTextPath.RIGHT = { type: 3, value: "RIGHT" };
+    IfcTextPath.UP = { type: 3, value: "UP" };
+    IFC4X32.IfcTextPath = IfcTextPath;
+    class IfcTimeSeriesDataTypeEnum {
+    }
+    IfcTimeSeriesDataTypeEnum.CONTINUOUS = { type: 3, value: "CONTINUOUS" };
+    IfcTimeSeriesDataTypeEnum.DISCRETE = { type: 3, value: "DISCRETE" };
+    IfcTimeSeriesDataTypeEnum.DISCRETEBINARY = { type: 3, value: "DISCRETEBINARY" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY = { type: 3, value: "PIECEWISEBINARY" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT = { type: 3, value: "PIECEWISECONSTANT" };
+    IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS = { type: 3, value: "PIECEWISECONTINUOUS" };
+    IfcTimeSeriesDataTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTimeSeriesDataTypeEnum = IfcTimeSeriesDataTypeEnum;
+    class IfcTrackElementTypeEnum {
+    }
+    IfcTrackElementTypeEnum.BLOCKINGDEVICE = { type: 3, value: "BLOCKINGDEVICE" };
+    IfcTrackElementTypeEnum.DERAILER = { type: 3, value: "DERAILER" };
+    IfcTrackElementTypeEnum.FROG = { type: 3, value: "FROG" };
+    IfcTrackElementTypeEnum.HALF_SET_OF_BLADES = { type: 3, value: "HALF_SET_OF_BLADES" };
+    IfcTrackElementTypeEnum.SLEEPER = { type: 3, value: "SLEEPER" };
+    IfcTrackElementTypeEnum.SPEEDREGULATOR = { type: 3, value: "SPEEDREGULATOR" };
+    IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT = { type: 3, value: "TRACKENDOFALIGNMENT" };
+    IfcTrackElementTypeEnum.VEHICLESTOP = { type: 3, value: "VEHICLESTOP" };
+    IfcTrackElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTrackElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTrackElementTypeEnum = IfcTrackElementTypeEnum;
+    class IfcTransformerTypeEnum {
+    }
+    IfcTransformerTypeEnum.CHOPPER = { type: 3, value: "CHOPPER" };
+    IfcTransformerTypeEnum.COMBINED = { type: 3, value: "COMBINED" };
+    IfcTransformerTypeEnum.CURRENT = { type: 3, value: "CURRENT" };
+    IfcTransformerTypeEnum.FREQUENCY = { type: 3, value: "FREQUENCY" };
+    IfcTransformerTypeEnum.INVERTER = { type: 3, value: "INVERTER" };
+    IfcTransformerTypeEnum.RECTIFIER = { type: 3, value: "RECTIFIER" };
+    IfcTransformerTypeEnum.VOLTAGE = { type: 3, value: "VOLTAGE" };
+    IfcTransformerTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTransformerTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTransformerTypeEnum = IfcTransformerTypeEnum;
+    class IfcTransitionCode {
+    }
+    IfcTransitionCode.CONTINUOUS = { type: 3, value: "CONTINUOUS" };
+    IfcTransitionCode.CONTSAMEGRADIENT = { type: 3, value: "CONTSAMEGRADIENT" };
+    IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE = { type: 3, value: "CONTSAMEGRADIENTSAMECURVATURE" };
+    IfcTransitionCode.DISCONTINUOUS = { type: 3, value: "DISCONTINUOUS" };
+    IFC4X32.IfcTransitionCode = IfcTransitionCode;
+    class IfcTransportElementTypeEnum {
+    }
+    IfcTransportElementTypeEnum.CRANEWAY = { type: 3, value: "CRANEWAY" };
+    IfcTransportElementTypeEnum.ELEVATOR = { type: 3, value: "ELEVATOR" };
+    IfcTransportElementTypeEnum.ESCALATOR = { type: 3, value: "ESCALATOR" };
+    IfcTransportElementTypeEnum.HAULINGGEAR = { type: 3, value: "HAULINGGEAR" };
+    IfcTransportElementTypeEnum.LIFTINGGEAR = { type: 3, value: "LIFTINGGEAR" };
+    IfcTransportElementTypeEnum.MOVINGWALKWAY = { type: 3, value: "MOVINGWALKWAY" };
+    IfcTransportElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTransportElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTransportElementTypeEnum = IfcTransportElementTypeEnum;
+    class IfcTrimmingPreference {
+    }
+    IfcTrimmingPreference.CARTESIAN = { type: 3, value: "CARTESIAN" };
+    IfcTrimmingPreference.PARAMETER = { type: 3, value: "PARAMETER" };
+    IfcTrimmingPreference.UNSPECIFIED = { type: 3, value: "UNSPECIFIED" };
+    IFC4X32.IfcTrimmingPreference = IfcTrimmingPreference;
+    class IfcTubeBundleTypeEnum {
+    }
+    IfcTubeBundleTypeEnum.FINNED = { type: 3, value: "FINNED" };
+    IfcTubeBundleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcTubeBundleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcTubeBundleTypeEnum = IfcTubeBundleTypeEnum;
+    class IfcUnitEnum {
+    }
+    IfcUnitEnum.ABSORBEDDOSEUNIT = { type: 3, value: "ABSORBEDDOSEUNIT" };
+    IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT = { type: 3, value: "AMOUNTOFSUBSTANCEUNIT" };
+    IfcUnitEnum.AREAUNIT = { type: 3, value: "AREAUNIT" };
+    IfcUnitEnum.DOSEEQUIVALENTUNIT = { type: 3, value: "DOSEEQUIVALENTUNIT" };
+    IfcUnitEnum.ELECTRICCAPACITANCEUNIT = { type: 3, value: "ELECTRICCAPACITANCEUNIT" };
+    IfcUnitEnum.ELECTRICCHARGEUNIT = { type: 3, value: "ELECTRICCHARGEUNIT" };
+    IfcUnitEnum.ELECTRICCONDUCTANCEUNIT = { type: 3, value: "ELECTRICCONDUCTANCEUNIT" };
+    IfcUnitEnum.ELECTRICCURRENTUNIT = { type: 3, value: "ELECTRICCURRENTUNIT" };
+    IfcUnitEnum.ELECTRICRESISTANCEUNIT = { type: 3, value: "ELECTRICRESISTANCEUNIT" };
+    IfcUnitEnum.ELECTRICVOLTAGEUNIT = { type: 3, value: "ELECTRICVOLTAGEUNIT" };
+    IfcUnitEnum.ENERGYUNIT = { type: 3, value: "ENERGYUNIT" };
+    IfcUnitEnum.FORCEUNIT = { type: 3, value: "FORCEUNIT" };
+    IfcUnitEnum.FREQUENCYUNIT = { type: 3, value: "FREQUENCYUNIT" };
+    IfcUnitEnum.ILLUMINANCEUNIT = { type: 3, value: "ILLUMINANCEUNIT" };
+    IfcUnitEnum.INDUCTANCEUNIT = { type: 3, value: "INDUCTANCEUNIT" };
+    IfcUnitEnum.LENGTHUNIT = { type: 3, value: "LENGTHUNIT" };
+    IfcUnitEnum.LUMINOUSFLUXUNIT = { type: 3, value: "LUMINOUSFLUXUNIT" };
+    IfcUnitEnum.LUMINOUSINTENSITYUNIT = { type: 3, value: "LUMINOUSINTENSITYUNIT" };
+    IfcUnitEnum.MAGNETICFLUXDENSITYUNIT = { type: 3, value: "MAGNETICFLUXDENSITYUNIT" };
+    IfcUnitEnum.MAGNETICFLUXUNIT = { type: 3, value: "MAGNETICFLUXUNIT" };
+    IfcUnitEnum.MASSUNIT = { type: 3, value: "MASSUNIT" };
+    IfcUnitEnum.PLANEANGLEUNIT = { type: 3, value: "PLANEANGLEUNIT" };
+    IfcUnitEnum.POWERUNIT = { type: 3, value: "POWERUNIT" };
+    IfcUnitEnum.PRESSUREUNIT = { type: 3, value: "PRESSUREUNIT" };
+    IfcUnitEnum.RADIOACTIVITYUNIT = { type: 3, value: "RADIOACTIVITYUNIT" };
+    IfcUnitEnum.SOLIDANGLEUNIT = { type: 3, value: "SOLIDANGLEUNIT" };
+    IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT = { type: 3, value: "THERMODYNAMICTEMPERATUREUNIT" };
+    IfcUnitEnum.TIMEUNIT = { type: 3, value: "TIMEUNIT" };
+    IfcUnitEnum.VOLUMEUNIT = { type: 3, value: "VOLUMEUNIT" };
+    IfcUnitEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IFC4X32.IfcUnitEnum = IfcUnitEnum;
+    class IfcUnitaryControlElementTypeEnum {
+    }
+    IfcUnitaryControlElementTypeEnum.ALARMPANEL = { type: 3, value: "ALARMPANEL" };
+    IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER = { type: 3, value: "BASESTATIONCONTROLLER" };
+    IfcUnitaryControlElementTypeEnum.COMBINED = { type: 3, value: "COMBINED" };
+    IfcUnitaryControlElementTypeEnum.CONTROLPANEL = { type: 3, value: "CONTROLPANEL" };
+    IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL = { type: 3, value: "GASDETECTIONPANEL" };
+    IfcUnitaryControlElementTypeEnum.HUMIDISTAT = { type: 3, value: "HUMIDISTAT" };
+    IfcUnitaryControlElementTypeEnum.INDICATORPANEL = { type: 3, value: "INDICATORPANEL" };
+    IfcUnitaryControlElementTypeEnum.MIMICPANEL = { type: 3, value: "MIMICPANEL" };
+    IfcUnitaryControlElementTypeEnum.THERMOSTAT = { type: 3, value: "THERMOSTAT" };
+    IfcUnitaryControlElementTypeEnum.WEATHERSTATION = { type: 3, value: "WEATHERSTATION" };
+    IfcUnitaryControlElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcUnitaryControlElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcUnitaryControlElementTypeEnum = IfcUnitaryControlElementTypeEnum;
+    class IfcUnitaryEquipmentTypeEnum {
+    }
+    IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT = { type: 3, value: "AIRCONDITIONINGUNIT" };
+    IfcUnitaryEquipmentTypeEnum.AIRHANDLER = { type: 3, value: "AIRHANDLER" };
+    IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER = { type: 3, value: "DEHUMIDIFIER" };
+    IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT = { type: 3, value: "ROOFTOPUNIT" };
+    IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM = { type: 3, value: "SPLITSYSTEM" };
+    IfcUnitaryEquipmentTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcUnitaryEquipmentTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcUnitaryEquipmentTypeEnum = IfcUnitaryEquipmentTypeEnum;
+    class IfcValveTypeEnum {
+    }
+    IfcValveTypeEnum.AIRRELEASE = { type: 3, value: "AIRRELEASE" };
+    IfcValveTypeEnum.ANTIVACUUM = { type: 3, value: "ANTIVACUUM" };
+    IfcValveTypeEnum.CHANGEOVER = { type: 3, value: "CHANGEOVER" };
+    IfcValveTypeEnum.CHECK = { type: 3, value: "CHECK" };
+    IfcValveTypeEnum.COMMISSIONING = { type: 3, value: "COMMISSIONING" };
+    IfcValveTypeEnum.DIVERTING = { type: 3, value: "DIVERTING" };
+    IfcValveTypeEnum.DOUBLECHECK = { type: 3, value: "DOUBLECHECK" };
+    IfcValveTypeEnum.DOUBLEREGULATING = { type: 3, value: "DOUBLEREGULATING" };
+    IfcValveTypeEnum.DRAWOFFCOCK = { type: 3, value: "DRAWOFFCOCK" };
+    IfcValveTypeEnum.FAUCET = { type: 3, value: "FAUCET" };
+    IfcValveTypeEnum.FLUSHING = { type: 3, value: "FLUSHING" };
+    IfcValveTypeEnum.GASCOCK = { type: 3, value: "GASCOCK" };
+    IfcValveTypeEnum.GASTAP = { type: 3, value: "GASTAP" };
+    IfcValveTypeEnum.ISOLATING = { type: 3, value: "ISOLATING" };
+    IfcValveTypeEnum.MIXING = { type: 3, value: "MIXING" };
+    IfcValveTypeEnum.PRESSUREREDUCING = { type: 3, value: "PRESSUREREDUCING" };
+    IfcValveTypeEnum.PRESSURERELIEF = { type: 3, value: "PRESSURERELIEF" };
+    IfcValveTypeEnum.REGULATING = { type: 3, value: "REGULATING" };
+    IfcValveTypeEnum.SAFETYCUTOFF = { type: 3, value: "SAFETYCUTOFF" };
+    IfcValveTypeEnum.STEAMTRAP = { type: 3, value: "STEAMTRAP" };
+    IfcValveTypeEnum.STOPCOCK = { type: 3, value: "STOPCOCK" };
+    IfcValveTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcValveTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcValveTypeEnum = IfcValveTypeEnum;
+    class IfcVehicleTypeEnum {
+    }
+    IfcVehicleTypeEnum.CARGO = { type: 3, value: "CARGO" };
+    IfcVehicleTypeEnum.ROLLINGSTOCK = { type: 3, value: "ROLLINGSTOCK" };
+    IfcVehicleTypeEnum.VEHICLE = { type: 3, value: "VEHICLE" };
+    IfcVehicleTypeEnum.VEHICLEAIR = { type: 3, value: "VEHICLEAIR" };
+    IfcVehicleTypeEnum.VEHICLEMARINE = { type: 3, value: "VEHICLEMARINE" };
+    IfcVehicleTypeEnum.VEHICLETRACKED = { type: 3, value: "VEHICLETRACKED" };
+    IfcVehicleTypeEnum.VEHICLEWHEELED = { type: 3, value: "VEHICLEWHEELED" };
+    IfcVehicleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcVehicleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcVehicleTypeEnum = IfcVehicleTypeEnum;
+    class IfcVibrationDamperTypeEnum {
+    }
+    IfcVibrationDamperTypeEnum.AXIAL_YIELD = { type: 3, value: "AXIAL_YIELD" };
+    IfcVibrationDamperTypeEnum.BENDING_YIELD = { type: 3, value: "BENDING_YIELD" };
+    IfcVibrationDamperTypeEnum.FRICTION = { type: 3, value: "FRICTION" };
+    IfcVibrationDamperTypeEnum.RUBBER = { type: 3, value: "RUBBER" };
+    IfcVibrationDamperTypeEnum.SHEAR_YIELD = { type: 3, value: "SHEAR_YIELD" };
+    IfcVibrationDamperTypeEnum.VISCOUS = { type: 3, value: "VISCOUS" };
+    IfcVibrationDamperTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcVibrationDamperTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcVibrationDamperTypeEnum = IfcVibrationDamperTypeEnum;
+    class IfcVibrationIsolatorTypeEnum {
+    }
+    IfcVibrationIsolatorTypeEnum.BASE = { type: 3, value: "BASE" };
+    IfcVibrationIsolatorTypeEnum.COMPRESSION = { type: 3, value: "COMPRESSION" };
+    IfcVibrationIsolatorTypeEnum.SPRING = { type: 3, value: "SPRING" };
+    IfcVibrationIsolatorTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcVibrationIsolatorTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcVibrationIsolatorTypeEnum = IfcVibrationIsolatorTypeEnum;
+    class IfcVirtualElementTypeEnum {
+    }
+    IfcVirtualElementTypeEnum.BOUNDARY = { type: 3, value: "BOUNDARY" };
+    IfcVirtualElementTypeEnum.CLEARANCE = { type: 3, value: "CLEARANCE" };
+    IfcVirtualElementTypeEnum.PROVISIONFORVOID = { type: 3, value: "PROVISIONFORVOID" };
+    IfcVirtualElementTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcVirtualElementTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcVirtualElementTypeEnum = IfcVirtualElementTypeEnum;
+    class IfcVoidingFeatureTypeEnum {
+    }
+    IfcVoidingFeatureTypeEnum.CHAMFER = { type: 3, value: "CHAMFER" };
+    IfcVoidingFeatureTypeEnum.CUTOUT = { type: 3, value: "CUTOUT" };
+    IfcVoidingFeatureTypeEnum.EDGE = { type: 3, value: "EDGE" };
+    IfcVoidingFeatureTypeEnum.HOLE = { type: 3, value: "HOLE" };
+    IfcVoidingFeatureTypeEnum.MITER = { type: 3, value: "MITER" };
+    IfcVoidingFeatureTypeEnum.NOTCH = { type: 3, value: "NOTCH" };
+    IfcVoidingFeatureTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcVoidingFeatureTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcVoidingFeatureTypeEnum = IfcVoidingFeatureTypeEnum;
+    class IfcWallTypeEnum {
+    }
+    IfcWallTypeEnum.ELEMENTEDWALL = { type: 3, value: "ELEMENTEDWALL" };
+    IfcWallTypeEnum.MOVABLE = { type: 3, value: "MOVABLE" };
+    IfcWallTypeEnum.PARAPET = { type: 3, value: "PARAPET" };
+    IfcWallTypeEnum.PARTITIONING = { type: 3, value: "PARTITIONING" };
+    IfcWallTypeEnum.PLUMBINGWALL = { type: 3, value: "PLUMBINGWALL" };
+    IfcWallTypeEnum.POLYGONAL = { type: 3, value: "POLYGONAL" };
+    IfcWallTypeEnum.RETAININGWALL = { type: 3, value: "RETAININGWALL" };
+    IfcWallTypeEnum.SHEAR = { type: 3, value: "SHEAR" };
+    IfcWallTypeEnum.SOLIDWALL = { type: 3, value: "SOLIDWALL" };
+    IfcWallTypeEnum.STANDARD = { type: 3, value: "STANDARD" };
+    IfcWallTypeEnum.WAVEWALL = { type: 3, value: "WAVEWALL" };
+    IfcWallTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWallTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWallTypeEnum = IfcWallTypeEnum;
+    class IfcWasteTerminalTypeEnum {
+    }
+    IfcWasteTerminalTypeEnum.FLOORTRAP = { type: 3, value: "FLOORTRAP" };
+    IfcWasteTerminalTypeEnum.FLOORWASTE = { type: 3, value: "FLOORWASTE" };
+    IfcWasteTerminalTypeEnum.GULLYSUMP = { type: 3, value: "GULLYSUMP" };
+    IfcWasteTerminalTypeEnum.GULLYTRAP = { type: 3, value: "GULLYTRAP" };
+    IfcWasteTerminalTypeEnum.ROOFDRAIN = { type: 3, value: "ROOFDRAIN" };
+    IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT = { type: 3, value: "WASTEDISPOSALUNIT" };
+    IfcWasteTerminalTypeEnum.WASTETRAP = { type: 3, value: "WASTETRAP" };
+    IfcWasteTerminalTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWasteTerminalTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWasteTerminalTypeEnum = IfcWasteTerminalTypeEnum;
+    class IfcWindowPanelOperationEnum {
+    }
+    IfcWindowPanelOperationEnum.BOTTOMHUNG = { type: 3, value: "BOTTOMHUNG" };
+    IfcWindowPanelOperationEnum.FIXEDCASEMENT = { type: 3, value: "FIXEDCASEMENT" };
+    IfcWindowPanelOperationEnum.OTHEROPERATION = { type: 3, value: "OTHEROPERATION" };
+    IfcWindowPanelOperationEnum.PIVOTHORIZONTAL = { type: 3, value: "PIVOTHORIZONTAL" };
+    IfcWindowPanelOperationEnum.PIVOTVERTICAL = { type: 3, value: "PIVOTVERTICAL" };
+    IfcWindowPanelOperationEnum.REMOVABLECASEMENT = { type: 3, value: "REMOVABLECASEMENT" };
+    IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND = { type: 3, value: "SIDEHUNGLEFTHAND" };
+    IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND = { type: 3, value: "SIDEHUNGRIGHTHAND" };
+    IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL = { type: 3, value: "SLIDINGHORIZONTAL" };
+    IfcWindowPanelOperationEnum.SLIDINGVERTICAL = { type: 3, value: "SLIDINGVERTICAL" };
+    IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND = { type: 3, value: "TILTANDTURNLEFTHAND" };
+    IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND = { type: 3, value: "TILTANDTURNRIGHTHAND" };
+    IfcWindowPanelOperationEnum.TOPHUNG = { type: 3, value: "TOPHUNG" };
+    IfcWindowPanelOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWindowPanelOperationEnum = IfcWindowPanelOperationEnum;
+    class IfcWindowPanelPositionEnum {
+    }
+    IfcWindowPanelPositionEnum.BOTTOM = { type: 3, value: "BOTTOM" };
+    IfcWindowPanelPositionEnum.LEFT = { type: 3, value: "LEFT" };
+    IfcWindowPanelPositionEnum.MIDDLE = { type: 3, value: "MIDDLE" };
+    IfcWindowPanelPositionEnum.RIGHT = { type: 3, value: "RIGHT" };
+    IfcWindowPanelPositionEnum.TOP = { type: 3, value: "TOP" };
+    IfcWindowPanelPositionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWindowPanelPositionEnum = IfcWindowPanelPositionEnum;
+    class IfcWindowStyleConstructionEnum {
+    }
+    IfcWindowStyleConstructionEnum.ALUMINIUM = { type: 3, value: "ALUMINIUM" };
+    IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD = { type: 3, value: "ALUMINIUM_WOOD" };
+    IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL = { type: 3, value: "HIGH_GRADE_STEEL" };
+    IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION = { type: 3, value: "OTHER_CONSTRUCTION" };
+    IfcWindowStyleConstructionEnum.PLASTIC = { type: 3, value: "PLASTIC" };
+    IfcWindowStyleConstructionEnum.STEEL = { type: 3, value: "STEEL" };
+    IfcWindowStyleConstructionEnum.WOOD = { type: 3, value: "WOOD" };
+    IfcWindowStyleConstructionEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWindowStyleConstructionEnum = IfcWindowStyleConstructionEnum;
+    class IfcWindowStyleOperationEnum {
+    }
+    IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" };
+    IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" };
+    IfcWindowStyleOperationEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" };
+    IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" };
+    IfcWindowStyleOperationEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWindowStyleOperationEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWindowStyleOperationEnum = IfcWindowStyleOperationEnum;
+    class IfcWindowTypeEnum {
+    }
+    IfcWindowTypeEnum.LIGHTDOME = { type: 3, value: "LIGHTDOME" };
+    IfcWindowTypeEnum.SKYLIGHT = { type: 3, value: "SKYLIGHT" };
+    IfcWindowTypeEnum.WINDOW = { type: 3, value: "WINDOW" };
+    IfcWindowTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWindowTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWindowTypeEnum = IfcWindowTypeEnum;
+    class IfcWindowTypePartitioningEnum {
+    }
+    IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL = { type: 3, value: "DOUBLE_PANEL_HORIZONTAL" };
+    IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL = { type: 3, value: "DOUBLE_PANEL_VERTICAL" };
+    IfcWindowTypePartitioningEnum.SINGLE_PANEL = { type: 3, value: "SINGLE_PANEL" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM = { type: 3, value: "TRIPLE_PANEL_BOTTOM" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL = { type: 3, value: "TRIPLE_PANEL_HORIZONTAL" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT = { type: 3, value: "TRIPLE_PANEL_LEFT" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT = { type: 3, value: "TRIPLE_PANEL_RIGHT" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP = { type: 3, value: "TRIPLE_PANEL_TOP" };
+    IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL = { type: 3, value: "TRIPLE_PANEL_VERTICAL" };
+    IfcWindowTypePartitioningEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWindowTypePartitioningEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWindowTypePartitioningEnum = IfcWindowTypePartitioningEnum;
+    class IfcWorkCalendarTypeEnum {
+    }
+    IfcWorkCalendarTypeEnum.FIRSTSHIFT = { type: 3, value: "FIRSTSHIFT" };
+    IfcWorkCalendarTypeEnum.SECONDSHIFT = { type: 3, value: "SECONDSHIFT" };
+    IfcWorkCalendarTypeEnum.THIRDSHIFT = { type: 3, value: "THIRDSHIFT" };
+    IfcWorkCalendarTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWorkCalendarTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWorkCalendarTypeEnum = IfcWorkCalendarTypeEnum;
+    class IfcWorkPlanTypeEnum {
+    }
+    IfcWorkPlanTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" };
+    IfcWorkPlanTypeEnum.BASELINE = { type: 3, value: "BASELINE" };
+    IfcWorkPlanTypeEnum.PLANNED = { type: 3, value: "PLANNED" };
+    IfcWorkPlanTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWorkPlanTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWorkPlanTypeEnum = IfcWorkPlanTypeEnum;
+    class IfcWorkScheduleTypeEnum {
+    }
+    IfcWorkScheduleTypeEnum.ACTUAL = { type: 3, value: "ACTUAL" };
+    IfcWorkScheduleTypeEnum.BASELINE = { type: 3, value: "BASELINE" };
+    IfcWorkScheduleTypeEnum.PLANNED = { type: 3, value: "PLANNED" };
+    IfcWorkScheduleTypeEnum.USERDEFINED = { type: 3, value: "USERDEFINED" };
+    IfcWorkScheduleTypeEnum.NOTDEFINED = { type: 3, value: "NOTDEFINED" };
+    IFC4X32.IfcWorkScheduleTypeEnum = IfcWorkScheduleTypeEnum;
+    class IfcActorRole extends IfcLineObject {
+      constructor(Role, UserDefinedRole, Description) {
+        super();
+        this.Role = Role;
+        this.UserDefinedRole = UserDefinedRole;
+        this.Description = Description;
+        this.type = 3630933823;
+      }
+    }
+    IFC4X32.IfcActorRole = IfcActorRole;
+    class IfcAddress extends IfcLineObject {
+      constructor(Purpose, Description, UserDefinedPurpose) {
+        super();
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.type = 618182010;
+      }
+    }
+    IFC4X32.IfcAddress = IfcAddress;
+    class IfcAlignmentParameterSegment extends IfcLineObject {
+      constructor(StartTag, EndTag) {
+        super();
+        this.StartTag = StartTag;
+        this.EndTag = EndTag;
+        this.type = 2879124712;
+      }
+    }
+    IFC4X32.IfcAlignmentParameterSegment = IfcAlignmentParameterSegment;
+    class IfcAlignmentVerticalSegment extends IfcAlignmentParameterSegment {
+      constructor(StartTag, EndTag, StartDistAlong, HorizontalLength, StartHeight, StartGradient, EndGradient, RadiusOfCurvature, PredefinedType) {
+        super(StartTag, EndTag);
+        this.StartTag = StartTag;
+        this.EndTag = EndTag;
+        this.StartDistAlong = StartDistAlong;
+        this.HorizontalLength = HorizontalLength;
+        this.StartHeight = StartHeight;
+        this.StartGradient = StartGradient;
+        this.EndGradient = EndGradient;
+        this.RadiusOfCurvature = RadiusOfCurvature;
+        this.PredefinedType = PredefinedType;
+        this.type = 3633395639;
+      }
+    }
+    IFC4X32.IfcAlignmentVerticalSegment = IfcAlignmentVerticalSegment;
+    class IfcApplication extends IfcLineObject {
+      constructor(ApplicationDeveloper, Version, ApplicationFullName, ApplicationIdentifier) {
+        super();
+        this.ApplicationDeveloper = ApplicationDeveloper;
+        this.Version = Version;
+        this.ApplicationFullName = ApplicationFullName;
+        this.ApplicationIdentifier = ApplicationIdentifier;
+        this.type = 639542469;
+      }
+    }
+    IFC4X32.IfcApplication = IfcApplication;
+    class IfcAppliedValue extends IfcLineObject {
+      constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.AppliedValue = AppliedValue;
+        this.UnitBasis = UnitBasis;
+        this.ApplicableDate = ApplicableDate;
+        this.FixedUntilDate = FixedUntilDate;
+        this.Category = Category;
+        this.Condition = Condition;
+        this.ArithmeticOperator = ArithmeticOperator;
+        this.Components = Components;
+        this.type = 411424972;
+      }
+    }
+    IFC4X32.IfcAppliedValue = IfcAppliedValue;
+    class IfcApproval extends IfcLineObject {
+      constructor(Identifier, Name, Description, TimeOfApproval, Status, Level, Qualifier, RequestingApproval, GivingApproval) {
+        super();
+        this.Identifier = Identifier;
+        this.Name = Name;
+        this.Description = Description;
+        this.TimeOfApproval = TimeOfApproval;
+        this.Status = Status;
+        this.Level = Level;
+        this.Qualifier = Qualifier;
+        this.RequestingApproval = RequestingApproval;
+        this.GivingApproval = GivingApproval;
+        this.type = 130549933;
+      }
+    }
+    IFC4X32.IfcApproval = IfcApproval;
+    class IfcBoundaryCondition extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 4037036970;
+      }
+    }
+    IFC4X32.IfcBoundaryCondition = IfcBoundaryCondition;
+    class IfcBoundaryEdgeCondition extends IfcBoundaryCondition {
+      constructor(Name, TranslationalStiffnessByLengthX, TranslationalStiffnessByLengthY, TranslationalStiffnessByLengthZ, RotationalStiffnessByLengthX, RotationalStiffnessByLengthY, RotationalStiffnessByLengthZ) {
+        super(Name);
+        this.Name = Name;
+        this.TranslationalStiffnessByLengthX = TranslationalStiffnessByLengthX;
+        this.TranslationalStiffnessByLengthY = TranslationalStiffnessByLengthY;
+        this.TranslationalStiffnessByLengthZ = TranslationalStiffnessByLengthZ;
+        this.RotationalStiffnessByLengthX = RotationalStiffnessByLengthX;
+        this.RotationalStiffnessByLengthY = RotationalStiffnessByLengthY;
+        this.RotationalStiffnessByLengthZ = RotationalStiffnessByLengthZ;
+        this.type = 1560379544;
+      }
+    }
+    IFC4X32.IfcBoundaryEdgeCondition = IfcBoundaryEdgeCondition;
+    class IfcBoundaryFaceCondition extends IfcBoundaryCondition {
+      constructor(Name, TranslationalStiffnessByAreaX, TranslationalStiffnessByAreaY, TranslationalStiffnessByAreaZ) {
+        super(Name);
+        this.Name = Name;
+        this.TranslationalStiffnessByAreaX = TranslationalStiffnessByAreaX;
+        this.TranslationalStiffnessByAreaY = TranslationalStiffnessByAreaY;
+        this.TranslationalStiffnessByAreaZ = TranslationalStiffnessByAreaZ;
+        this.type = 3367102660;
+      }
+    }
+    IFC4X32.IfcBoundaryFaceCondition = IfcBoundaryFaceCondition;
+    class IfcBoundaryNodeCondition extends IfcBoundaryCondition {
+      constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ) {
+        super(Name);
+        this.Name = Name;
+        this.TranslationalStiffnessX = TranslationalStiffnessX;
+        this.TranslationalStiffnessY = TranslationalStiffnessY;
+        this.TranslationalStiffnessZ = TranslationalStiffnessZ;
+        this.RotationalStiffnessX = RotationalStiffnessX;
+        this.RotationalStiffnessY = RotationalStiffnessY;
+        this.RotationalStiffnessZ = RotationalStiffnessZ;
+        this.type = 1387855156;
+      }
+    }
+    IFC4X32.IfcBoundaryNodeCondition = IfcBoundaryNodeCondition;
+    class IfcBoundaryNodeConditionWarping extends IfcBoundaryNodeCondition {
+      constructor(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ, WarpingStiffness) {
+        super(Name, TranslationalStiffnessX, TranslationalStiffnessY, TranslationalStiffnessZ, RotationalStiffnessX, RotationalStiffnessY, RotationalStiffnessZ);
+        this.Name = Name;
+        this.TranslationalStiffnessX = TranslationalStiffnessX;
+        this.TranslationalStiffnessY = TranslationalStiffnessY;
+        this.TranslationalStiffnessZ = TranslationalStiffnessZ;
+        this.RotationalStiffnessX = RotationalStiffnessX;
+        this.RotationalStiffnessY = RotationalStiffnessY;
+        this.RotationalStiffnessZ = RotationalStiffnessZ;
+        this.WarpingStiffness = WarpingStiffness;
+        this.type = 2069777674;
+      }
+    }
+    IFC4X32.IfcBoundaryNodeConditionWarping = IfcBoundaryNodeConditionWarping;
+    class IfcConnectionGeometry extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 2859738748;
+      }
+    }
+    IFC4X32.IfcConnectionGeometry = IfcConnectionGeometry;
+    class IfcConnectionPointGeometry extends IfcConnectionGeometry {
+      constructor(PointOnRelatingElement, PointOnRelatedElement) {
+        super();
+        this.PointOnRelatingElement = PointOnRelatingElement;
+        this.PointOnRelatedElement = PointOnRelatedElement;
+        this.type = 2614616156;
+      }
+    }
+    IFC4X32.IfcConnectionPointGeometry = IfcConnectionPointGeometry;
+    class IfcConnectionSurfaceGeometry extends IfcConnectionGeometry {
+      constructor(SurfaceOnRelatingElement, SurfaceOnRelatedElement) {
+        super();
+        this.SurfaceOnRelatingElement = SurfaceOnRelatingElement;
+        this.SurfaceOnRelatedElement = SurfaceOnRelatedElement;
+        this.type = 2732653382;
+      }
+    }
+    IFC4X32.IfcConnectionSurfaceGeometry = IfcConnectionSurfaceGeometry;
+    class IfcConnectionVolumeGeometry extends IfcConnectionGeometry {
+      constructor(VolumeOnRelatingElement, VolumeOnRelatedElement) {
+        super();
+        this.VolumeOnRelatingElement = VolumeOnRelatingElement;
+        this.VolumeOnRelatedElement = VolumeOnRelatedElement;
+        this.type = 775493141;
+      }
+    }
+    IFC4X32.IfcConnectionVolumeGeometry = IfcConnectionVolumeGeometry;
+    class IfcConstraint extends IfcLineObject {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.type = 1959218052;
+      }
+    }
+    IFC4X32.IfcConstraint = IfcConstraint;
+    class IfcCoordinateOperation extends IfcLineObject {
+      constructor(SourceCRS, TargetCRS) {
+        super();
+        this.SourceCRS = SourceCRS;
+        this.TargetCRS = TargetCRS;
+        this.type = 1785450214;
+      }
+    }
+    IFC4X32.IfcCoordinateOperation = IfcCoordinateOperation;
+    class IfcCoordinateReferenceSystem extends IfcLineObject {
+      constructor(Name, Description, GeodeticDatum, VerticalDatum) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.GeodeticDatum = GeodeticDatum;
+        this.VerticalDatum = VerticalDatum;
+        this.type = 1466758467;
+      }
+    }
+    IFC4X32.IfcCoordinateReferenceSystem = IfcCoordinateReferenceSystem;
+    class IfcCostValue extends IfcAppliedValue {
+      constructor(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components) {
+        super(Name, Description, AppliedValue, UnitBasis, ApplicableDate, FixedUntilDate, Category, Condition, ArithmeticOperator, Components);
+        this.Name = Name;
+        this.Description = Description;
+        this.AppliedValue = AppliedValue;
+        this.UnitBasis = UnitBasis;
+        this.ApplicableDate = ApplicableDate;
+        this.FixedUntilDate = FixedUntilDate;
+        this.Category = Category;
+        this.Condition = Condition;
+        this.ArithmeticOperator = ArithmeticOperator;
+        this.Components = Components;
+        this.type = 602808272;
+      }
+    }
+    IFC4X32.IfcCostValue = IfcCostValue;
+    class IfcDerivedUnit extends IfcLineObject {
+      constructor(Elements, UnitType, UserDefinedType, Name) {
+        super();
+        this.Elements = Elements;
+        this.UnitType = UnitType;
+        this.UserDefinedType = UserDefinedType;
+        this.Name = Name;
+        this.type = 1765591967;
+      }
+    }
+    IFC4X32.IfcDerivedUnit = IfcDerivedUnit;
+    class IfcDerivedUnitElement extends IfcLineObject {
+      constructor(Unit, Exponent) {
+        super();
+        this.Unit = Unit;
+        this.Exponent = Exponent;
+        this.type = 1045800335;
+      }
+    }
+    IFC4X32.IfcDerivedUnitElement = IfcDerivedUnitElement;
+    class IfcDimensionalExponents extends IfcLineObject {
+      constructor(LengthExponent, MassExponent, TimeExponent, ElectricCurrentExponent, ThermodynamicTemperatureExponent, AmountOfSubstanceExponent, LuminousIntensityExponent) {
+        super();
+        this.LengthExponent = LengthExponent;
+        this.MassExponent = MassExponent;
+        this.TimeExponent = TimeExponent;
+        this.ElectricCurrentExponent = ElectricCurrentExponent;
+        this.ThermodynamicTemperatureExponent = ThermodynamicTemperatureExponent;
+        this.AmountOfSubstanceExponent = AmountOfSubstanceExponent;
+        this.LuminousIntensityExponent = LuminousIntensityExponent;
+        this.type = 2949456006;
+      }
+    }
+    IFC4X32.IfcDimensionalExponents = IfcDimensionalExponents;
+    class IfcExternalInformation extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 4294318154;
+      }
+    }
+    IFC4X32.IfcExternalInformation = IfcExternalInformation;
+    class IfcExternalReference extends IfcLineObject {
+      constructor(Location, Identification, Name) {
+        super();
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.type = 3200245327;
+      }
+    }
+    IFC4X32.IfcExternalReference = IfcExternalReference;
+    class IfcExternallyDefinedHatchStyle extends IfcExternalReference {
+      constructor(Location, Identification, Name) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.type = 2242383968;
+      }
+    }
+    IFC4X32.IfcExternallyDefinedHatchStyle = IfcExternallyDefinedHatchStyle;
+    class IfcExternallyDefinedSurfaceStyle extends IfcExternalReference {
+      constructor(Location, Identification, Name) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.type = 1040185647;
+      }
+    }
+    IFC4X32.IfcExternallyDefinedSurfaceStyle = IfcExternallyDefinedSurfaceStyle;
+    class IfcExternallyDefinedTextFont extends IfcExternalReference {
+      constructor(Location, Identification, Name) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.type = 3548104201;
+      }
+    }
+    IFC4X32.IfcExternallyDefinedTextFont = IfcExternallyDefinedTextFont;
+    class IfcGridAxis extends IfcLineObject {
+      constructor(AxisTag, AxisCurve, SameSense) {
+        super();
+        this.AxisTag = AxisTag;
+        this.AxisCurve = AxisCurve;
+        this.SameSense = SameSense;
+        this.type = 852622518;
+      }
+    }
+    IFC4X32.IfcGridAxis = IfcGridAxis;
+    class IfcIrregularTimeSeriesValue extends IfcLineObject {
+      constructor(TimeStamp, ListValues) {
+        super();
+        this.TimeStamp = TimeStamp;
+        this.ListValues = ListValues;
+        this.type = 3020489413;
+      }
+    }
+    IFC4X32.IfcIrregularTimeSeriesValue = IfcIrregularTimeSeriesValue;
+    class IfcLibraryInformation extends IfcExternalInformation {
+      constructor(Name, Version, Publisher, VersionDate, Location, Description) {
+        super();
+        this.Name = Name;
+        this.Version = Version;
+        this.Publisher = Publisher;
+        this.VersionDate = VersionDate;
+        this.Location = Location;
+        this.Description = Description;
+        this.type = 2655187982;
+      }
+    }
+    IFC4X32.IfcLibraryInformation = IfcLibraryInformation;
+    class IfcLibraryReference extends IfcExternalReference {
+      constructor(Location, Identification, Name, Description, Language, ReferencedLibrary) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.Description = Description;
+        this.Language = Language;
+        this.ReferencedLibrary = ReferencedLibrary;
+        this.type = 3452421091;
+      }
+    }
+    IFC4X32.IfcLibraryReference = IfcLibraryReference;
+    class IfcLightDistributionData extends IfcLineObject {
+      constructor(MainPlaneAngle, SecondaryPlaneAngle, LuminousIntensity) {
+        super();
+        this.MainPlaneAngle = MainPlaneAngle;
+        this.SecondaryPlaneAngle = SecondaryPlaneAngle;
+        this.LuminousIntensity = LuminousIntensity;
+        this.type = 4162380809;
+      }
+    }
+    IFC4X32.IfcLightDistributionData = IfcLightDistributionData;
+    class IfcLightIntensityDistribution extends IfcLineObject {
+      constructor(LightDistributionCurve, DistributionData) {
+        super();
+        this.LightDistributionCurve = LightDistributionCurve;
+        this.DistributionData = DistributionData;
+        this.type = 1566485204;
+      }
+    }
+    IFC4X32.IfcLightIntensityDistribution = IfcLightIntensityDistribution;
+    class IfcMapConversion extends IfcCoordinateOperation {
+      constructor(SourceCRS, TargetCRS, Eastings, Northings, OrthogonalHeight, XAxisAbscissa, XAxisOrdinate, Scale, ScaleY, ScaleZ) {
+        super(SourceCRS, TargetCRS);
+        this.SourceCRS = SourceCRS;
+        this.TargetCRS = TargetCRS;
+        this.Eastings = Eastings;
+        this.Northings = Northings;
+        this.OrthogonalHeight = OrthogonalHeight;
+        this.XAxisAbscissa = XAxisAbscissa;
+        this.XAxisOrdinate = XAxisOrdinate;
+        this.Scale = Scale;
+        this.ScaleY = ScaleY;
+        this.ScaleZ = ScaleZ;
+        this.type = 3057273783;
+      }
+    }
+    IFC4X32.IfcMapConversion = IfcMapConversion;
+    class IfcMaterialClassificationRelationship extends IfcLineObject {
+      constructor(MaterialClassifications, ClassifiedMaterial) {
+        super();
+        this.MaterialClassifications = MaterialClassifications;
+        this.ClassifiedMaterial = ClassifiedMaterial;
+        this.type = 1847130766;
+      }
+    }
+    IFC4X32.IfcMaterialClassificationRelationship = IfcMaterialClassificationRelationship;
+    class IfcMaterialDefinition extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 760658860;
+      }
+    }
+    IFC4X32.IfcMaterialDefinition = IfcMaterialDefinition;
+    class IfcMaterialLayer extends IfcMaterialDefinition {
+      constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority) {
+        super();
+        this.Material = Material;
+        this.LayerThickness = LayerThickness;
+        this.IsVentilated = IsVentilated;
+        this.Name = Name;
+        this.Description = Description;
+        this.Category = Category;
+        this.Priority = Priority;
+        this.type = 248100487;
+      }
+    }
+    IFC4X32.IfcMaterialLayer = IfcMaterialLayer;
+    class IfcMaterialLayerSet extends IfcMaterialDefinition {
+      constructor(MaterialLayers, LayerSetName, Description) {
+        super();
+        this.MaterialLayers = MaterialLayers;
+        this.LayerSetName = LayerSetName;
+        this.Description = Description;
+        this.type = 3303938423;
+      }
+    }
+    IFC4X32.IfcMaterialLayerSet = IfcMaterialLayerSet;
+    class IfcMaterialLayerWithOffsets extends IfcMaterialLayer {
+      constructor(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority, OffsetDirection, OffsetValues) {
+        super(Material, LayerThickness, IsVentilated, Name, Description, Category, Priority);
+        this.Material = Material;
+        this.LayerThickness = LayerThickness;
+        this.IsVentilated = IsVentilated;
+        this.Name = Name;
+        this.Description = Description;
+        this.Category = Category;
+        this.Priority = Priority;
+        this.OffsetDirection = OffsetDirection;
+        this.OffsetValues = OffsetValues;
+        this.type = 1847252529;
+      }
+    }
+    IFC4X32.IfcMaterialLayerWithOffsets = IfcMaterialLayerWithOffsets;
+    class IfcMaterialList extends IfcLineObject {
+      constructor(Materials) {
+        super();
+        this.Materials = Materials;
+        this.type = 2199411900;
+      }
+    }
+    IFC4X32.IfcMaterialList = IfcMaterialList;
+    class IfcMaterialProfile extends IfcMaterialDefinition {
+      constructor(Name, Description, Material, Profile, Priority, Category) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Material = Material;
+        this.Profile = Profile;
+        this.Priority = Priority;
+        this.Category = Category;
+        this.type = 2235152071;
+      }
+    }
+    IFC4X32.IfcMaterialProfile = IfcMaterialProfile;
+    class IfcMaterialProfileSet extends IfcMaterialDefinition {
+      constructor(Name, Description, MaterialProfiles, CompositeProfile) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.MaterialProfiles = MaterialProfiles;
+        this.CompositeProfile = CompositeProfile;
+        this.type = 164193824;
+      }
+    }
+    IFC4X32.IfcMaterialProfileSet = IfcMaterialProfileSet;
+    class IfcMaterialProfileWithOffsets extends IfcMaterialProfile {
+      constructor(Name, Description, Material, Profile, Priority, Category, OffsetValues) {
+        super(Name, Description, Material, Profile, Priority, Category);
+        this.Name = Name;
+        this.Description = Description;
+        this.Material = Material;
+        this.Profile = Profile;
+        this.Priority = Priority;
+        this.Category = Category;
+        this.OffsetValues = OffsetValues;
+        this.type = 552965576;
+      }
+    }
+    IFC4X32.IfcMaterialProfileWithOffsets = IfcMaterialProfileWithOffsets;
+    class IfcMaterialUsageDefinition extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 1507914824;
+      }
+    }
+    IFC4X32.IfcMaterialUsageDefinition = IfcMaterialUsageDefinition;
+    class IfcMeasureWithUnit extends IfcLineObject {
+      constructor(ValueComponent, UnitComponent) {
+        super();
+        this.ValueComponent = ValueComponent;
+        this.UnitComponent = UnitComponent;
+        this.type = 2597039031;
+      }
+    }
+    IFC4X32.IfcMeasureWithUnit = IfcMeasureWithUnit;
+    class IfcMetric extends IfcConstraint {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, Benchmark, ValueSource, DataValue, ReferencePath) {
+        super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.Benchmark = Benchmark;
+        this.ValueSource = ValueSource;
+        this.DataValue = DataValue;
+        this.ReferencePath = ReferencePath;
+        this.type = 3368373690;
+      }
+    }
+    IFC4X32.IfcMetric = IfcMetric;
+    class IfcMonetaryUnit extends IfcLineObject {
+      constructor(Currency) {
+        super();
+        this.Currency = Currency;
+        this.type = 2706619895;
+      }
+    }
+    IFC4X32.IfcMonetaryUnit = IfcMonetaryUnit;
+    class IfcNamedUnit extends IfcLineObject {
+      constructor(Dimensions, UnitType) {
+        super();
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.type = 1918398963;
+      }
+    }
+    IFC4X32.IfcNamedUnit = IfcNamedUnit;
+    class IfcObjectPlacement extends IfcLineObject {
+      constructor(PlacementRelTo) {
+        super();
+        this.PlacementRelTo = PlacementRelTo;
+        this.type = 3701648758;
+      }
+    }
+    IFC4X32.IfcObjectPlacement = IfcObjectPlacement;
+    class IfcObjective extends IfcConstraint {
+      constructor(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade, BenchmarkValues, LogicalAggregator, ObjectiveQualifier, UserDefinedQualifier) {
+        super(Name, Description, ConstraintGrade, ConstraintSource, CreatingActor, CreationTime, UserDefinedGrade);
+        this.Name = Name;
+        this.Description = Description;
+        this.ConstraintGrade = ConstraintGrade;
+        this.ConstraintSource = ConstraintSource;
+        this.CreatingActor = CreatingActor;
+        this.CreationTime = CreationTime;
+        this.UserDefinedGrade = UserDefinedGrade;
+        this.BenchmarkValues = BenchmarkValues;
+        this.LogicalAggregator = LogicalAggregator;
+        this.ObjectiveQualifier = ObjectiveQualifier;
+        this.UserDefinedQualifier = UserDefinedQualifier;
+        this.type = 2251480897;
+      }
+    }
+    IFC4X32.IfcObjective = IfcObjective;
+    class IfcOrganization extends IfcLineObject {
+      constructor(Identification, Name, Description, Roles, Addresses) {
+        super();
+        this.Identification = Identification;
+        this.Name = Name;
+        this.Description = Description;
+        this.Roles = Roles;
+        this.Addresses = Addresses;
+        this.type = 4251960020;
+      }
+    }
+    IFC4X32.IfcOrganization = IfcOrganization;
+    class IfcOwnerHistory extends IfcLineObject {
+      constructor(OwningUser, OwningApplication, State, ChangeAction, LastModifiedDate, LastModifyingUser, LastModifyingApplication, CreationDate) {
+        super();
+        this.OwningUser = OwningUser;
+        this.OwningApplication = OwningApplication;
+        this.State = State;
+        this.ChangeAction = ChangeAction;
+        this.LastModifiedDate = LastModifiedDate;
+        this.LastModifyingUser = LastModifyingUser;
+        this.LastModifyingApplication = LastModifyingApplication;
+        this.CreationDate = CreationDate;
+        this.type = 1207048766;
+      }
+    }
+    IFC4X32.IfcOwnerHistory = IfcOwnerHistory;
+    class IfcPerson extends IfcLineObject {
+      constructor(Identification, FamilyName, GivenName, MiddleNames, PrefixTitles, SuffixTitles, Roles, Addresses) {
+        super();
+        this.Identification = Identification;
+        this.FamilyName = FamilyName;
+        this.GivenName = GivenName;
+        this.MiddleNames = MiddleNames;
+        this.PrefixTitles = PrefixTitles;
+        this.SuffixTitles = SuffixTitles;
+        this.Roles = Roles;
+        this.Addresses = Addresses;
+        this.type = 2077209135;
+      }
+    }
+    IFC4X32.IfcPerson = IfcPerson;
+    class IfcPersonAndOrganization extends IfcLineObject {
+      constructor(ThePerson, TheOrganization, Roles) {
+        super();
+        this.ThePerson = ThePerson;
+        this.TheOrganization = TheOrganization;
+        this.Roles = Roles;
+        this.type = 101040310;
+      }
+    }
+    IFC4X32.IfcPersonAndOrganization = IfcPersonAndOrganization;
+    class IfcPhysicalQuantity extends IfcLineObject {
+      constructor(Name, Description) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2483315170;
+      }
+    }
+    IFC4X32.IfcPhysicalQuantity = IfcPhysicalQuantity;
+    class IfcPhysicalSimpleQuantity extends IfcPhysicalQuantity {
+      constructor(Name, Description, Unit) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.type = 2226359599;
+      }
+    }
+    IFC4X32.IfcPhysicalSimpleQuantity = IfcPhysicalSimpleQuantity;
+    class IfcPostalAddress extends IfcAddress {
+      constructor(Purpose, Description, UserDefinedPurpose, InternalLocation, AddressLines, PostalBox, Town, Region, PostalCode, Country) {
+        super(Purpose, Description, UserDefinedPurpose);
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.InternalLocation = InternalLocation;
+        this.AddressLines = AddressLines;
+        this.PostalBox = PostalBox;
+        this.Town = Town;
+        this.Region = Region;
+        this.PostalCode = PostalCode;
+        this.Country = Country;
+        this.type = 3355820592;
+      }
+    }
+    IFC4X32.IfcPostalAddress = IfcPostalAddress;
+    class IfcPresentationItem extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 677532197;
+      }
+    }
+    IFC4X32.IfcPresentationItem = IfcPresentationItem;
+    class IfcPresentationLayerAssignment extends IfcLineObject {
+      constructor(Name, Description, AssignedItems, Identifier) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.AssignedItems = AssignedItems;
+        this.Identifier = Identifier;
+        this.type = 2022622350;
+      }
+    }
+    IFC4X32.IfcPresentationLayerAssignment = IfcPresentationLayerAssignment;
+    class IfcPresentationLayerWithStyle extends IfcPresentationLayerAssignment {
+      constructor(Name, Description, AssignedItems, Identifier, LayerOn, LayerFrozen, LayerBlocked, LayerStyles) {
+        super(Name, Description, AssignedItems, Identifier);
+        this.Name = Name;
+        this.Description = Description;
+        this.AssignedItems = AssignedItems;
+        this.Identifier = Identifier;
+        this.LayerOn = LayerOn;
+        this.LayerFrozen = LayerFrozen;
+        this.LayerBlocked = LayerBlocked;
+        this.LayerStyles = LayerStyles;
+        this.type = 1304840413;
+      }
+    }
+    IFC4X32.IfcPresentationLayerWithStyle = IfcPresentationLayerWithStyle;
+    class IfcPresentationStyle extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3119450353;
+      }
+    }
+    IFC4X32.IfcPresentationStyle = IfcPresentationStyle;
+    class IfcProductRepresentation extends IfcLineObject {
+      constructor(Name, Description, Representations) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.type = 2095639259;
+      }
+    }
+    IFC4X32.IfcProductRepresentation = IfcProductRepresentation;
+    class IfcProfileDef extends IfcLineObject {
+      constructor(ProfileType, ProfileName) {
+        super();
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.type = 3958567839;
+      }
+    }
+    IFC4X32.IfcProfileDef = IfcProfileDef;
+    class IfcProjectedCRS extends IfcCoordinateReferenceSystem {
+      constructor(Name, Description, GeodeticDatum, VerticalDatum, MapProjection, MapZone, MapUnit) {
+        super(Name, Description, GeodeticDatum, VerticalDatum);
+        this.Name = Name;
+        this.Description = Description;
+        this.GeodeticDatum = GeodeticDatum;
+        this.VerticalDatum = VerticalDatum;
+        this.MapProjection = MapProjection;
+        this.MapZone = MapZone;
+        this.MapUnit = MapUnit;
+        this.type = 3843373140;
+      }
+    }
+    IFC4X32.IfcProjectedCRS = IfcProjectedCRS;
+    class IfcPropertyAbstraction extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 986844984;
+      }
+    }
+    IFC4X32.IfcPropertyAbstraction = IfcPropertyAbstraction;
+    class IfcPropertyEnumeration extends IfcPropertyAbstraction {
+      constructor(Name, EnumerationValues, Unit) {
+        super();
+        this.Name = Name;
+        this.EnumerationValues = EnumerationValues;
+        this.Unit = Unit;
+        this.type = 3710013099;
+      }
+    }
+    IFC4X32.IfcPropertyEnumeration = IfcPropertyEnumeration;
+    class IfcQuantityArea extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, AreaValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.AreaValue = AreaValue;
+        this.Formula = Formula;
+        this.type = 2044713172;
+      }
+    }
+    IFC4X32.IfcQuantityArea = IfcQuantityArea;
+    class IfcQuantityCount extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, CountValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.CountValue = CountValue;
+        this.Formula = Formula;
+        this.type = 2093928680;
+      }
+    }
+    IFC4X32.IfcQuantityCount = IfcQuantityCount;
+    class IfcQuantityLength extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, LengthValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.LengthValue = LengthValue;
+        this.Formula = Formula;
+        this.type = 931644368;
+      }
+    }
+    IFC4X32.IfcQuantityLength = IfcQuantityLength;
+    class IfcQuantityNumber extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, NumberValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.NumberValue = NumberValue;
+        this.Formula = Formula;
+        this.type = 2691318326;
+      }
+    }
+    IFC4X32.IfcQuantityNumber = IfcQuantityNumber;
+    class IfcQuantityTime extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, TimeValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.TimeValue = TimeValue;
+        this.Formula = Formula;
+        this.type = 3252649465;
+      }
+    }
+    IFC4X32.IfcQuantityTime = IfcQuantityTime;
+    class IfcQuantityVolume extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, VolumeValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.VolumeValue = VolumeValue;
+        this.Formula = Formula;
+        this.type = 2405470396;
+      }
+    }
+    IFC4X32.IfcQuantityVolume = IfcQuantityVolume;
+    class IfcQuantityWeight extends IfcPhysicalSimpleQuantity {
+      constructor(Name, Description, Unit, WeightValue, Formula) {
+        super(Name, Description, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.WeightValue = WeightValue;
+        this.Formula = Formula;
+        this.type = 825690147;
+      }
+    }
+    IFC4X32.IfcQuantityWeight = IfcQuantityWeight;
+    class IfcRecurrencePattern extends IfcLineObject {
+      constructor(RecurrenceType, DayComponent, WeekdayComponent, MonthComponent, Position, Interval, Occurrences, TimePeriods) {
+        super();
+        this.RecurrenceType = RecurrenceType;
+        this.DayComponent = DayComponent;
+        this.WeekdayComponent = WeekdayComponent;
+        this.MonthComponent = MonthComponent;
+        this.Position = Position;
+        this.Interval = Interval;
+        this.Occurrences = Occurrences;
+        this.TimePeriods = TimePeriods;
+        this.type = 3915482550;
+      }
+    }
+    IFC4X32.IfcRecurrencePattern = IfcRecurrencePattern;
+    class IfcReference extends IfcLineObject {
+      constructor(TypeIdentifier, AttributeIdentifier, InstanceName, ListPositions, InnerReference) {
+        super();
+        this.TypeIdentifier = TypeIdentifier;
+        this.AttributeIdentifier = AttributeIdentifier;
+        this.InstanceName = InstanceName;
+        this.ListPositions = ListPositions;
+        this.InnerReference = InnerReference;
+        this.type = 2433181523;
+      }
+    }
+    IFC4X32.IfcReference = IfcReference;
+    class IfcRepresentation extends IfcLineObject {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super();
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 1076942058;
+      }
+    }
+    IFC4X32.IfcRepresentation = IfcRepresentation;
+    class IfcRepresentationContext extends IfcLineObject {
+      constructor(ContextIdentifier, ContextType) {
+        super();
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.type = 3377609919;
+      }
+    }
+    IFC4X32.IfcRepresentationContext = IfcRepresentationContext;
+    class IfcRepresentationItem extends IfcLineObject {
+      constructor() {
+        super();
+        this.type = 3008791417;
+      }
+    }
+    IFC4X32.IfcRepresentationItem = IfcRepresentationItem;
+    class IfcRepresentationMap extends IfcLineObject {
+      constructor(MappingOrigin, MappedRepresentation) {
+        super();
+        this.MappingOrigin = MappingOrigin;
+        this.MappedRepresentation = MappedRepresentation;
+        this.type = 1660063152;
+      }
+    }
+    IFC4X32.IfcRepresentationMap = IfcRepresentationMap;
+    class IfcResourceLevelRelationship extends IfcLineObject {
+      constructor(Name, Description) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2439245199;
+      }
+    }
+    IFC4X32.IfcResourceLevelRelationship = IfcResourceLevelRelationship;
+    class IfcRoot extends IfcLineObject {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super();
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2341007311;
+      }
+    }
+    IFC4X32.IfcRoot = IfcRoot;
+    class IfcSIUnit extends IfcNamedUnit {
+      constructor(Dimensions, UnitType, Prefix, Name) {
+        super(Dimensions, UnitType);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Prefix = Prefix;
+        this.Name = Name;
+        this.type = 448429030;
+      }
+    }
+    IFC4X32.IfcSIUnit = IfcSIUnit;
+    class IfcSchedulingTime extends IfcLineObject {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin) {
+        super();
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.type = 1054537805;
+      }
+    }
+    IFC4X32.IfcSchedulingTime = IfcSchedulingTime;
+    class IfcShapeAspect extends IfcLineObject {
+      constructor(ShapeRepresentations, Name, Description, ProductDefinitional, PartOfProductDefinitionShape) {
+        super();
+        this.ShapeRepresentations = ShapeRepresentations;
+        this.Name = Name;
+        this.Description = Description;
+        this.ProductDefinitional = ProductDefinitional;
+        this.PartOfProductDefinitionShape = PartOfProductDefinitionShape;
+        this.type = 867548509;
+      }
+    }
+    IFC4X32.IfcShapeAspect = IfcShapeAspect;
+    class IfcShapeModel extends IfcRepresentation {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 3982875396;
+      }
+    }
+    IFC4X32.IfcShapeModel = IfcShapeModel;
+    class IfcShapeRepresentation extends IfcShapeModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 4240577450;
+      }
+    }
+    IFC4X32.IfcShapeRepresentation = IfcShapeRepresentation;
+    class IfcStructuralConnectionCondition extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 2273995522;
+      }
+    }
+    IFC4X32.IfcStructuralConnectionCondition = IfcStructuralConnectionCondition;
+    class IfcStructuralLoad extends IfcLineObject {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 2162789131;
+      }
+    }
+    IFC4X32.IfcStructuralLoad = IfcStructuralLoad;
+    class IfcStructuralLoadConfiguration extends IfcStructuralLoad {
+      constructor(Name, Values, Locations) {
+        super(Name);
+        this.Name = Name;
+        this.Values = Values;
+        this.Locations = Locations;
+        this.type = 3478079324;
+      }
+    }
+    IFC4X32.IfcStructuralLoadConfiguration = IfcStructuralLoadConfiguration;
+    class IfcStructuralLoadOrResult extends IfcStructuralLoad {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 609421318;
+      }
+    }
+    IFC4X32.IfcStructuralLoadOrResult = IfcStructuralLoadOrResult;
+    class IfcStructuralLoadStatic extends IfcStructuralLoadOrResult {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 2525727697;
+      }
+    }
+    IFC4X32.IfcStructuralLoadStatic = IfcStructuralLoadStatic;
+    class IfcStructuralLoadTemperature extends IfcStructuralLoadStatic {
+      constructor(Name, DeltaTConstant, DeltaTY, DeltaTZ) {
+        super(Name);
+        this.Name = Name;
+        this.DeltaTConstant = DeltaTConstant;
+        this.DeltaTY = DeltaTY;
+        this.DeltaTZ = DeltaTZ;
+        this.type = 3408363356;
+      }
+    }
+    IFC4X32.IfcStructuralLoadTemperature = IfcStructuralLoadTemperature;
+    class IfcStyleModel extends IfcRepresentation {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 2830218821;
+      }
+    }
+    IFC4X32.IfcStyleModel = IfcStyleModel;
+    class IfcStyledItem extends IfcRepresentationItem {
+      constructor(Item, Styles, Name) {
+        super();
+        this.Item = Item;
+        this.Styles = Styles;
+        this.Name = Name;
+        this.type = 3958052878;
+      }
+    }
+    IFC4X32.IfcStyledItem = IfcStyledItem;
+    class IfcStyledRepresentation extends IfcStyleModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 3049322572;
+      }
+    }
+    IFC4X32.IfcStyledRepresentation = IfcStyledRepresentation;
+    class IfcSurfaceReinforcementArea extends IfcStructuralLoadOrResult {
+      constructor(Name, SurfaceReinforcement1, SurfaceReinforcement2, ShearReinforcement) {
+        super(Name);
+        this.Name = Name;
+        this.SurfaceReinforcement1 = SurfaceReinforcement1;
+        this.SurfaceReinforcement2 = SurfaceReinforcement2;
+        this.ShearReinforcement = ShearReinforcement;
+        this.type = 2934153892;
+      }
+    }
+    IFC4X32.IfcSurfaceReinforcementArea = IfcSurfaceReinforcementArea;
+    class IfcSurfaceStyle extends IfcPresentationStyle {
+      constructor(Name, Side, Styles) {
+        super(Name);
+        this.Name = Name;
+        this.Side = Side;
+        this.Styles = Styles;
+        this.type = 1300840506;
+      }
+    }
+    IFC4X32.IfcSurfaceStyle = IfcSurfaceStyle;
+    class IfcSurfaceStyleLighting extends IfcPresentationItem {
+      constructor(DiffuseTransmissionColour, DiffuseReflectionColour, TransmissionColour, ReflectanceColour) {
+        super();
+        this.DiffuseTransmissionColour = DiffuseTransmissionColour;
+        this.DiffuseReflectionColour = DiffuseReflectionColour;
+        this.TransmissionColour = TransmissionColour;
+        this.ReflectanceColour = ReflectanceColour;
+        this.type = 3303107099;
+      }
+    }
+    IFC4X32.IfcSurfaceStyleLighting = IfcSurfaceStyleLighting;
+    class IfcSurfaceStyleRefraction extends IfcPresentationItem {
+      constructor(RefractionIndex, DispersionFactor) {
+        super();
+        this.RefractionIndex = RefractionIndex;
+        this.DispersionFactor = DispersionFactor;
+        this.type = 1607154358;
+      }
+    }
+    IFC4X32.IfcSurfaceStyleRefraction = IfcSurfaceStyleRefraction;
+    class IfcSurfaceStyleShading extends IfcPresentationItem {
+      constructor(SurfaceColour, Transparency) {
+        super();
+        this.SurfaceColour = SurfaceColour;
+        this.Transparency = Transparency;
+        this.type = 846575682;
+      }
+    }
+    IFC4X32.IfcSurfaceStyleShading = IfcSurfaceStyleShading;
+    class IfcSurfaceStyleWithTextures extends IfcPresentationItem {
+      constructor(Textures) {
+        super();
+        this.Textures = Textures;
+        this.type = 1351298697;
+      }
+    }
+    IFC4X32.IfcSurfaceStyleWithTextures = IfcSurfaceStyleWithTextures;
+    class IfcSurfaceTexture extends IfcPresentationItem {
+      constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter) {
+        super();
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.Mode = Mode;
+        this.TextureTransform = TextureTransform;
+        this.Parameter = Parameter;
+        this.type = 626085974;
+      }
+    }
+    IFC4X32.IfcSurfaceTexture = IfcSurfaceTexture;
+    class IfcTable extends IfcLineObject {
+      constructor(Name, Rows, Columns) {
+        super();
+        this.Name = Name;
+        this.Rows = Rows;
+        this.Columns = Columns;
+        this.type = 985171141;
+      }
+    }
+    IFC4X32.IfcTable = IfcTable;
+    class IfcTableColumn extends IfcLineObject {
+      constructor(Identifier, Name, Description, Unit, ReferencePath) {
+        super();
+        this.Identifier = Identifier;
+        this.Name = Name;
+        this.Description = Description;
+        this.Unit = Unit;
+        this.ReferencePath = ReferencePath;
+        this.type = 2043862942;
+      }
+    }
+    IFC4X32.IfcTableColumn = IfcTableColumn;
+    class IfcTableRow extends IfcLineObject {
+      constructor(RowCells, IsHeading) {
+        super();
+        this.RowCells = RowCells;
+        this.IsHeading = IsHeading;
+        this.type = 531007025;
+      }
+    }
+    IFC4X32.IfcTableRow = IfcTableRow;
+    class IfcTaskTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.DurationType = DurationType;
+        this.ScheduleDuration = ScheduleDuration;
+        this.ScheduleStart = ScheduleStart;
+        this.ScheduleFinish = ScheduleFinish;
+        this.EarlyStart = EarlyStart;
+        this.EarlyFinish = EarlyFinish;
+        this.LateStart = LateStart;
+        this.LateFinish = LateFinish;
+        this.FreeFloat = FreeFloat;
+        this.TotalFloat = TotalFloat;
+        this.IsCritical = IsCritical;
+        this.StatusTime = StatusTime;
+        this.ActualDuration = ActualDuration;
+        this.ActualStart = ActualStart;
+        this.ActualFinish = ActualFinish;
+        this.RemainingTime = RemainingTime;
+        this.Completion = Completion;
+        this.type = 1549132990;
+      }
+    }
+    IFC4X32.IfcTaskTime = IfcTaskTime;
+    class IfcTaskTimeRecurring extends IfcTaskTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion, Recurrence) {
+        super(Name, DataOrigin, UserDefinedDataOrigin, DurationType, ScheduleDuration, ScheduleStart, ScheduleFinish, EarlyStart, EarlyFinish, LateStart, LateFinish, FreeFloat, TotalFloat, IsCritical, StatusTime, ActualDuration, ActualStart, ActualFinish, RemainingTime, Completion);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.DurationType = DurationType;
+        this.ScheduleDuration = ScheduleDuration;
+        this.ScheduleStart = ScheduleStart;
+        this.ScheduleFinish = ScheduleFinish;
+        this.EarlyStart = EarlyStart;
+        this.EarlyFinish = EarlyFinish;
+        this.LateStart = LateStart;
+        this.LateFinish = LateFinish;
+        this.FreeFloat = FreeFloat;
+        this.TotalFloat = TotalFloat;
+        this.IsCritical = IsCritical;
+        this.StatusTime = StatusTime;
+        this.ActualDuration = ActualDuration;
+        this.ActualStart = ActualStart;
+        this.ActualFinish = ActualFinish;
+        this.RemainingTime = RemainingTime;
+        this.Completion = Completion;
+        this.Recurrence = Recurrence;
+        this.type = 2771591690;
+      }
+    }
+    IFC4X32.IfcTaskTimeRecurring = IfcTaskTimeRecurring;
+    class IfcTelecomAddress extends IfcAddress {
+      constructor(Purpose, Description, UserDefinedPurpose, TelephoneNumbers, FacsimileNumbers, PagerNumber, ElectronicMailAddresses, WWWHomePageURL, MessagingIDs) {
+        super(Purpose, Description, UserDefinedPurpose);
+        this.Purpose = Purpose;
+        this.Description = Description;
+        this.UserDefinedPurpose = UserDefinedPurpose;
+        this.TelephoneNumbers = TelephoneNumbers;
+        this.FacsimileNumbers = FacsimileNumbers;
+        this.PagerNumber = PagerNumber;
+        this.ElectronicMailAddresses = ElectronicMailAddresses;
+        this.WWWHomePageURL = WWWHomePageURL;
+        this.MessagingIDs = MessagingIDs;
+        this.type = 912023232;
+      }
+    }
+    IFC4X32.IfcTelecomAddress = IfcTelecomAddress;
+    class IfcTextStyle extends IfcPresentationStyle {
+      constructor(Name, TextCharacterAppearance, TextStyle, TextFontStyle, ModelOrDraughting) {
+        super(Name);
+        this.Name = Name;
+        this.TextCharacterAppearance = TextCharacterAppearance;
+        this.TextStyle = TextStyle;
+        this.TextFontStyle = TextFontStyle;
+        this.ModelOrDraughting = ModelOrDraughting;
+        this.type = 1447204868;
+      }
+    }
+    IFC4X32.IfcTextStyle = IfcTextStyle;
+    class IfcTextStyleForDefinedFont extends IfcPresentationItem {
+      constructor(Colour, BackgroundColour) {
+        super();
+        this.Colour = Colour;
+        this.BackgroundColour = BackgroundColour;
+        this.type = 2636378356;
+      }
+    }
+    IFC4X32.IfcTextStyleForDefinedFont = IfcTextStyleForDefinedFont;
+    class IfcTextStyleTextModel extends IfcPresentationItem {
+      constructor(TextIndent, TextAlign, TextDecoration, LetterSpacing, WordSpacing, TextTransform, LineHeight) {
+        super();
+        this.TextIndent = TextIndent;
+        this.TextAlign = TextAlign;
+        this.TextDecoration = TextDecoration;
+        this.LetterSpacing = LetterSpacing;
+        this.WordSpacing = WordSpacing;
+        this.TextTransform = TextTransform;
+        this.LineHeight = LineHeight;
+        this.type = 1640371178;
+      }
+    }
+    IFC4X32.IfcTextStyleTextModel = IfcTextStyleTextModel;
+    class IfcTextureCoordinate extends IfcPresentationItem {
+      constructor(Maps) {
+        super();
+        this.Maps = Maps;
+        this.type = 280115917;
+      }
+    }
+    IFC4X32.IfcTextureCoordinate = IfcTextureCoordinate;
+    class IfcTextureCoordinateGenerator extends IfcTextureCoordinate {
+      constructor(Maps, Mode, Parameter) {
+        super(Maps);
+        this.Maps = Maps;
+        this.Mode = Mode;
+        this.Parameter = Parameter;
+        this.type = 1742049831;
+      }
+    }
+    IFC4X32.IfcTextureCoordinateGenerator = IfcTextureCoordinateGenerator;
+    class IfcTextureCoordinateIndices extends IfcLineObject {
+      constructor(TexCoordIndex, TexCoordsOf) {
+        super();
+        this.TexCoordIndex = TexCoordIndex;
+        this.TexCoordsOf = TexCoordsOf;
+        this.type = 222769930;
+      }
+    }
+    IFC4X32.IfcTextureCoordinateIndices = IfcTextureCoordinateIndices;
+    class IfcTextureCoordinateIndicesWithVoids extends IfcTextureCoordinateIndices {
+      constructor(TexCoordIndex, TexCoordsOf, InnerTexCoordIndices) {
+        super(TexCoordIndex, TexCoordsOf);
+        this.TexCoordIndex = TexCoordIndex;
+        this.TexCoordsOf = TexCoordsOf;
+        this.InnerTexCoordIndices = InnerTexCoordIndices;
+        this.type = 1010789467;
+      }
+    }
+    IFC4X32.IfcTextureCoordinateIndicesWithVoids = IfcTextureCoordinateIndicesWithVoids;
+    class IfcTextureMap extends IfcTextureCoordinate {
+      constructor(Maps, Vertices, MappedTo) {
+        super(Maps);
+        this.Maps = Maps;
+        this.Vertices = Vertices;
+        this.MappedTo = MappedTo;
+        this.type = 2552916305;
+      }
+    }
+    IFC4X32.IfcTextureMap = IfcTextureMap;
+    class IfcTextureVertex extends IfcPresentationItem {
+      constructor(Coordinates) {
+        super();
+        this.Coordinates = Coordinates;
+        this.type = 1210645708;
+      }
+    }
+    IFC4X32.IfcTextureVertex = IfcTextureVertex;
+    class IfcTextureVertexList extends IfcPresentationItem {
+      constructor(TexCoordsList) {
+        super();
+        this.TexCoordsList = TexCoordsList;
+        this.type = 3611470254;
+      }
+    }
+    IFC4X32.IfcTextureVertexList = IfcTextureVertexList;
+    class IfcTimePeriod extends IfcLineObject {
+      constructor(StartTime, EndTime) {
+        super();
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.type = 1199560280;
+      }
+    }
+    IFC4X32.IfcTimePeriod = IfcTimePeriod;
+    class IfcTimeSeries extends IfcLineObject {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.type = 3101149627;
+      }
+    }
+    IFC4X32.IfcTimeSeries = IfcTimeSeries;
+    class IfcTimeSeriesValue extends IfcLineObject {
+      constructor(ListValues) {
+        super();
+        this.ListValues = ListValues;
+        this.type = 581633288;
+      }
+    }
+    IFC4X32.IfcTimeSeriesValue = IfcTimeSeriesValue;
+    class IfcTopologicalRepresentationItem extends IfcRepresentationItem {
+      constructor() {
+        super();
+        this.type = 1377556343;
+      }
+    }
+    IFC4X32.IfcTopologicalRepresentationItem = IfcTopologicalRepresentationItem;
+    class IfcTopologyRepresentation extends IfcShapeModel {
+      constructor(ContextOfItems, RepresentationIdentifier, RepresentationType, Items) {
+        super(ContextOfItems, RepresentationIdentifier, RepresentationType, Items);
+        this.ContextOfItems = ContextOfItems;
+        this.RepresentationIdentifier = RepresentationIdentifier;
+        this.RepresentationType = RepresentationType;
+        this.Items = Items;
+        this.type = 1735638870;
+      }
+    }
+    IFC4X32.IfcTopologyRepresentation = IfcTopologyRepresentation;
+    class IfcUnitAssignment extends IfcLineObject {
+      constructor(Units) {
+        super();
+        this.Units = Units;
+        this.type = 180925521;
+      }
+    }
+    IFC4X32.IfcUnitAssignment = IfcUnitAssignment;
+    class IfcVertex extends IfcTopologicalRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2799835756;
+      }
+    }
+    IFC4X32.IfcVertex = IfcVertex;
+    class IfcVertexPoint extends IfcVertex {
+      constructor(VertexGeometry) {
+        super();
+        this.VertexGeometry = VertexGeometry;
+        this.type = 1907098498;
+      }
+    }
+    IFC4X32.IfcVertexPoint = IfcVertexPoint;
+    class IfcVirtualGridIntersection extends IfcLineObject {
+      constructor(IntersectingAxes, OffsetDistances) {
+        super();
+        this.IntersectingAxes = IntersectingAxes;
+        this.OffsetDistances = OffsetDistances;
+        this.type = 891718957;
+      }
+    }
+    IFC4X32.IfcVirtualGridIntersection = IfcVirtualGridIntersection;
+    class IfcWorkTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, RecurrencePattern, StartDate, FinishDate) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.RecurrencePattern = RecurrencePattern;
+        this.StartDate = StartDate;
+        this.FinishDate = FinishDate;
+        this.type = 1236880293;
+      }
+    }
+    IFC4X32.IfcWorkTime = IfcWorkTime;
+    class IfcAlignmentCantSegment extends IfcAlignmentParameterSegment {
+      constructor(StartTag, EndTag, StartDistAlong, HorizontalLength, StartCantLeft, EndCantLeft, StartCantRight, EndCantRight, PredefinedType) {
+        super(StartTag, EndTag);
+        this.StartTag = StartTag;
+        this.EndTag = EndTag;
+        this.StartDistAlong = StartDistAlong;
+        this.HorizontalLength = HorizontalLength;
+        this.StartCantLeft = StartCantLeft;
+        this.EndCantLeft = EndCantLeft;
+        this.StartCantRight = StartCantRight;
+        this.EndCantRight = EndCantRight;
+        this.PredefinedType = PredefinedType;
+        this.type = 3752311538;
+      }
+    }
+    IFC4X32.IfcAlignmentCantSegment = IfcAlignmentCantSegment;
+    class IfcAlignmentHorizontalSegment extends IfcAlignmentParameterSegment {
+      constructor(StartTag, EndTag, StartPoint, StartDirection, StartRadiusOfCurvature, EndRadiusOfCurvature, SegmentLength, GravityCenterLineHeight, PredefinedType) {
+        super(StartTag, EndTag);
+        this.StartTag = StartTag;
+        this.EndTag = EndTag;
+        this.StartPoint = StartPoint;
+        this.StartDirection = StartDirection;
+        this.StartRadiusOfCurvature = StartRadiusOfCurvature;
+        this.EndRadiusOfCurvature = EndRadiusOfCurvature;
+        this.SegmentLength = SegmentLength;
+        this.GravityCenterLineHeight = GravityCenterLineHeight;
+        this.PredefinedType = PredefinedType;
+        this.type = 536804194;
+      }
+    }
+    IFC4X32.IfcAlignmentHorizontalSegment = IfcAlignmentHorizontalSegment;
+    class IfcApprovalRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingApproval, RelatedApprovals) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingApproval = RelatingApproval;
+        this.RelatedApprovals = RelatedApprovals;
+        this.type = 3869604511;
+      }
+    }
+    IFC4X32.IfcApprovalRelationship = IfcApprovalRelationship;
+    class IfcArbitraryClosedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, OuterCurve) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.OuterCurve = OuterCurve;
+        this.type = 3798115385;
+      }
+    }
+    IFC4X32.IfcArbitraryClosedProfileDef = IfcArbitraryClosedProfileDef;
+    class IfcArbitraryOpenProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Curve) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Curve = Curve;
+        this.type = 1310608509;
+      }
+    }
+    IFC4X32.IfcArbitraryOpenProfileDef = IfcArbitraryOpenProfileDef;
+    class IfcArbitraryProfileDefWithVoids extends IfcArbitraryClosedProfileDef {
+      constructor(ProfileType, ProfileName, OuterCurve, InnerCurves) {
+        super(ProfileType, ProfileName, OuterCurve);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.OuterCurve = OuterCurve;
+        this.InnerCurves = InnerCurves;
+        this.type = 2705031697;
+      }
+    }
+    IFC4X32.IfcArbitraryProfileDefWithVoids = IfcArbitraryProfileDefWithVoids;
+    class IfcBlobTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, RasterFormat, RasterCode) {
+        super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.Mode = Mode;
+        this.TextureTransform = TextureTransform;
+        this.Parameter = Parameter;
+        this.RasterFormat = RasterFormat;
+        this.RasterCode = RasterCode;
+        this.type = 616511568;
+      }
+    }
+    IFC4X32.IfcBlobTexture = IfcBlobTexture;
+    class IfcCenterLineProfileDef extends IfcArbitraryOpenProfileDef {
+      constructor(ProfileType, ProfileName, Curve, Thickness) {
+        super(ProfileType, ProfileName, Curve);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Curve = Curve;
+        this.Thickness = Thickness;
+        this.type = 3150382593;
+      }
+    }
+    IFC4X32.IfcCenterLineProfileDef = IfcCenterLineProfileDef;
+    class IfcClassification extends IfcExternalInformation {
+      constructor(Source, Edition, EditionDate, Name, Description, Specification, ReferenceTokens) {
+        super();
+        this.Source = Source;
+        this.Edition = Edition;
+        this.EditionDate = EditionDate;
+        this.Name = Name;
+        this.Description = Description;
+        this.Specification = Specification;
+        this.ReferenceTokens = ReferenceTokens;
+        this.type = 747523909;
+      }
+    }
+    IFC4X32.IfcClassification = IfcClassification;
+    class IfcClassificationReference extends IfcExternalReference {
+      constructor(Location, Identification, Name, ReferencedSource, Description, Sort) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.ReferencedSource = ReferencedSource;
+        this.Description = Description;
+        this.Sort = Sort;
+        this.type = 647927063;
+      }
+    }
+    IFC4X32.IfcClassificationReference = IfcClassificationReference;
+    class IfcColourRgbList extends IfcPresentationItem {
+      constructor(ColourList) {
+        super();
+        this.ColourList = ColourList;
+        this.type = 3285139300;
+      }
+    }
+    IFC4X32.IfcColourRgbList = IfcColourRgbList;
+    class IfcColourSpecification extends IfcPresentationItem {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3264961684;
+      }
+    }
+    IFC4X32.IfcColourSpecification = IfcColourSpecification;
+    class IfcCompositeProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Profiles, Label) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Profiles = Profiles;
+        this.Label = Label;
+        this.type = 1485152156;
+      }
+    }
+    IFC4X32.IfcCompositeProfileDef = IfcCompositeProfileDef;
+    class IfcConnectedFaceSet extends IfcTopologicalRepresentationItem {
+      constructor(CfsFaces) {
+        super();
+        this.CfsFaces = CfsFaces;
+        this.type = 370225590;
+      }
+    }
+    IFC4X32.IfcConnectedFaceSet = IfcConnectedFaceSet;
+    class IfcConnectionCurveGeometry extends IfcConnectionGeometry {
+      constructor(CurveOnRelatingElement, CurveOnRelatedElement) {
+        super();
+        this.CurveOnRelatingElement = CurveOnRelatingElement;
+        this.CurveOnRelatedElement = CurveOnRelatedElement;
+        this.type = 1981873012;
+      }
+    }
+    IFC4X32.IfcConnectionCurveGeometry = IfcConnectionCurveGeometry;
+    class IfcConnectionPointEccentricity extends IfcConnectionPointGeometry {
+      constructor(PointOnRelatingElement, PointOnRelatedElement, EccentricityInX, EccentricityInY, EccentricityInZ) {
+        super(PointOnRelatingElement, PointOnRelatedElement);
+        this.PointOnRelatingElement = PointOnRelatingElement;
+        this.PointOnRelatedElement = PointOnRelatedElement;
+        this.EccentricityInX = EccentricityInX;
+        this.EccentricityInY = EccentricityInY;
+        this.EccentricityInZ = EccentricityInZ;
+        this.type = 45288368;
+      }
+    }
+    IFC4X32.IfcConnectionPointEccentricity = IfcConnectionPointEccentricity;
+    class IfcContextDependentUnit extends IfcNamedUnit {
+      constructor(Dimensions, UnitType, Name) {
+        super(Dimensions, UnitType);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Name = Name;
+        this.type = 3050246964;
+      }
+    }
+    IFC4X32.IfcContextDependentUnit = IfcContextDependentUnit;
+    class IfcConversionBasedUnit extends IfcNamedUnit {
+      constructor(Dimensions, UnitType, Name, ConversionFactor) {
+        super(Dimensions, UnitType);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Name = Name;
+        this.ConversionFactor = ConversionFactor;
+        this.type = 2889183280;
+      }
+    }
+    IFC4X32.IfcConversionBasedUnit = IfcConversionBasedUnit;
+    class IfcConversionBasedUnitWithOffset extends IfcConversionBasedUnit {
+      constructor(Dimensions, UnitType, Name, ConversionFactor, ConversionOffset) {
+        super(Dimensions, UnitType, Name, ConversionFactor);
+        this.Dimensions = Dimensions;
+        this.UnitType = UnitType;
+        this.Name = Name;
+        this.ConversionFactor = ConversionFactor;
+        this.ConversionOffset = ConversionOffset;
+        this.type = 2713554722;
+      }
+    }
+    IFC4X32.IfcConversionBasedUnitWithOffset = IfcConversionBasedUnitWithOffset;
+    class IfcCurrencyRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingMonetaryUnit, RelatedMonetaryUnit, ExchangeRate, RateDateTime, RateSource) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingMonetaryUnit = RelatingMonetaryUnit;
+        this.RelatedMonetaryUnit = RelatedMonetaryUnit;
+        this.ExchangeRate = ExchangeRate;
+        this.RateDateTime = RateDateTime;
+        this.RateSource = RateSource;
+        this.type = 539742890;
+      }
+    }
+    IFC4X32.IfcCurrencyRelationship = IfcCurrencyRelationship;
+    class IfcCurveStyle extends IfcPresentationStyle {
+      constructor(Name, CurveFont, CurveWidth, CurveColour, ModelOrDraughting) {
+        super(Name);
+        this.Name = Name;
+        this.CurveFont = CurveFont;
+        this.CurveWidth = CurveWidth;
+        this.CurveColour = CurveColour;
+        this.ModelOrDraughting = ModelOrDraughting;
+        this.type = 3800577675;
+      }
+    }
+    IFC4X32.IfcCurveStyle = IfcCurveStyle;
+    class IfcCurveStyleFont extends IfcPresentationItem {
+      constructor(Name, PatternList) {
+        super();
+        this.Name = Name;
+        this.PatternList = PatternList;
+        this.type = 1105321065;
+      }
+    }
+    IFC4X32.IfcCurveStyleFont = IfcCurveStyleFont;
+    class IfcCurveStyleFontAndScaling extends IfcPresentationItem {
+      constructor(Name, CurveStyleFont, CurveFontScaling) {
+        super();
+        this.Name = Name;
+        this.CurveStyleFont = CurveStyleFont;
+        this.CurveFontScaling = CurveFontScaling;
+        this.type = 2367409068;
+      }
+    }
+    IFC4X32.IfcCurveStyleFontAndScaling = IfcCurveStyleFontAndScaling;
+    class IfcCurveStyleFontPattern extends IfcPresentationItem {
+      constructor(VisibleSegmentLength, InvisibleSegmentLength) {
+        super();
+        this.VisibleSegmentLength = VisibleSegmentLength;
+        this.InvisibleSegmentLength = InvisibleSegmentLength;
+        this.type = 3510044353;
+      }
+    }
+    IFC4X32.IfcCurveStyleFontPattern = IfcCurveStyleFontPattern;
+    class IfcDerivedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.ParentProfile = ParentProfile;
+        this.Operator = Operator;
+        this.Label = Label;
+        this.type = 3632507154;
+      }
+    }
+    IFC4X32.IfcDerivedProfileDef = IfcDerivedProfileDef;
+    class IfcDocumentInformation extends IfcExternalInformation {
+      constructor(Identification, Name, Description, Location, Purpose, IntendedUse, Scope, Revision, DocumentOwner, Editors, CreationTime, LastRevisionTime, ElectronicFormat, ValidFrom, ValidUntil, Confidentiality, Status) {
+        super();
+        this.Identification = Identification;
+        this.Name = Name;
+        this.Description = Description;
+        this.Location = Location;
+        this.Purpose = Purpose;
+        this.IntendedUse = IntendedUse;
+        this.Scope = Scope;
+        this.Revision = Revision;
+        this.DocumentOwner = DocumentOwner;
+        this.Editors = Editors;
+        this.CreationTime = CreationTime;
+        this.LastRevisionTime = LastRevisionTime;
+        this.ElectronicFormat = ElectronicFormat;
+        this.ValidFrom = ValidFrom;
+        this.ValidUntil = ValidUntil;
+        this.Confidentiality = Confidentiality;
+        this.Status = Status;
+        this.type = 1154170062;
+      }
+    }
+    IFC4X32.IfcDocumentInformation = IfcDocumentInformation;
+    class IfcDocumentInformationRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingDocument, RelatedDocuments, RelationshipType) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingDocument = RelatingDocument;
+        this.RelatedDocuments = RelatedDocuments;
+        this.RelationshipType = RelationshipType;
+        this.type = 770865208;
+      }
+    }
+    IFC4X32.IfcDocumentInformationRelationship = IfcDocumentInformationRelationship;
+    class IfcDocumentReference extends IfcExternalReference {
+      constructor(Location, Identification, Name, Description, ReferencedDocument) {
+        super(Location, Identification, Name);
+        this.Location = Location;
+        this.Identification = Identification;
+        this.Name = Name;
+        this.Description = Description;
+        this.ReferencedDocument = ReferencedDocument;
+        this.type = 3732053477;
+      }
+    }
+    IFC4X32.IfcDocumentReference = IfcDocumentReference;
+    class IfcEdge extends IfcTopologicalRepresentationItem {
+      constructor(EdgeStart, EdgeEnd) {
+        super();
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.type = 3900360178;
+      }
+    }
+    IFC4X32.IfcEdge = IfcEdge;
+    class IfcEdgeCurve extends IfcEdge {
+      constructor(EdgeStart, EdgeEnd, EdgeGeometry, SameSense) {
+        super(EdgeStart, EdgeEnd);
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.EdgeGeometry = EdgeGeometry;
+        this.SameSense = SameSense;
+        this.type = 476780140;
+      }
+    }
+    IFC4X32.IfcEdgeCurve = IfcEdgeCurve;
+    class IfcEventTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, ActualDate, EarlyDate, LateDate, ScheduleDate) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.ActualDate = ActualDate;
+        this.EarlyDate = EarlyDate;
+        this.LateDate = LateDate;
+        this.ScheduleDate = ScheduleDate;
+        this.type = 211053100;
+      }
+    }
+    IFC4X32.IfcEventTime = IfcEventTime;
+    class IfcExtendedProperties extends IfcPropertyAbstraction {
+      constructor(Name, Description, Properties2) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Properties = Properties2;
+        this.type = 297599258;
+      }
+    }
+    IFC4X32.IfcExtendedProperties = IfcExtendedProperties;
+    class IfcExternalReferenceRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingReference, RelatedResourceObjects) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingReference = RelatingReference;
+        this.RelatedResourceObjects = RelatedResourceObjects;
+        this.type = 1437805879;
+      }
+    }
+    IFC4X32.IfcExternalReferenceRelationship = IfcExternalReferenceRelationship;
+    class IfcFace extends IfcTopologicalRepresentationItem {
+      constructor(Bounds) {
+        super();
+        this.Bounds = Bounds;
+        this.type = 2556980723;
+      }
+    }
+    IFC4X32.IfcFace = IfcFace;
+    class IfcFaceBound extends IfcTopologicalRepresentationItem {
+      constructor(Bound, Orientation) {
+        super();
+        this.Bound = Bound;
+        this.Orientation = Orientation;
+        this.type = 1809719519;
+      }
+    }
+    IFC4X32.IfcFaceBound = IfcFaceBound;
+    class IfcFaceOuterBound extends IfcFaceBound {
+      constructor(Bound, Orientation) {
+        super(Bound, Orientation);
+        this.Bound = Bound;
+        this.Orientation = Orientation;
+        this.type = 803316827;
+      }
+    }
+    IFC4X32.IfcFaceOuterBound = IfcFaceOuterBound;
+    class IfcFaceSurface extends IfcFace {
+      constructor(Bounds, FaceSurface, SameSense) {
+        super(Bounds);
+        this.Bounds = Bounds;
+        this.FaceSurface = FaceSurface;
+        this.SameSense = SameSense;
+        this.type = 3008276851;
+      }
+    }
+    IFC4X32.IfcFaceSurface = IfcFaceSurface;
+    class IfcFailureConnectionCondition extends IfcStructuralConnectionCondition {
+      constructor(Name, TensionFailureX, TensionFailureY, TensionFailureZ, CompressionFailureX, CompressionFailureY, CompressionFailureZ) {
+        super(Name);
+        this.Name = Name;
+        this.TensionFailureX = TensionFailureX;
+        this.TensionFailureY = TensionFailureY;
+        this.TensionFailureZ = TensionFailureZ;
+        this.CompressionFailureX = CompressionFailureX;
+        this.CompressionFailureY = CompressionFailureY;
+        this.CompressionFailureZ = CompressionFailureZ;
+        this.type = 4219587988;
+      }
+    }
+    IFC4X32.IfcFailureConnectionCondition = IfcFailureConnectionCondition;
+    class IfcFillAreaStyle extends IfcPresentationStyle {
+      constructor(Name, FillStyles, ModelOrDraughting) {
+        super(Name);
+        this.Name = Name;
+        this.FillStyles = FillStyles;
+        this.ModelOrDraughting = ModelOrDraughting;
+        this.type = 738692330;
+      }
+    }
+    IFC4X32.IfcFillAreaStyle = IfcFillAreaStyle;
+    class IfcGeometricRepresentationContext extends IfcRepresentationContext {
+      constructor(ContextIdentifier, ContextType, CoordinateSpaceDimension, Precision, WorldCoordinateSystem, TrueNorth) {
+        super(ContextIdentifier, ContextType);
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.CoordinateSpaceDimension = CoordinateSpaceDimension;
+        this.Precision = Precision;
+        this.WorldCoordinateSystem = WorldCoordinateSystem;
+        this.TrueNorth = TrueNorth;
+        this.type = 3448662350;
+      }
+    }
+    IFC4X32.IfcGeometricRepresentationContext = IfcGeometricRepresentationContext;
+    class IfcGeometricRepresentationItem extends IfcRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2453401579;
+      }
+    }
+    IFC4X32.IfcGeometricRepresentationItem = IfcGeometricRepresentationItem;
+    class IfcGeometricRepresentationSubContext extends IfcGeometricRepresentationContext {
+      constructor(ContextIdentifier, ContextType, WorldCoordinateSystem, ParentContext, TargetScale, TargetView, UserDefinedTargetView) {
+        super(ContextIdentifier, ContextType, new IfcDimensionCount(0), null, WorldCoordinateSystem, null);
+        this.ContextIdentifier = ContextIdentifier;
+        this.ContextType = ContextType;
+        this.WorldCoordinateSystem = WorldCoordinateSystem;
+        this.ParentContext = ParentContext;
+        this.TargetScale = TargetScale;
+        this.TargetView = TargetView;
+        this.UserDefinedTargetView = UserDefinedTargetView;
+        this.type = 4142052618;
+      }
+    }
+    IFC4X32.IfcGeometricRepresentationSubContext = IfcGeometricRepresentationSubContext;
+    class IfcGeometricSet extends IfcGeometricRepresentationItem {
+      constructor(Elements) {
+        super();
+        this.Elements = Elements;
+        this.type = 3590301190;
+      }
+    }
+    IFC4X32.IfcGeometricSet = IfcGeometricSet;
+    class IfcGridPlacement extends IfcObjectPlacement {
+      constructor(PlacementRelTo, PlacementLocation, PlacementRefDirection) {
+        super(PlacementRelTo);
+        this.PlacementRelTo = PlacementRelTo;
+        this.PlacementLocation = PlacementLocation;
+        this.PlacementRefDirection = PlacementRefDirection;
+        this.type = 178086475;
+      }
+    }
+    IFC4X32.IfcGridPlacement = IfcGridPlacement;
+    class IfcHalfSpaceSolid extends IfcGeometricRepresentationItem {
+      constructor(BaseSurface, AgreementFlag) {
+        super();
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.type = 812098782;
+      }
+    }
+    IFC4X32.IfcHalfSpaceSolid = IfcHalfSpaceSolid;
+    class IfcImageTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, URLReference) {
+        super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.Mode = Mode;
+        this.TextureTransform = TextureTransform;
+        this.Parameter = Parameter;
+        this.URLReference = URLReference;
+        this.type = 3905492369;
+      }
+    }
+    IFC4X32.IfcImageTexture = IfcImageTexture;
+    class IfcIndexedColourMap extends IfcPresentationItem {
+      constructor(MappedTo, Opacity, Colours, ColourIndex) {
+        super();
+        this.MappedTo = MappedTo;
+        this.Opacity = Opacity;
+        this.Colours = Colours;
+        this.ColourIndex = ColourIndex;
+        this.type = 3570813810;
+      }
+    }
+    IFC4X32.IfcIndexedColourMap = IfcIndexedColourMap;
+    class IfcIndexedTextureMap extends IfcTextureCoordinate {
+      constructor(Maps, MappedTo, TexCoords) {
+        super(Maps);
+        this.Maps = Maps;
+        this.MappedTo = MappedTo;
+        this.TexCoords = TexCoords;
+        this.type = 1437953363;
+      }
+    }
+    IFC4X32.IfcIndexedTextureMap = IfcIndexedTextureMap;
+    class IfcIndexedTriangleTextureMap extends IfcIndexedTextureMap {
+      constructor(Maps, MappedTo, TexCoords, TexCoordIndex) {
+        super(Maps, MappedTo, TexCoords);
+        this.Maps = Maps;
+        this.MappedTo = MappedTo;
+        this.TexCoords = TexCoords;
+        this.TexCoordIndex = TexCoordIndex;
+        this.type = 2133299955;
+      }
+    }
+    IFC4X32.IfcIndexedTriangleTextureMap = IfcIndexedTriangleTextureMap;
+    class IfcIrregularTimeSeries extends IfcTimeSeries {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, Values) {
+        super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.Values = Values;
+        this.type = 3741457305;
+      }
+    }
+    IFC4X32.IfcIrregularTimeSeries = IfcIrregularTimeSeries;
+    class IfcLagTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, LagValue, DurationType) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.LagValue = LagValue;
+        this.DurationType = DurationType;
+        this.type = 1585845231;
+      }
+    }
+    IFC4X32.IfcLagTime = IfcLagTime;
+    class IfcLightSource extends IfcGeometricRepresentationItem {
+      constructor(Name, LightColour, AmbientIntensity, Intensity) {
+        super();
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.type = 1402838566;
+      }
+    }
+    IFC4X32.IfcLightSource = IfcLightSource;
+    class IfcLightSourceAmbient extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.type = 125510826;
+      }
+    }
+    IFC4X32.IfcLightSourceAmbient = IfcLightSourceAmbient;
+    class IfcLightSourceDirectional extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Orientation) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Orientation = Orientation;
+        this.type = 2604431987;
+      }
+    }
+    IFC4X32.IfcLightSourceDirectional = IfcLightSourceDirectional;
+    class IfcLightSourceGoniometric extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, ColourAppearance, ColourTemperature, LuminousFlux, LightEmissionSource, LightDistributionDataSource) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.ColourAppearance = ColourAppearance;
+        this.ColourTemperature = ColourTemperature;
+        this.LuminousFlux = LuminousFlux;
+        this.LightEmissionSource = LightEmissionSource;
+        this.LightDistributionDataSource = LightDistributionDataSource;
+        this.type = 4266656042;
+      }
+    }
+    IFC4X32.IfcLightSourceGoniometric = IfcLightSourceGoniometric;
+    class IfcLightSourcePositional extends IfcLightSource {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation) {
+        super(Name, LightColour, AmbientIntensity, Intensity);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.ConstantAttenuation = ConstantAttenuation;
+        this.DistanceAttenuation = DistanceAttenuation;
+        this.QuadricAttenuation = QuadricAttenuation;
+        this.type = 1520743889;
+      }
+    }
+    IFC4X32.IfcLightSourcePositional = IfcLightSourcePositional;
+    class IfcLightSourceSpot extends IfcLightSourcePositional {
+      constructor(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation, Orientation, ConcentrationExponent, SpreadAngle, BeamWidthAngle) {
+        super(Name, LightColour, AmbientIntensity, Intensity, Position, Radius, ConstantAttenuation, DistanceAttenuation, QuadricAttenuation);
+        this.Name = Name;
+        this.LightColour = LightColour;
+        this.AmbientIntensity = AmbientIntensity;
+        this.Intensity = Intensity;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.ConstantAttenuation = ConstantAttenuation;
+        this.DistanceAttenuation = DistanceAttenuation;
+        this.QuadricAttenuation = QuadricAttenuation;
+        this.Orientation = Orientation;
+        this.ConcentrationExponent = ConcentrationExponent;
+        this.SpreadAngle = SpreadAngle;
+        this.BeamWidthAngle = BeamWidthAngle;
+        this.type = 3422422726;
+      }
+    }
+    IFC4X32.IfcLightSourceSpot = IfcLightSourceSpot;
+    class IfcLinearPlacement extends IfcObjectPlacement {
+      constructor(PlacementRelTo, RelativePlacement, CartesianPosition) {
+        super(PlacementRelTo);
+        this.PlacementRelTo = PlacementRelTo;
+        this.RelativePlacement = RelativePlacement;
+        this.CartesianPosition = CartesianPosition;
+        this.type = 388784114;
+      }
+    }
+    IFC4X32.IfcLinearPlacement = IfcLinearPlacement;
+    class IfcLocalPlacement extends IfcObjectPlacement {
+      constructor(PlacementRelTo, RelativePlacement) {
+        super(PlacementRelTo);
+        this.PlacementRelTo = PlacementRelTo;
+        this.RelativePlacement = RelativePlacement;
+        this.type = 2624227202;
+      }
+    }
+    IFC4X32.IfcLocalPlacement = IfcLocalPlacement;
+    class IfcLoop extends IfcTopologicalRepresentationItem {
+      constructor() {
+        super();
+        this.type = 1008929658;
+      }
+    }
+    IFC4X32.IfcLoop = IfcLoop;
+    class IfcMappedItem extends IfcRepresentationItem {
+      constructor(MappingSource, MappingTarget) {
+        super();
+        this.MappingSource = MappingSource;
+        this.MappingTarget = MappingTarget;
+        this.type = 2347385850;
+      }
+    }
+    IFC4X32.IfcMappedItem = IfcMappedItem;
+    class IfcMaterial extends IfcMaterialDefinition {
+      constructor(Name, Description, Category) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Category = Category;
+        this.type = 1838606355;
+      }
+    }
+    IFC4X32.IfcMaterial = IfcMaterial;
+    class IfcMaterialConstituent extends IfcMaterialDefinition {
+      constructor(Name, Description, Material, Fraction, Category) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.Material = Material;
+        this.Fraction = Fraction;
+        this.Category = Category;
+        this.type = 3708119e3;
+      }
+    }
+    IFC4X32.IfcMaterialConstituent = IfcMaterialConstituent;
+    class IfcMaterialConstituentSet extends IfcMaterialDefinition {
+      constructor(Name, Description, MaterialConstituents) {
+        super();
+        this.Name = Name;
+        this.Description = Description;
+        this.MaterialConstituents = MaterialConstituents;
+        this.type = 2852063980;
+      }
+    }
+    IFC4X32.IfcMaterialConstituentSet = IfcMaterialConstituentSet;
+    class IfcMaterialDefinitionRepresentation extends IfcProductRepresentation {
+      constructor(Name, Description, Representations, RepresentedMaterial) {
+        super(Name, Description, Representations);
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.RepresentedMaterial = RepresentedMaterial;
+        this.type = 2022407955;
+      }
+    }
+    IFC4X32.IfcMaterialDefinitionRepresentation = IfcMaterialDefinitionRepresentation;
+    class IfcMaterialLayerSetUsage extends IfcMaterialUsageDefinition {
+      constructor(ForLayerSet, LayerSetDirection, DirectionSense, OffsetFromReferenceLine, ReferenceExtent) {
+        super();
+        this.ForLayerSet = ForLayerSet;
+        this.LayerSetDirection = LayerSetDirection;
+        this.DirectionSense = DirectionSense;
+        this.OffsetFromReferenceLine = OffsetFromReferenceLine;
+        this.ReferenceExtent = ReferenceExtent;
+        this.type = 1303795690;
+      }
+    }
+    IFC4X32.IfcMaterialLayerSetUsage = IfcMaterialLayerSetUsage;
+    class IfcMaterialProfileSetUsage extends IfcMaterialUsageDefinition {
+      constructor(ForProfileSet, CardinalPoint, ReferenceExtent) {
+        super();
+        this.ForProfileSet = ForProfileSet;
+        this.CardinalPoint = CardinalPoint;
+        this.ReferenceExtent = ReferenceExtent;
+        this.type = 3079605661;
+      }
+    }
+    IFC4X32.IfcMaterialProfileSetUsage = IfcMaterialProfileSetUsage;
+    class IfcMaterialProfileSetUsageTapering extends IfcMaterialProfileSetUsage {
+      constructor(ForProfileSet, CardinalPoint, ReferenceExtent, ForProfileEndSet, CardinalEndPoint) {
+        super(ForProfileSet, CardinalPoint, ReferenceExtent);
+        this.ForProfileSet = ForProfileSet;
+        this.CardinalPoint = CardinalPoint;
+        this.ReferenceExtent = ReferenceExtent;
+        this.ForProfileEndSet = ForProfileEndSet;
+        this.CardinalEndPoint = CardinalEndPoint;
+        this.type = 3404854881;
+      }
+    }
+    IFC4X32.IfcMaterialProfileSetUsageTapering = IfcMaterialProfileSetUsageTapering;
+    class IfcMaterialProperties extends IfcExtendedProperties {
+      constructor(Name, Description, Properties2, Material) {
+        super(Name, Description, Properties2);
+        this.Name = Name;
+        this.Description = Description;
+        this.Properties = Properties2;
+        this.Material = Material;
+        this.type = 3265635763;
+      }
+    }
+    IFC4X32.IfcMaterialProperties = IfcMaterialProperties;
+    class IfcMaterialRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingMaterial, RelatedMaterials, MaterialExpression) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingMaterial = RelatingMaterial;
+        this.RelatedMaterials = RelatedMaterials;
+        this.MaterialExpression = MaterialExpression;
+        this.type = 853536259;
+      }
+    }
+    IFC4X32.IfcMaterialRelationship = IfcMaterialRelationship;
+    class IfcMirroredProfileDef extends IfcDerivedProfileDef {
+      constructor(ProfileType, ProfileName, ParentProfile, Operator, Label) {
+        super(ProfileType, ProfileName, ParentProfile, Operator, Label);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.ParentProfile = ParentProfile;
+        this.Operator = Operator;
+        this.Label = Label;
+        this.type = 2998442950;
+      }
+    }
+    IFC4X32.IfcMirroredProfileDef = IfcMirroredProfileDef;
+    class IfcObjectDefinition extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 219451334;
+      }
+    }
+    IFC4X32.IfcObjectDefinition = IfcObjectDefinition;
+    class IfcOpenCrossProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, HorizontalWidths, Widths, Slopes, Tags, OffsetPoint) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.HorizontalWidths = HorizontalWidths;
+        this.Widths = Widths;
+        this.Slopes = Slopes;
+        this.Tags = Tags;
+        this.OffsetPoint = OffsetPoint;
+        this.type = 182550632;
+      }
+    }
+    IFC4X32.IfcOpenCrossProfileDef = IfcOpenCrossProfileDef;
+    class IfcOpenShell extends IfcConnectedFaceSet {
+      constructor(CfsFaces) {
+        super(CfsFaces);
+        this.CfsFaces = CfsFaces;
+        this.type = 2665983363;
+      }
+    }
+    IFC4X32.IfcOpenShell = IfcOpenShell;
+    class IfcOrganizationRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingOrganization, RelatedOrganizations) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingOrganization = RelatingOrganization;
+        this.RelatedOrganizations = RelatedOrganizations;
+        this.type = 1411181986;
+      }
+    }
+    IFC4X32.IfcOrganizationRelationship = IfcOrganizationRelationship;
+    class IfcOrientedEdge extends IfcEdge {
+      constructor(EdgeStart, EdgeElement, Orientation) {
+        super(EdgeStart, new Handle(0));
+        this.EdgeStart = EdgeStart;
+        this.EdgeElement = EdgeElement;
+        this.Orientation = Orientation;
+        this.type = 1029017970;
+      }
+    }
+    IFC4X32.IfcOrientedEdge = IfcOrientedEdge;
+    class IfcParameterizedProfileDef extends IfcProfileDef {
+      constructor(ProfileType, ProfileName, Position) {
+        super(ProfileType, ProfileName);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.type = 2529465313;
+      }
+    }
+    IFC4X32.IfcParameterizedProfileDef = IfcParameterizedProfileDef;
+    class IfcPath extends IfcTopologicalRepresentationItem {
+      constructor(EdgeList) {
+        super();
+        this.EdgeList = EdgeList;
+        this.type = 2519244187;
+      }
+    }
+    IFC4X32.IfcPath = IfcPath;
+    class IfcPhysicalComplexQuantity extends IfcPhysicalQuantity {
+      constructor(Name, Description, HasQuantities, Discrimination, Quality, Usage) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.HasQuantities = HasQuantities;
+        this.Discrimination = Discrimination;
+        this.Quality = Quality;
+        this.Usage = Usage;
+        this.type = 3021840470;
+      }
+    }
+    IFC4X32.IfcPhysicalComplexQuantity = IfcPhysicalComplexQuantity;
+    class IfcPixelTexture extends IfcSurfaceTexture {
+      constructor(RepeatS, RepeatT, Mode, TextureTransform, Parameter, Width, Height, ColourComponents, Pixel) {
+        super(RepeatS, RepeatT, Mode, TextureTransform, Parameter);
+        this.RepeatS = RepeatS;
+        this.RepeatT = RepeatT;
+        this.Mode = Mode;
+        this.TextureTransform = TextureTransform;
+        this.Parameter = Parameter;
+        this.Width = Width;
+        this.Height = Height;
+        this.ColourComponents = ColourComponents;
+        this.Pixel = Pixel;
+        this.type = 597895409;
+      }
+    }
+    IFC4X32.IfcPixelTexture = IfcPixelTexture;
+    class IfcPlacement extends IfcGeometricRepresentationItem {
+      constructor(Location) {
+        super();
+        this.Location = Location;
+        this.type = 2004835150;
+      }
+    }
+    IFC4X32.IfcPlacement = IfcPlacement;
+    class IfcPlanarExtent extends IfcGeometricRepresentationItem {
+      constructor(SizeInX, SizeInY) {
+        super();
+        this.SizeInX = SizeInX;
+        this.SizeInY = SizeInY;
+        this.type = 1663979128;
+      }
+    }
+    IFC4X32.IfcPlanarExtent = IfcPlanarExtent;
+    class IfcPoint extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2067069095;
+      }
+    }
+    IFC4X32.IfcPoint = IfcPoint;
+    class IfcPointByDistanceExpression extends IfcPoint {
+      constructor(DistanceAlong, OffsetLateral, OffsetVertical, OffsetLongitudinal, BasisCurve) {
+        super();
+        this.DistanceAlong = DistanceAlong;
+        this.OffsetLateral = OffsetLateral;
+        this.OffsetVertical = OffsetVertical;
+        this.OffsetLongitudinal = OffsetLongitudinal;
+        this.BasisCurve = BasisCurve;
+        this.type = 2165702409;
+      }
+    }
+    IFC4X32.IfcPointByDistanceExpression = IfcPointByDistanceExpression;
+    class IfcPointOnCurve extends IfcPoint {
+      constructor(BasisCurve, PointParameter) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.PointParameter = PointParameter;
+        this.type = 4022376103;
+      }
+    }
+    IFC4X32.IfcPointOnCurve = IfcPointOnCurve;
+    class IfcPointOnSurface extends IfcPoint {
+      constructor(BasisSurface, PointParameterU, PointParameterV) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.PointParameterU = PointParameterU;
+        this.PointParameterV = PointParameterV;
+        this.type = 1423911732;
+      }
+    }
+    IFC4X32.IfcPointOnSurface = IfcPointOnSurface;
+    class IfcPolyLoop extends IfcLoop {
+      constructor(Polygon) {
+        super();
+        this.Polygon = Polygon;
+        this.type = 2924175390;
+      }
+    }
+    IFC4X32.IfcPolyLoop = IfcPolyLoop;
+    class IfcPolygonalBoundedHalfSpace extends IfcHalfSpaceSolid {
+      constructor(BaseSurface, AgreementFlag, Position, PolygonalBoundary) {
+        super(BaseSurface, AgreementFlag);
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.Position = Position;
+        this.PolygonalBoundary = PolygonalBoundary;
+        this.type = 2775532180;
+      }
+    }
+    IFC4X32.IfcPolygonalBoundedHalfSpace = IfcPolygonalBoundedHalfSpace;
+    class IfcPreDefinedItem extends IfcPresentationItem {
+      constructor(Name) {
+        super();
+        this.Name = Name;
+        this.type = 3727388367;
+      }
+    }
+    IFC4X32.IfcPreDefinedItem = IfcPreDefinedItem;
+    class IfcPreDefinedProperties extends IfcPropertyAbstraction {
+      constructor() {
+        super();
+        this.type = 3778827333;
+      }
+    }
+    IFC4X32.IfcPreDefinedProperties = IfcPreDefinedProperties;
+    class IfcPreDefinedTextFont extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 1775413392;
+      }
+    }
+    IFC4X32.IfcPreDefinedTextFont = IfcPreDefinedTextFont;
+    class IfcProductDefinitionShape extends IfcProductRepresentation {
+      constructor(Name, Description, Representations) {
+        super(Name, Description, Representations);
+        this.Name = Name;
+        this.Description = Description;
+        this.Representations = Representations;
+        this.type = 673634403;
+      }
+    }
+    IFC4X32.IfcProductDefinitionShape = IfcProductDefinitionShape;
+    class IfcProfileProperties extends IfcExtendedProperties {
+      constructor(Name, Description, Properties2, ProfileDefinition) {
+        super(Name, Description, Properties2);
+        this.Name = Name;
+        this.Description = Description;
+        this.Properties = Properties2;
+        this.ProfileDefinition = ProfileDefinition;
+        this.type = 2802850158;
+      }
+    }
+    IFC4X32.IfcProfileProperties = IfcProfileProperties;
+    class IfcProperty extends IfcPropertyAbstraction {
+      constructor(Name, Specification) {
+        super();
+        this.Name = Name;
+        this.Specification = Specification;
+        this.type = 2598011224;
+      }
+    }
+    IFC4X32.IfcProperty = IfcProperty;
+    class IfcPropertyDefinition extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 1680319473;
+      }
+    }
+    IFC4X32.IfcPropertyDefinition = IfcPropertyDefinition;
+    class IfcPropertyDependencyRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, DependingProperty, DependantProperty, Expression) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.DependingProperty = DependingProperty;
+        this.DependantProperty = DependantProperty;
+        this.Expression = Expression;
+        this.type = 148025276;
+      }
+    }
+    IFC4X32.IfcPropertyDependencyRelationship = IfcPropertyDependencyRelationship;
+    class IfcPropertySetDefinition extends IfcPropertyDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3357820518;
+      }
+    }
+    IFC4X32.IfcPropertySetDefinition = IfcPropertySetDefinition;
+    class IfcPropertyTemplateDefinition extends IfcPropertyDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 1482703590;
+      }
+    }
+    IFC4X32.IfcPropertyTemplateDefinition = IfcPropertyTemplateDefinition;
+    class IfcQuantitySet extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2090586900;
+      }
+    }
+    IFC4X32.IfcQuantitySet = IfcQuantitySet;
+    class IfcRectangleProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.type = 3615266464;
+      }
+    }
+    IFC4X32.IfcRectangleProfileDef = IfcRectangleProfileDef;
+    class IfcRegularTimeSeries extends IfcTimeSeries {
+      constructor(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit, TimeStep, Values) {
+        super(Name, Description, StartTime, EndTime, TimeSeriesDataType, DataOrigin, UserDefinedDataOrigin, Unit);
+        this.Name = Name;
+        this.Description = Description;
+        this.StartTime = StartTime;
+        this.EndTime = EndTime;
+        this.TimeSeriesDataType = TimeSeriesDataType;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.Unit = Unit;
+        this.TimeStep = TimeStep;
+        this.Values = Values;
+        this.type = 3413951693;
+      }
+    }
+    IFC4X32.IfcRegularTimeSeries = IfcRegularTimeSeries;
+    class IfcReinforcementBarProperties extends IfcPreDefinedProperties {
+      constructor(TotalCrossSectionArea, SteelGrade, BarSurface, EffectiveDepth, NominalBarDiameter, BarCount) {
+        super();
+        this.TotalCrossSectionArea = TotalCrossSectionArea;
+        this.SteelGrade = SteelGrade;
+        this.BarSurface = BarSurface;
+        this.EffectiveDepth = EffectiveDepth;
+        this.NominalBarDiameter = NominalBarDiameter;
+        this.BarCount = BarCount;
+        this.type = 1580146022;
+      }
+    }
+    IFC4X32.IfcReinforcementBarProperties = IfcReinforcementBarProperties;
+    class IfcRelationship extends IfcRoot {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 478536968;
+      }
+    }
+    IFC4X32.IfcRelationship = IfcRelationship;
+    class IfcResourceApprovalRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatedResourceObjects, RelatingApproval) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedResourceObjects = RelatedResourceObjects;
+        this.RelatingApproval = RelatingApproval;
+        this.type = 2943643501;
+      }
+    }
+    IFC4X32.IfcResourceApprovalRelationship = IfcResourceApprovalRelationship;
+    class IfcResourceConstraintRelationship extends IfcResourceLevelRelationship {
+      constructor(Name, Description, RelatingConstraint, RelatedResourceObjects) {
+        super(Name, Description);
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingConstraint = RelatingConstraint;
+        this.RelatedResourceObjects = RelatedResourceObjects;
+        this.type = 1608871552;
+      }
+    }
+    IFC4X32.IfcResourceConstraintRelationship = IfcResourceConstraintRelationship;
+    class IfcResourceTime extends IfcSchedulingTime {
+      constructor(Name, DataOrigin, UserDefinedDataOrigin, ScheduleWork, ScheduleUsage, ScheduleStart, ScheduleFinish, ScheduleContour, LevelingDelay, IsOverAllocated, StatusTime, ActualWork, ActualUsage, ActualStart, ActualFinish, RemainingWork, RemainingUsage, Completion) {
+        super(Name, DataOrigin, UserDefinedDataOrigin);
+        this.Name = Name;
+        this.DataOrigin = DataOrigin;
+        this.UserDefinedDataOrigin = UserDefinedDataOrigin;
+        this.ScheduleWork = ScheduleWork;
+        this.ScheduleUsage = ScheduleUsage;
+        this.ScheduleStart = ScheduleStart;
+        this.ScheduleFinish = ScheduleFinish;
+        this.ScheduleContour = ScheduleContour;
+        this.LevelingDelay = LevelingDelay;
+        this.IsOverAllocated = IsOverAllocated;
+        this.StatusTime = StatusTime;
+        this.ActualWork = ActualWork;
+        this.ActualUsage = ActualUsage;
+        this.ActualStart = ActualStart;
+        this.ActualFinish = ActualFinish;
+        this.RemainingWork = RemainingWork;
+        this.RemainingUsage = RemainingUsage;
+        this.Completion = Completion;
+        this.type = 1042787934;
+      }
+    }
+    IFC4X32.IfcResourceTime = IfcResourceTime;
+    class IfcRoundedRectangleProfileDef extends IfcRectangleProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim, RoundingRadius) {
+        super(ProfileType, ProfileName, Position, XDim, YDim);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.RoundingRadius = RoundingRadius;
+        this.type = 2778083089;
+      }
+    }
+    IFC4X32.IfcRoundedRectangleProfileDef = IfcRoundedRectangleProfileDef;
+    class IfcSectionProperties extends IfcPreDefinedProperties {
+      constructor(SectionType, StartProfile, EndProfile) {
+        super();
+        this.SectionType = SectionType;
+        this.StartProfile = StartProfile;
+        this.EndProfile = EndProfile;
+        this.type = 2042790032;
+      }
+    }
+    IFC4X32.IfcSectionProperties = IfcSectionProperties;
+    class IfcSectionReinforcementProperties extends IfcPreDefinedProperties {
+      constructor(LongitudinalStartPosition, LongitudinalEndPosition, TransversePosition, ReinforcementRole, SectionDefinition, CrossSectionReinforcementDefinitions) {
+        super();
+        this.LongitudinalStartPosition = LongitudinalStartPosition;
+        this.LongitudinalEndPosition = LongitudinalEndPosition;
+        this.TransversePosition = TransversePosition;
+        this.ReinforcementRole = ReinforcementRole;
+        this.SectionDefinition = SectionDefinition;
+        this.CrossSectionReinforcementDefinitions = CrossSectionReinforcementDefinitions;
+        this.type = 4165799628;
+      }
+    }
+    IFC4X32.IfcSectionReinforcementProperties = IfcSectionReinforcementProperties;
+    class IfcSectionedSpine extends IfcGeometricRepresentationItem {
+      constructor(SpineCurve, CrossSections, CrossSectionPositions) {
+        super();
+        this.SpineCurve = SpineCurve;
+        this.CrossSections = CrossSections;
+        this.CrossSectionPositions = CrossSectionPositions;
+        this.type = 1509187699;
+      }
+    }
+    IFC4X32.IfcSectionedSpine = IfcSectionedSpine;
+    class IfcSegment extends IfcGeometricRepresentationItem {
+      constructor(Transition) {
+        super();
+        this.Transition = Transition;
+        this.type = 823603102;
+      }
+    }
+    IFC4X32.IfcSegment = IfcSegment;
+    class IfcShellBasedSurfaceModel extends IfcGeometricRepresentationItem {
+      constructor(SbsmBoundary) {
+        super();
+        this.SbsmBoundary = SbsmBoundary;
+        this.type = 4124623270;
+      }
+    }
+    IFC4X32.IfcShellBasedSurfaceModel = IfcShellBasedSurfaceModel;
+    class IfcSimpleProperty extends IfcProperty {
+      constructor(Name, Specification) {
+        super(Name, Specification);
+        this.Name = Name;
+        this.Specification = Specification;
+        this.type = 3692461612;
+      }
+    }
+    IFC4X32.IfcSimpleProperty = IfcSimpleProperty;
+    class IfcSlippageConnectionCondition extends IfcStructuralConnectionCondition {
+      constructor(Name, SlippageX, SlippageY, SlippageZ) {
+        super(Name);
+        this.Name = Name;
+        this.SlippageX = SlippageX;
+        this.SlippageY = SlippageY;
+        this.SlippageZ = SlippageZ;
+        this.type = 2609359061;
+      }
+    }
+    IFC4X32.IfcSlippageConnectionCondition = IfcSlippageConnectionCondition;
+    class IfcSolidModel extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 723233188;
+      }
+    }
+    IFC4X32.IfcSolidModel = IfcSolidModel;
+    class IfcStructuralLoadLinearForce extends IfcStructuralLoadStatic {
+      constructor(Name, LinearForceX, LinearForceY, LinearForceZ, LinearMomentX, LinearMomentY, LinearMomentZ) {
+        super(Name);
+        this.Name = Name;
+        this.LinearForceX = LinearForceX;
+        this.LinearForceY = LinearForceY;
+        this.LinearForceZ = LinearForceZ;
+        this.LinearMomentX = LinearMomentX;
+        this.LinearMomentY = LinearMomentY;
+        this.LinearMomentZ = LinearMomentZ;
+        this.type = 1595516126;
+      }
+    }
+    IFC4X32.IfcStructuralLoadLinearForce = IfcStructuralLoadLinearForce;
+    class IfcStructuralLoadPlanarForce extends IfcStructuralLoadStatic {
+      constructor(Name, PlanarForceX, PlanarForceY, PlanarForceZ) {
+        super(Name);
+        this.Name = Name;
+        this.PlanarForceX = PlanarForceX;
+        this.PlanarForceY = PlanarForceY;
+        this.PlanarForceZ = PlanarForceZ;
+        this.type = 2668620305;
+      }
+    }
+    IFC4X32.IfcStructuralLoadPlanarForce = IfcStructuralLoadPlanarForce;
+    class IfcStructuralLoadSingleDisplacement extends IfcStructuralLoadStatic {
+      constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ) {
+        super(Name);
+        this.Name = Name;
+        this.DisplacementX = DisplacementX;
+        this.DisplacementY = DisplacementY;
+        this.DisplacementZ = DisplacementZ;
+        this.RotationalDisplacementRX = RotationalDisplacementRX;
+        this.RotationalDisplacementRY = RotationalDisplacementRY;
+        this.RotationalDisplacementRZ = RotationalDisplacementRZ;
+        this.type = 2473145415;
+      }
+    }
+    IFC4X32.IfcStructuralLoadSingleDisplacement = IfcStructuralLoadSingleDisplacement;
+    class IfcStructuralLoadSingleDisplacementDistortion extends IfcStructuralLoadSingleDisplacement {
+      constructor(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ, Distortion) {
+        super(Name, DisplacementX, DisplacementY, DisplacementZ, RotationalDisplacementRX, RotationalDisplacementRY, RotationalDisplacementRZ);
+        this.Name = Name;
+        this.DisplacementX = DisplacementX;
+        this.DisplacementY = DisplacementY;
+        this.DisplacementZ = DisplacementZ;
+        this.RotationalDisplacementRX = RotationalDisplacementRX;
+        this.RotationalDisplacementRY = RotationalDisplacementRY;
+        this.RotationalDisplacementRZ = RotationalDisplacementRZ;
+        this.Distortion = Distortion;
+        this.type = 1973038258;
+      }
+    }
+    IFC4X32.IfcStructuralLoadSingleDisplacementDistortion = IfcStructuralLoadSingleDisplacementDistortion;
+    class IfcStructuralLoadSingleForce extends IfcStructuralLoadStatic {
+      constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ) {
+        super(Name);
+        this.Name = Name;
+        this.ForceX = ForceX;
+        this.ForceY = ForceY;
+        this.ForceZ = ForceZ;
+        this.MomentX = MomentX;
+        this.MomentY = MomentY;
+        this.MomentZ = MomentZ;
+        this.type = 1597423693;
+      }
+    }
+    IFC4X32.IfcStructuralLoadSingleForce = IfcStructuralLoadSingleForce;
+    class IfcStructuralLoadSingleForceWarping extends IfcStructuralLoadSingleForce {
+      constructor(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ, WarpingMoment) {
+        super(Name, ForceX, ForceY, ForceZ, MomentX, MomentY, MomentZ);
+        this.Name = Name;
+        this.ForceX = ForceX;
+        this.ForceY = ForceY;
+        this.ForceZ = ForceZ;
+        this.MomentX = MomentX;
+        this.MomentY = MomentY;
+        this.MomentZ = MomentZ;
+        this.WarpingMoment = WarpingMoment;
+        this.type = 1190533807;
+      }
+    }
+    IFC4X32.IfcStructuralLoadSingleForceWarping = IfcStructuralLoadSingleForceWarping;
+    class IfcSubedge extends IfcEdge {
+      constructor(EdgeStart, EdgeEnd, ParentEdge) {
+        super(EdgeStart, EdgeEnd);
+        this.EdgeStart = EdgeStart;
+        this.EdgeEnd = EdgeEnd;
+        this.ParentEdge = ParentEdge;
+        this.type = 2233826070;
+      }
+    }
+    IFC4X32.IfcSubedge = IfcSubedge;
+    class IfcSurface extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2513912981;
+      }
+    }
+    IFC4X32.IfcSurface = IfcSurface;
+    class IfcSurfaceStyleRendering extends IfcSurfaceStyleShading {
+      constructor(SurfaceColour, Transparency, DiffuseColour, TransmissionColour, DiffuseTransmissionColour, ReflectionColour, SpecularColour, SpecularHighlight, ReflectanceMethod) {
+        super(SurfaceColour, Transparency);
+        this.SurfaceColour = SurfaceColour;
+        this.Transparency = Transparency;
+        this.DiffuseColour = DiffuseColour;
+        this.TransmissionColour = TransmissionColour;
+        this.DiffuseTransmissionColour = DiffuseTransmissionColour;
+        this.ReflectionColour = ReflectionColour;
+        this.SpecularColour = SpecularColour;
+        this.SpecularHighlight = SpecularHighlight;
+        this.ReflectanceMethod = ReflectanceMethod;
+        this.type = 1878645084;
+      }
+    }
+    IFC4X32.IfcSurfaceStyleRendering = IfcSurfaceStyleRendering;
+    class IfcSweptAreaSolid extends IfcSolidModel {
+      constructor(SweptArea, Position) {
+        super();
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.type = 2247615214;
+      }
+    }
+    IFC4X32.IfcSweptAreaSolid = IfcSweptAreaSolid;
+    class IfcSweptDiskSolid extends IfcSolidModel {
+      constructor(Directrix, Radius, InnerRadius, StartParam, EndParam) {
+        super();
+        this.Directrix = Directrix;
+        this.Radius = Radius;
+        this.InnerRadius = InnerRadius;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.type = 1260650574;
+      }
+    }
+    IFC4X32.IfcSweptDiskSolid = IfcSweptDiskSolid;
+    class IfcSweptDiskSolidPolygonal extends IfcSweptDiskSolid {
+      constructor(Directrix, Radius, InnerRadius, StartParam, EndParam, FilletRadius) {
+        super(Directrix, Radius, InnerRadius, StartParam, EndParam);
+        this.Directrix = Directrix;
+        this.Radius = Radius;
+        this.InnerRadius = InnerRadius;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.FilletRadius = FilletRadius;
+        this.type = 1096409881;
+      }
+    }
+    IFC4X32.IfcSweptDiskSolidPolygonal = IfcSweptDiskSolidPolygonal;
+    class IfcSweptSurface extends IfcSurface {
+      constructor(SweptCurve, Position) {
+        super();
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.type = 230924584;
+      }
+    }
+    IFC4X32.IfcSweptSurface = IfcSweptSurface;
+    class IfcTShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, WebEdgeRadius, WebSlope, FlangeSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.FlangeEdgeRadius = FlangeEdgeRadius;
+        this.WebEdgeRadius = WebEdgeRadius;
+        this.WebSlope = WebSlope;
+        this.FlangeSlope = FlangeSlope;
+        this.type = 3071757647;
+      }
+    }
+    IFC4X32.IfcTShapeProfileDef = IfcTShapeProfileDef;
+    class IfcTessellatedItem extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 901063453;
+      }
+    }
+    IFC4X32.IfcTessellatedItem = IfcTessellatedItem;
+    class IfcTextLiteral extends IfcGeometricRepresentationItem {
+      constructor(Literal, Placement, Path) {
+        super();
+        this.Literal = Literal;
+        this.Placement = Placement;
+        this.Path = Path;
+        this.type = 4282788508;
+      }
+    }
+    IFC4X32.IfcTextLiteral = IfcTextLiteral;
+    class IfcTextLiteralWithExtent extends IfcTextLiteral {
+      constructor(Literal, Placement, Path, Extent, BoxAlignment) {
+        super(Literal, Placement, Path);
+        this.Literal = Literal;
+        this.Placement = Placement;
+        this.Path = Path;
+        this.Extent = Extent;
+        this.BoxAlignment = BoxAlignment;
+        this.type = 3124975700;
+      }
+    }
+    IFC4X32.IfcTextLiteralWithExtent = IfcTextLiteralWithExtent;
+    class IfcTextStyleFontModel extends IfcPreDefinedTextFont {
+      constructor(Name, FontFamily, FontStyle, FontVariant, FontWeight, FontSize) {
+        super(Name);
+        this.Name = Name;
+        this.FontFamily = FontFamily;
+        this.FontStyle = FontStyle;
+        this.FontVariant = FontVariant;
+        this.FontWeight = FontWeight;
+        this.FontSize = FontSize;
+        this.type = 1983826977;
+      }
+    }
+    IFC4X32.IfcTextStyleFontModel = IfcTextStyleFontModel;
+    class IfcTrapeziumProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, BottomXDim, TopXDim, YDim, TopXOffset) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.BottomXDim = BottomXDim;
+        this.TopXDim = TopXDim;
+        this.YDim = YDim;
+        this.TopXOffset = TopXOffset;
+        this.type = 2715220739;
+      }
+    }
+    IFC4X32.IfcTrapeziumProfileDef = IfcTrapeziumProfileDef;
+    class IfcTypeObject extends IfcObjectDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.type = 1628702193;
+      }
+    }
+    IFC4X32.IfcTypeObject = IfcTypeObject;
+    class IfcTypeProcess extends IfcTypeObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ProcessType = ProcessType;
+        this.type = 3736923433;
+      }
+    }
+    IFC4X32.IfcTypeProcess = IfcTypeProcess;
+    class IfcTypeProduct extends IfcTypeObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.type = 2347495698;
+      }
+    }
+    IFC4X32.IfcTypeProduct = IfcTypeProduct;
+    class IfcTypeResource extends IfcTypeObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.type = 3698973494;
+      }
+    }
+    IFC4X32.IfcTypeResource = IfcTypeResource;
+    class IfcUShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius, FlangeSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.FlangeSlope = FlangeSlope;
+        this.type = 427810014;
+      }
+    }
+    IFC4X32.IfcUShapeProfileDef = IfcUShapeProfileDef;
+    class IfcVector extends IfcGeometricRepresentationItem {
+      constructor(Orientation, Magnitude) {
+        super();
+        this.Orientation = Orientation;
+        this.Magnitude = Magnitude;
+        this.type = 1417489154;
+      }
+    }
+    IFC4X32.IfcVector = IfcVector;
+    class IfcVertexLoop extends IfcLoop {
+      constructor(LoopVertex) {
+        super();
+        this.LoopVertex = LoopVertex;
+        this.type = 2759199220;
+      }
+    }
+    IFC4X32.IfcVertexLoop = IfcVertexLoop;
+    class IfcZShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, FlangeWidth, WebThickness, FlangeThickness, FilletRadius, EdgeRadius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.FlangeWidth = FlangeWidth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.type = 2543172580;
+      }
+    }
+    IFC4X32.IfcZShapeProfileDef = IfcZShapeProfileDef;
+    class IfcAdvancedFace extends IfcFaceSurface {
+      constructor(Bounds, FaceSurface, SameSense) {
+        super(Bounds, FaceSurface, SameSense);
+        this.Bounds = Bounds;
+        this.FaceSurface = FaceSurface;
+        this.SameSense = SameSense;
+        this.type = 3406155212;
+      }
+    }
+    IFC4X32.IfcAdvancedFace = IfcAdvancedFace;
+    class IfcAnnotationFillArea extends IfcGeometricRepresentationItem {
+      constructor(OuterBoundary, InnerBoundaries) {
+        super();
+        this.OuterBoundary = OuterBoundary;
+        this.InnerBoundaries = InnerBoundaries;
+        this.type = 669184980;
+      }
+    }
+    IFC4X32.IfcAnnotationFillArea = IfcAnnotationFillArea;
+    class IfcAsymmetricIShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, BottomFlangeWidth, OverallDepth, WebThickness, BottomFlangeThickness, BottomFlangeFilletRadius, TopFlangeWidth, TopFlangeThickness, TopFlangeFilletRadius, BottomFlangeEdgeRadius, BottomFlangeSlope, TopFlangeEdgeRadius, TopFlangeSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.BottomFlangeWidth = BottomFlangeWidth;
+        this.OverallDepth = OverallDepth;
+        this.WebThickness = WebThickness;
+        this.BottomFlangeThickness = BottomFlangeThickness;
+        this.BottomFlangeFilletRadius = BottomFlangeFilletRadius;
+        this.TopFlangeWidth = TopFlangeWidth;
+        this.TopFlangeThickness = TopFlangeThickness;
+        this.TopFlangeFilletRadius = TopFlangeFilletRadius;
+        this.BottomFlangeEdgeRadius = BottomFlangeEdgeRadius;
+        this.BottomFlangeSlope = BottomFlangeSlope;
+        this.TopFlangeEdgeRadius = TopFlangeEdgeRadius;
+        this.TopFlangeSlope = TopFlangeSlope;
+        this.type = 3207858831;
+      }
+    }
+    IFC4X32.IfcAsymmetricIShapeProfileDef = IfcAsymmetricIShapeProfileDef;
+    class IfcAxis1Placement extends IfcPlacement {
+      constructor(Location, Axis) {
+        super(Location);
+        this.Location = Location;
+        this.Axis = Axis;
+        this.type = 4261334040;
+      }
+    }
+    IFC4X32.IfcAxis1Placement = IfcAxis1Placement;
+    class IfcAxis2Placement2D extends IfcPlacement {
+      constructor(Location, RefDirection) {
+        super(Location);
+        this.Location = Location;
+        this.RefDirection = RefDirection;
+        this.type = 3125803723;
+      }
+    }
+    IFC4X32.IfcAxis2Placement2D = IfcAxis2Placement2D;
+    class IfcAxis2Placement3D extends IfcPlacement {
+      constructor(Location, Axis, RefDirection) {
+        super(Location);
+        this.Location = Location;
+        this.Axis = Axis;
+        this.RefDirection = RefDirection;
+        this.type = 2740243338;
+      }
+    }
+    IFC4X32.IfcAxis2Placement3D = IfcAxis2Placement3D;
+    class IfcAxis2PlacementLinear extends IfcPlacement {
+      constructor(Location, Axis, RefDirection) {
+        super(Location);
+        this.Location = Location;
+        this.Axis = Axis;
+        this.RefDirection = RefDirection;
+        this.type = 3425423356;
+      }
+    }
+    IFC4X32.IfcAxis2PlacementLinear = IfcAxis2PlacementLinear;
+    class IfcBooleanResult extends IfcGeometricRepresentationItem {
+      constructor(Operator, FirstOperand, SecondOperand) {
+        super();
+        this.Operator = Operator;
+        this.FirstOperand = FirstOperand;
+        this.SecondOperand = SecondOperand;
+        this.type = 2736907675;
+      }
+    }
+    IFC4X32.IfcBooleanResult = IfcBooleanResult;
+    class IfcBoundedSurface extends IfcSurface {
+      constructor() {
+        super();
+        this.type = 4182860854;
+      }
+    }
+    IFC4X32.IfcBoundedSurface = IfcBoundedSurface;
+    class IfcBoundingBox extends IfcGeometricRepresentationItem {
+      constructor(Corner, XDim, YDim, ZDim) {
+        super();
+        this.Corner = Corner;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.ZDim = ZDim;
+        this.type = 2581212453;
+      }
+    }
+    IFC4X32.IfcBoundingBox = IfcBoundingBox;
+    class IfcBoxedHalfSpace extends IfcHalfSpaceSolid {
+      constructor(BaseSurface, AgreementFlag, Enclosure) {
+        super(BaseSurface, AgreementFlag);
+        this.BaseSurface = BaseSurface;
+        this.AgreementFlag = AgreementFlag;
+        this.Enclosure = Enclosure;
+        this.type = 2713105998;
+      }
+    }
+    IFC4X32.IfcBoxedHalfSpace = IfcBoxedHalfSpace;
+    class IfcCShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, Width, WallThickness, Girth, InternalFilletRadius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.Width = Width;
+        this.WallThickness = WallThickness;
+        this.Girth = Girth;
+        this.InternalFilletRadius = InternalFilletRadius;
+        this.type = 2898889636;
+      }
+    }
+    IFC4X32.IfcCShapeProfileDef = IfcCShapeProfileDef;
+    class IfcCartesianPoint extends IfcPoint {
+      constructor(Coordinates) {
+        super();
+        this.Coordinates = Coordinates;
+        this.type = 1123145078;
+      }
+    }
+    IFC4X32.IfcCartesianPoint = IfcCartesianPoint;
+    class IfcCartesianPointList extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 574549367;
+      }
+    }
+    IFC4X32.IfcCartesianPointList = IfcCartesianPointList;
+    class IfcCartesianPointList2D extends IfcCartesianPointList {
+      constructor(CoordList, TagList) {
+        super();
+        this.CoordList = CoordList;
+        this.TagList = TagList;
+        this.type = 1675464909;
+      }
+    }
+    IFC4X32.IfcCartesianPointList2D = IfcCartesianPointList2D;
+    class IfcCartesianPointList3D extends IfcCartesianPointList {
+      constructor(CoordList, TagList) {
+        super();
+        this.CoordList = CoordList;
+        this.TagList = TagList;
+        this.type = 2059837836;
+      }
+    }
+    IFC4X32.IfcCartesianPointList3D = IfcCartesianPointList3D;
+    class IfcCartesianTransformationOperator extends IfcGeometricRepresentationItem {
+      constructor(Axis1, Axis2, LocalOrigin, Scale) {
+        super();
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.type = 59481748;
+      }
+    }
+    IFC4X32.IfcCartesianTransformationOperator = IfcCartesianTransformationOperator;
+    class IfcCartesianTransformationOperator2D extends IfcCartesianTransformationOperator {
+      constructor(Axis1, Axis2, LocalOrigin, Scale) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.type = 3749851601;
+      }
+    }
+    IFC4X32.IfcCartesianTransformationOperator2D = IfcCartesianTransformationOperator2D;
+    class IfcCartesianTransformationOperator2DnonUniform extends IfcCartesianTransformationOperator2D {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Scale2) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Scale2 = Scale2;
+        this.type = 3486308946;
+      }
+    }
+    IFC4X32.IfcCartesianTransformationOperator2DnonUniform = IfcCartesianTransformationOperator2DnonUniform;
+    class IfcCartesianTransformationOperator3D extends IfcCartesianTransformationOperator {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3) {
+        super(Axis1, Axis2, LocalOrigin, Scale);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Axis3 = Axis3;
+        this.type = 3331915920;
+      }
+    }
+    IFC4X32.IfcCartesianTransformationOperator3D = IfcCartesianTransformationOperator3D;
+    class IfcCartesianTransformationOperator3DnonUniform extends IfcCartesianTransformationOperator3D {
+      constructor(Axis1, Axis2, LocalOrigin, Scale, Axis3, Scale2, Scale3) {
+        super(Axis1, Axis2, LocalOrigin, Scale, Axis3);
+        this.Axis1 = Axis1;
+        this.Axis2 = Axis2;
+        this.LocalOrigin = LocalOrigin;
+        this.Scale = Scale;
+        this.Axis3 = Axis3;
+        this.Scale2 = Scale2;
+        this.Scale3 = Scale3;
+        this.type = 1416205885;
+      }
+    }
+    IFC4X32.IfcCartesianTransformationOperator3DnonUniform = IfcCartesianTransformationOperator3DnonUniform;
+    class IfcCircleProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Radius) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 1383045692;
+      }
+    }
+    IFC4X32.IfcCircleProfileDef = IfcCircleProfileDef;
+    class IfcClosedShell extends IfcConnectedFaceSet {
+      constructor(CfsFaces) {
+        super(CfsFaces);
+        this.CfsFaces = CfsFaces;
+        this.type = 2205249479;
+      }
+    }
+    IFC4X32.IfcClosedShell = IfcClosedShell;
+    class IfcColourRgb extends IfcColourSpecification {
+      constructor(Name, Red, Green, Blue) {
+        super(Name);
+        this.Name = Name;
+        this.Red = Red;
+        this.Green = Green;
+        this.Blue = Blue;
+        this.type = 776857604;
+      }
+    }
+    IFC4X32.IfcColourRgb = IfcColourRgb;
+    class IfcComplexProperty extends IfcProperty {
+      constructor(Name, Specification, UsageName, HasProperties) {
+        super(Name, Specification);
+        this.Name = Name;
+        this.Specification = Specification;
+        this.UsageName = UsageName;
+        this.HasProperties = HasProperties;
+        this.type = 2542286263;
+      }
+    }
+    IFC4X32.IfcComplexProperty = IfcComplexProperty;
+    class IfcCompositeCurveSegment extends IfcSegment {
+      constructor(Transition, SameSense, ParentCurve) {
+        super(Transition);
+        this.Transition = Transition;
+        this.SameSense = SameSense;
+        this.ParentCurve = ParentCurve;
+        this.type = 2485617015;
+      }
+    }
+    IFC4X32.IfcCompositeCurveSegment = IfcCompositeCurveSegment;
+    class IfcConstructionResourceType extends IfcTypeResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.type = 2574617495;
+      }
+    }
+    IFC4X32.IfcConstructionResourceType = IfcConstructionResourceType;
+    class IfcContext extends IfcObjectDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.Phase = Phase;
+        this.RepresentationContexts = RepresentationContexts;
+        this.UnitsInContext = UnitsInContext;
+        this.type = 3419103109;
+      }
+    }
+    IFC4X32.IfcContext = IfcContext;
+    class IfcCrewResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 1815067380;
+      }
+    }
+    IFC4X32.IfcCrewResourceType = IfcCrewResourceType;
+    class IfcCsgPrimitive3D extends IfcGeometricRepresentationItem {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2506170314;
+      }
+    }
+    IFC4X32.IfcCsgPrimitive3D = IfcCsgPrimitive3D;
+    class IfcCsgSolid extends IfcSolidModel {
+      constructor(TreeRootExpression) {
+        super();
+        this.TreeRootExpression = TreeRootExpression;
+        this.type = 2147822146;
+      }
+    }
+    IFC4X32.IfcCsgSolid = IfcCsgSolid;
+    class IfcCurve extends IfcGeometricRepresentationItem {
+      constructor() {
+        super();
+        this.type = 2601014836;
+      }
+    }
+    IFC4X32.IfcCurve = IfcCurve;
+    class IfcCurveBoundedPlane extends IfcBoundedSurface {
+      constructor(BasisSurface, OuterBoundary, InnerBoundaries) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.OuterBoundary = OuterBoundary;
+        this.InnerBoundaries = InnerBoundaries;
+        this.type = 2827736869;
+      }
+    }
+    IFC4X32.IfcCurveBoundedPlane = IfcCurveBoundedPlane;
+    class IfcCurveBoundedSurface extends IfcBoundedSurface {
+      constructor(BasisSurface, Boundaries, ImplicitOuter) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.Boundaries = Boundaries;
+        this.ImplicitOuter = ImplicitOuter;
+        this.type = 2629017746;
+      }
+    }
+    IFC4X32.IfcCurveBoundedSurface = IfcCurveBoundedSurface;
+    class IfcCurveSegment extends IfcSegment {
+      constructor(Transition, Placement, SegmentStart, SegmentLength, ParentCurve) {
+        super(Transition);
+        this.Transition = Transition;
+        this.Placement = Placement;
+        this.SegmentStart = SegmentStart;
+        this.SegmentLength = SegmentLength;
+        this.ParentCurve = ParentCurve;
+        this.type = 4212018352;
+      }
+    }
+    IFC4X32.IfcCurveSegment = IfcCurveSegment;
+    class IfcDirection extends IfcGeometricRepresentationItem {
+      constructor(DirectionRatios) {
+        super();
+        this.DirectionRatios = DirectionRatios;
+        this.type = 32440307;
+      }
+    }
+    IFC4X32.IfcDirection = IfcDirection;
+    class IfcDirectrixCurveSweptAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, Directrix, StartParam, EndParam) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Directrix = Directrix;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.type = 593015953;
+      }
+    }
+    IFC4X32.IfcDirectrixCurveSweptAreaSolid = IfcDirectrixCurveSweptAreaSolid;
+    class IfcEdgeLoop extends IfcLoop {
+      constructor(EdgeList) {
+        super();
+        this.EdgeList = EdgeList;
+        this.type = 1472233963;
+      }
+    }
+    IFC4X32.IfcEdgeLoop = IfcEdgeLoop;
+    class IfcElementQuantity extends IfcQuantitySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, MethodOfMeasurement, Quantities) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.MethodOfMeasurement = MethodOfMeasurement;
+        this.Quantities = Quantities;
+        this.type = 1883228015;
+      }
+    }
+    IFC4X32.IfcElementQuantity = IfcElementQuantity;
+    class IfcElementType extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 339256511;
+      }
+    }
+    IFC4X32.IfcElementType = IfcElementType;
+    class IfcElementarySurface extends IfcSurface {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2777663545;
+      }
+    }
+    IFC4X32.IfcElementarySurface = IfcElementarySurface;
+    class IfcEllipseProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, SemiAxis1, SemiAxis2) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.SemiAxis1 = SemiAxis1;
+        this.SemiAxis2 = SemiAxis2;
+        this.type = 2835456948;
+      }
+    }
+    IFC4X32.IfcEllipseProfileDef = IfcEllipseProfileDef;
+    class IfcEventType extends IfcTypeProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, EventTriggerType, UserDefinedEventTriggerType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ProcessType = ProcessType;
+        this.PredefinedType = PredefinedType;
+        this.EventTriggerType = EventTriggerType;
+        this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;
+        this.type = 4024345920;
+      }
+    }
+    IFC4X32.IfcEventType = IfcEventType;
+    class IfcExtrudedAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, ExtrudedDirection, Depth) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.ExtrudedDirection = ExtrudedDirection;
+        this.Depth = Depth;
+        this.type = 477187591;
+      }
+    }
+    IFC4X32.IfcExtrudedAreaSolid = IfcExtrudedAreaSolid;
+    class IfcExtrudedAreaSolidTapered extends IfcExtrudedAreaSolid {
+      constructor(SweptArea, Position, ExtrudedDirection, Depth, EndSweptArea) {
+        super(SweptArea, Position, ExtrudedDirection, Depth);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.ExtrudedDirection = ExtrudedDirection;
+        this.Depth = Depth;
+        this.EndSweptArea = EndSweptArea;
+        this.type = 2804161546;
+      }
+    }
+    IFC4X32.IfcExtrudedAreaSolidTapered = IfcExtrudedAreaSolidTapered;
+    class IfcFaceBasedSurfaceModel extends IfcGeometricRepresentationItem {
+      constructor(FbsmFaces) {
+        super();
+        this.FbsmFaces = FbsmFaces;
+        this.type = 2047409740;
+      }
+    }
+    IFC4X32.IfcFaceBasedSurfaceModel = IfcFaceBasedSurfaceModel;
+    class IfcFillAreaStyleHatching extends IfcGeometricRepresentationItem {
+      constructor(HatchLineAppearance, StartOfNextHatchLine, PointOfReferenceHatchLine, PatternStart, HatchLineAngle) {
+        super();
+        this.HatchLineAppearance = HatchLineAppearance;
+        this.StartOfNextHatchLine = StartOfNextHatchLine;
+        this.PointOfReferenceHatchLine = PointOfReferenceHatchLine;
+        this.PatternStart = PatternStart;
+        this.HatchLineAngle = HatchLineAngle;
+        this.type = 374418227;
+      }
+    }
+    IFC4X32.IfcFillAreaStyleHatching = IfcFillAreaStyleHatching;
+    class IfcFillAreaStyleTiles extends IfcGeometricRepresentationItem {
+      constructor(TilingPattern, Tiles, TilingScale) {
+        super();
+        this.TilingPattern = TilingPattern;
+        this.Tiles = Tiles;
+        this.TilingScale = TilingScale;
+        this.type = 315944413;
+      }
+    }
+    IFC4X32.IfcFillAreaStyleTiles = IfcFillAreaStyleTiles;
+    class IfcFixedReferenceSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid {
+      constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {
+        super(SweptArea, Position, Directrix, StartParam, EndParam);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Directrix = Directrix;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.FixedReference = FixedReference;
+        this.type = 2652556860;
+      }
+    }
+    IFC4X32.IfcFixedReferenceSweptAreaSolid = IfcFixedReferenceSweptAreaSolid;
+    class IfcFurnishingElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 4238390223;
+      }
+    }
+    IFC4X32.IfcFurnishingElementType = IfcFurnishingElementType;
+    class IfcFurnitureType extends IfcFurnishingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, AssemblyPlace, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.AssemblyPlace = AssemblyPlace;
+        this.PredefinedType = PredefinedType;
+        this.type = 1268542332;
+      }
+    }
+    IFC4X32.IfcFurnitureType = IfcFurnitureType;
+    class IfcGeographicElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4095422895;
+      }
+    }
+    IFC4X32.IfcGeographicElementType = IfcGeographicElementType;
+    class IfcGeometricCurveSet extends IfcGeometricSet {
+      constructor(Elements) {
+        super(Elements);
+        this.Elements = Elements;
+        this.type = 987898635;
+      }
+    }
+    IFC4X32.IfcGeometricCurveSet = IfcGeometricCurveSet;
+    class IfcIShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, OverallWidth, OverallDepth, WebThickness, FlangeThickness, FilletRadius, FlangeEdgeRadius, FlangeSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.OverallWidth = OverallWidth;
+        this.OverallDepth = OverallDepth;
+        this.WebThickness = WebThickness;
+        this.FlangeThickness = FlangeThickness;
+        this.FilletRadius = FilletRadius;
+        this.FlangeEdgeRadius = FlangeEdgeRadius;
+        this.FlangeSlope = FlangeSlope;
+        this.type = 1484403080;
+      }
+    }
+    IFC4X32.IfcIShapeProfileDef = IfcIShapeProfileDef;
+    class IfcIndexedPolygonalFace extends IfcTessellatedItem {
+      constructor(CoordIndex) {
+        super();
+        this.CoordIndex = CoordIndex;
+        this.type = 178912537;
+      }
+    }
+    IFC4X32.IfcIndexedPolygonalFace = IfcIndexedPolygonalFace;
+    class IfcIndexedPolygonalFaceWithVoids extends IfcIndexedPolygonalFace {
+      constructor(CoordIndex, InnerCoordIndices) {
+        super(CoordIndex);
+        this.CoordIndex = CoordIndex;
+        this.InnerCoordIndices = InnerCoordIndices;
+        this.type = 2294589976;
+      }
+    }
+    IFC4X32.IfcIndexedPolygonalFaceWithVoids = IfcIndexedPolygonalFaceWithVoids;
+    class IfcIndexedPolygonalTextureMap extends IfcIndexedTextureMap {
+      constructor(Maps, MappedTo, TexCoords, TexCoordIndices) {
+        super(Maps, MappedTo, TexCoords);
+        this.Maps = Maps;
+        this.MappedTo = MappedTo;
+        this.TexCoords = TexCoords;
+        this.TexCoordIndices = TexCoordIndices;
+        this.type = 3465909080;
+      }
+    }
+    IFC4X32.IfcIndexedPolygonalTextureMap = IfcIndexedPolygonalTextureMap;
+    class IfcLShapeProfileDef extends IfcParameterizedProfileDef {
+      constructor(ProfileType, ProfileName, Position, Depth, Width, Thickness, FilletRadius, EdgeRadius, LegSlope) {
+        super(ProfileType, ProfileName, Position);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Depth = Depth;
+        this.Width = Width;
+        this.Thickness = Thickness;
+        this.FilletRadius = FilletRadius;
+        this.EdgeRadius = EdgeRadius;
+        this.LegSlope = LegSlope;
+        this.type = 572779678;
+      }
+    }
+    IFC4X32.IfcLShapeProfileDef = IfcLShapeProfileDef;
+    class IfcLaborResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 428585644;
+      }
+    }
+    IFC4X32.IfcLaborResourceType = IfcLaborResourceType;
+    class IfcLine extends IfcCurve {
+      constructor(Pnt, Dir) {
+        super();
+        this.Pnt = Pnt;
+        this.Dir = Dir;
+        this.type = 1281925730;
+      }
+    }
+    IFC4X32.IfcLine = IfcLine;
+    class IfcManifoldSolidBrep extends IfcSolidModel {
+      constructor(Outer) {
+        super();
+        this.Outer = Outer;
+        this.type = 1425443689;
+      }
+    }
+    IFC4X32.IfcManifoldSolidBrep = IfcManifoldSolidBrep;
+    class IfcObject extends IfcObjectDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 3888040117;
+      }
+    }
+    IFC4X32.IfcObject = IfcObject;
+    class IfcOffsetCurve extends IfcCurve {
+      constructor(BasisCurve) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.type = 590820931;
+      }
+    }
+    IFC4X32.IfcOffsetCurve = IfcOffsetCurve;
+    class IfcOffsetCurve2D extends IfcOffsetCurve {
+      constructor(BasisCurve, Distance, SelfIntersect) {
+        super(BasisCurve);
+        this.BasisCurve = BasisCurve;
+        this.Distance = Distance;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 3388369263;
+      }
+    }
+    IFC4X32.IfcOffsetCurve2D = IfcOffsetCurve2D;
+    class IfcOffsetCurve3D extends IfcOffsetCurve {
+      constructor(BasisCurve, Distance, SelfIntersect, RefDirection) {
+        super(BasisCurve);
+        this.BasisCurve = BasisCurve;
+        this.Distance = Distance;
+        this.SelfIntersect = SelfIntersect;
+        this.RefDirection = RefDirection;
+        this.type = 3505215534;
+      }
+    }
+    IFC4X32.IfcOffsetCurve3D = IfcOffsetCurve3D;
+    class IfcOffsetCurveByDistances extends IfcOffsetCurve {
+      constructor(BasisCurve, OffsetValues, Tag) {
+        super(BasisCurve);
+        this.BasisCurve = BasisCurve;
+        this.OffsetValues = OffsetValues;
+        this.Tag = Tag;
+        this.type = 2485787929;
+      }
+    }
+    IFC4X32.IfcOffsetCurveByDistances = IfcOffsetCurveByDistances;
+    class IfcPcurve extends IfcCurve {
+      constructor(BasisSurface, ReferenceCurve) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.ReferenceCurve = ReferenceCurve;
+        this.type = 1682466193;
+      }
+    }
+    IFC4X32.IfcPcurve = IfcPcurve;
+    class IfcPlanarBox extends IfcPlanarExtent {
+      constructor(SizeInX, SizeInY, Placement) {
+        super(SizeInX, SizeInY);
+        this.SizeInX = SizeInX;
+        this.SizeInY = SizeInY;
+        this.Placement = Placement;
+        this.type = 603570806;
+      }
+    }
+    IFC4X32.IfcPlanarBox = IfcPlanarBox;
+    class IfcPlane extends IfcElementarySurface {
+      constructor(Position) {
+        super(Position);
+        this.Position = Position;
+        this.type = 220341763;
+      }
+    }
+    IFC4X32.IfcPlane = IfcPlane;
+    class IfcPolynomialCurve extends IfcCurve {
+      constructor(Position, CoefficientsX, CoefficientsY, CoefficientsZ) {
+        super();
+        this.Position = Position;
+        this.CoefficientsX = CoefficientsX;
+        this.CoefficientsY = CoefficientsY;
+        this.CoefficientsZ = CoefficientsZ;
+        this.type = 3381221214;
+      }
+    }
+    IFC4X32.IfcPolynomialCurve = IfcPolynomialCurve;
+    class IfcPreDefinedColour extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 759155922;
+      }
+    }
+    IFC4X32.IfcPreDefinedColour = IfcPreDefinedColour;
+    class IfcPreDefinedCurveFont extends IfcPreDefinedItem {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 2559016684;
+      }
+    }
+    IFC4X32.IfcPreDefinedCurveFont = IfcPreDefinedCurveFont;
+    class IfcPreDefinedPropertySet extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3967405729;
+      }
+    }
+    IFC4X32.IfcPreDefinedPropertySet = IfcPreDefinedPropertySet;
+    class IfcProcedureType extends IfcTypeProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ProcessType = ProcessType;
+        this.PredefinedType = PredefinedType;
+        this.type = 569719735;
+      }
+    }
+    IFC4X32.IfcProcedureType = IfcProcedureType;
+    class IfcProcess extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.type = 2945172077;
+      }
+    }
+    IFC4X32.IfcProcess = IfcProcess;
+    class IfcProduct extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 4208778838;
+      }
+    }
+    IFC4X32.IfcProduct = IfcProduct;
+    class IfcProject extends IfcContext {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.Phase = Phase;
+        this.RepresentationContexts = RepresentationContexts;
+        this.UnitsInContext = UnitsInContext;
+        this.type = 103090709;
+      }
+    }
+    IFC4X32.IfcProject = IfcProject;
+    class IfcProjectLibrary extends IfcContext {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, Phase, RepresentationContexts, UnitsInContext);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.Phase = Phase;
+        this.RepresentationContexts = RepresentationContexts;
+        this.UnitsInContext = UnitsInContext;
+        this.type = 653396225;
+      }
+    }
+    IFC4X32.IfcProjectLibrary = IfcProjectLibrary;
+    class IfcPropertyBoundedValue extends IfcSimpleProperty {
+      constructor(Name, Specification, UpperBoundValue, LowerBoundValue, Unit, SetPointValue) {
+        super(Name, Specification);
+        this.Name = Name;
+        this.Specification = Specification;
+        this.UpperBoundValue = UpperBoundValue;
+        this.LowerBoundValue = LowerBoundValue;
+        this.Unit = Unit;
+        this.SetPointValue = SetPointValue;
+        this.type = 871118103;
+      }
+    }
+    IFC4X32.IfcPropertyBoundedValue = IfcPropertyBoundedValue;
+    class IfcPropertyEnumeratedValue extends IfcSimpleProperty {
+      constructor(Name, Specification, EnumerationValues, EnumerationReference) {
+        super(Name, Specification);
+        this.Name = Name;
+        this.Specification = Specification;
+        this.EnumerationValues = EnumerationValues;
+        this.EnumerationReference = EnumerationReference;
+        this.type = 4166981789;
+      }
+    }
+    IFC4X32.IfcPropertyEnumeratedValue = IfcPropertyEnumeratedValue;
+    class IfcPropertyListValue extends IfcSimpleProperty {
+      constructor(Name, Specification, ListValues, Unit) {
+        super(Name, Specification);
+        this.Name = Name;
+        this.Specification = Specification;
+        this.ListValues = ListValues;
+        this.Unit = Unit;
+        this.type = 2752243245;
+      }
+    }
+    IFC4X32.IfcPropertyListValue = IfcPropertyListValue;
+    class IfcPropertyReferenceValue extends IfcSimpleProperty {
+      constructor(Name, Specification, UsageName, PropertyReference) {
+        super(Name, Specification);
+        this.Name = Name;
+        this.Specification = Specification;
+        this.UsageName = UsageName;
+        this.PropertyReference = PropertyReference;
+        this.type = 941946838;
+      }
+    }
+    IFC4X32.IfcPropertyReferenceValue = IfcPropertyReferenceValue;
+    class IfcPropertySet extends IfcPropertySetDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, HasProperties) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.HasProperties = HasProperties;
+        this.type = 1451395588;
+      }
+    }
+    IFC4X32.IfcPropertySet = IfcPropertySet;
+    class IfcPropertySetTemplate extends IfcPropertyTemplateDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, ApplicableEntity, HasPropertyTemplates) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.TemplateType = TemplateType;
+        this.ApplicableEntity = ApplicableEntity;
+        this.HasPropertyTemplates = HasPropertyTemplates;
+        this.type = 492091185;
+      }
+    }
+    IFC4X32.IfcPropertySetTemplate = IfcPropertySetTemplate;
+    class IfcPropertySingleValue extends IfcSimpleProperty {
+      constructor(Name, Specification, NominalValue, Unit) {
+        super(Name, Specification);
+        this.Name = Name;
+        this.Specification = Specification;
+        this.NominalValue = NominalValue;
+        this.Unit = Unit;
+        this.type = 3650150729;
+      }
+    }
+    IFC4X32.IfcPropertySingleValue = IfcPropertySingleValue;
+    class IfcPropertyTableValue extends IfcSimpleProperty {
+      constructor(Name, Specification, DefiningValues, DefinedValues, Expression, DefiningUnit, DefinedUnit, CurveInterpolation) {
+        super(Name, Specification);
+        this.Name = Name;
+        this.Specification = Specification;
+        this.DefiningValues = DefiningValues;
+        this.DefinedValues = DefinedValues;
+        this.Expression = Expression;
+        this.DefiningUnit = DefiningUnit;
+        this.DefinedUnit = DefinedUnit;
+        this.CurveInterpolation = CurveInterpolation;
+        this.type = 110355661;
+      }
+    }
+    IFC4X32.IfcPropertyTableValue = IfcPropertyTableValue;
+    class IfcPropertyTemplate extends IfcPropertyTemplateDefinition {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 3521284610;
+      }
+    }
+    IFC4X32.IfcPropertyTemplate = IfcPropertyTemplate;
+    class IfcRectangleHollowProfileDef extends IfcRectangleProfileDef {
+      constructor(ProfileType, ProfileName, Position, XDim, YDim, WallThickness, InnerFilletRadius, OuterFilletRadius) {
+        super(ProfileType, ProfileName, Position, XDim, YDim);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.XDim = XDim;
+        this.YDim = YDim;
+        this.WallThickness = WallThickness;
+        this.InnerFilletRadius = InnerFilletRadius;
+        this.OuterFilletRadius = OuterFilletRadius;
+        this.type = 2770003689;
+      }
+    }
+    IFC4X32.IfcRectangleHollowProfileDef = IfcRectangleHollowProfileDef;
+    class IfcRectangularPyramid extends IfcCsgPrimitive3D {
+      constructor(Position, XLength, YLength, Height) {
+        super(Position);
+        this.Position = Position;
+        this.XLength = XLength;
+        this.YLength = YLength;
+        this.Height = Height;
+        this.type = 2798486643;
+      }
+    }
+    IFC4X32.IfcRectangularPyramid = IfcRectangularPyramid;
+    class IfcRectangularTrimmedSurface extends IfcBoundedSurface {
+      constructor(BasisSurface, U1, V1, U2, V2, Usense, Vsense) {
+        super();
+        this.BasisSurface = BasisSurface;
+        this.U1 = U1;
+        this.V1 = V1;
+        this.U2 = U2;
+        this.V2 = V2;
+        this.Usense = Usense;
+        this.Vsense = Vsense;
+        this.type = 3454111270;
+      }
+    }
+    IFC4X32.IfcRectangularTrimmedSurface = IfcRectangularTrimmedSurface;
+    class IfcReinforcementDefinitionProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, DefinitionType, ReinforcementSectionDefinitions) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.DefinitionType = DefinitionType;
+        this.ReinforcementSectionDefinitions = ReinforcementSectionDefinitions;
+        this.type = 3765753017;
+      }
+    }
+    IFC4X32.IfcReinforcementDefinitionProperties = IfcReinforcementDefinitionProperties;
+    class IfcRelAssigns extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.type = 3939117080;
+      }
+    }
+    IFC4X32.IfcRelAssigns = IfcRelAssigns;
+    class IfcRelAssignsToActor extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingActor, ActingRole) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingActor = RelatingActor;
+        this.ActingRole = ActingRole;
+        this.type = 1683148259;
+      }
+    }
+    IFC4X32.IfcRelAssignsToActor = IfcRelAssignsToActor;
+    class IfcRelAssignsToControl extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingControl) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingControl = RelatingControl;
+        this.type = 2495723537;
+      }
+    }
+    IFC4X32.IfcRelAssignsToControl = IfcRelAssignsToControl;
+    class IfcRelAssignsToGroup extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingGroup = RelatingGroup;
+        this.type = 1307041759;
+      }
+    }
+    IFC4X32.IfcRelAssignsToGroup = IfcRelAssignsToGroup;
+    class IfcRelAssignsToGroupByFactor extends IfcRelAssignsToGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup, Factor) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingGroup);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingGroup = RelatingGroup;
+        this.Factor = Factor;
+        this.type = 1027710054;
+      }
+    }
+    IFC4X32.IfcRelAssignsToGroupByFactor = IfcRelAssignsToGroupByFactor;
+    class IfcRelAssignsToProcess extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProcess, QuantityInProcess) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingProcess = RelatingProcess;
+        this.QuantityInProcess = QuantityInProcess;
+        this.type = 4278684876;
+      }
+    }
+    IFC4X32.IfcRelAssignsToProcess = IfcRelAssignsToProcess;
+    class IfcRelAssignsToProduct extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingProduct) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingProduct = RelatingProduct;
+        this.type = 2857406711;
+      }
+    }
+    IFC4X32.IfcRelAssignsToProduct = IfcRelAssignsToProduct;
+    class IfcRelAssignsToResource extends IfcRelAssigns {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType, RelatingResource) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatedObjectsType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatedObjectsType = RelatedObjectsType;
+        this.RelatingResource = RelatingResource;
+        this.type = 205026976;
+      }
+    }
+    IFC4X32.IfcRelAssignsToResource = IfcRelAssignsToResource;
+    class IfcRelAssociates extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 1865459582;
+      }
+    }
+    IFC4X32.IfcRelAssociates = IfcRelAssociates;
+    class IfcRelAssociatesApproval extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingApproval) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingApproval = RelatingApproval;
+        this.type = 4095574036;
+      }
+    }
+    IFC4X32.IfcRelAssociatesApproval = IfcRelAssociatesApproval;
+    class IfcRelAssociatesClassification extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingClassification) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingClassification = RelatingClassification;
+        this.type = 919958153;
+      }
+    }
+    IFC4X32.IfcRelAssociatesClassification = IfcRelAssociatesClassification;
+    class IfcRelAssociatesConstraint extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, Intent, RelatingConstraint) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.Intent = Intent;
+        this.RelatingConstraint = RelatingConstraint;
+        this.type = 2728634034;
+      }
+    }
+    IFC4X32.IfcRelAssociatesConstraint = IfcRelAssociatesConstraint;
+    class IfcRelAssociatesDocument extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingDocument) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingDocument = RelatingDocument;
+        this.type = 982818633;
+      }
+    }
+    IFC4X32.IfcRelAssociatesDocument = IfcRelAssociatesDocument;
+    class IfcRelAssociatesLibrary extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingLibrary) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingLibrary = RelatingLibrary;
+        this.type = 3840914261;
+      }
+    }
+    IFC4X32.IfcRelAssociatesLibrary = IfcRelAssociatesLibrary;
+    class IfcRelAssociatesMaterial extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingMaterial) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingMaterial = RelatingMaterial;
+        this.type = 2655215786;
+      }
+    }
+    IFC4X32.IfcRelAssociatesMaterial = IfcRelAssociatesMaterial;
+    class IfcRelAssociatesProfileDef extends IfcRelAssociates {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingProfileDef) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatedObjects);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingProfileDef = RelatingProfileDef;
+        this.type = 1033248425;
+      }
+    }
+    IFC4X32.IfcRelAssociatesProfileDef = IfcRelAssociatesProfileDef;
+    class IfcRelConnects extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 826625072;
+      }
+    }
+    IFC4X32.IfcRelConnects = IfcRelConnects;
+    class IfcRelConnectsElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.type = 1204542856;
+      }
+    }
+    IFC4X32.IfcRelConnectsElements = IfcRelConnectsElements;
+    class IfcRelConnectsPathElements extends IfcRelConnectsElements {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RelatingPriorities, RelatedPriorities, RelatedConnectionType, RelatingConnectionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.RelatingPriorities = RelatingPriorities;
+        this.RelatedPriorities = RelatedPriorities;
+        this.RelatedConnectionType = RelatedConnectionType;
+        this.RelatingConnectionType = RelatingConnectionType;
+        this.type = 3945020480;
+      }
+    }
+    IFC4X32.IfcRelConnectsPathElements = IfcRelConnectsPathElements;
+    class IfcRelConnectsPortToElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingPort = RelatingPort;
+        this.RelatedElement = RelatedElement;
+        this.type = 4201705270;
+      }
+    }
+    IFC4X32.IfcRelConnectsPortToElement = IfcRelConnectsPortToElement;
+    class IfcRelConnectsPorts extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingPort, RelatedPort, RealizingElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingPort = RelatingPort;
+        this.RelatedPort = RelatedPort;
+        this.RealizingElement = RealizingElement;
+        this.type = 3190031847;
+      }
+    }
+    IFC4X32.IfcRelConnectsPorts = IfcRelConnectsPorts;
+    class IfcRelConnectsStructuralActivity extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedStructuralActivity) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedStructuralActivity = RelatedStructuralActivity;
+        this.type = 2127690289;
+      }
+    }
+    IFC4X32.IfcRelConnectsStructuralActivity = IfcRelConnectsStructuralActivity;
+    class IfcRelConnectsStructuralMember extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingStructuralMember = RelatingStructuralMember;
+        this.RelatedStructuralConnection = RelatedStructuralConnection;
+        this.AppliedCondition = AppliedCondition;
+        this.AdditionalConditions = AdditionalConditions;
+        this.SupportedLength = SupportedLength;
+        this.ConditionCoordinateSystem = ConditionCoordinateSystem;
+        this.type = 1638771189;
+      }
+    }
+    IFC4X32.IfcRelConnectsStructuralMember = IfcRelConnectsStructuralMember;
+    class IfcRelConnectsWithEccentricity extends IfcRelConnectsStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem, ConnectionConstraint) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingStructuralMember, RelatedStructuralConnection, AppliedCondition, AdditionalConditions, SupportedLength, ConditionCoordinateSystem);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingStructuralMember = RelatingStructuralMember;
+        this.RelatedStructuralConnection = RelatedStructuralConnection;
+        this.AppliedCondition = AppliedCondition;
+        this.AdditionalConditions = AdditionalConditions;
+        this.SupportedLength = SupportedLength;
+        this.ConditionCoordinateSystem = ConditionCoordinateSystem;
+        this.ConnectionConstraint = ConnectionConstraint;
+        this.type = 504942748;
+      }
+    }
+    IFC4X32.IfcRelConnectsWithEccentricity = IfcRelConnectsWithEccentricity;
+    class IfcRelConnectsWithRealizingElements extends IfcRelConnectsElements {
+      constructor(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement, RealizingElements, ConnectionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ConnectionGeometry, RelatingElement, RelatedElement);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.RealizingElements = RealizingElements;
+        this.ConnectionType = ConnectionType;
+        this.type = 3678494232;
+      }
+    }
+    IFC4X32.IfcRelConnectsWithRealizingElements = IfcRelConnectsWithRealizingElements;
+    class IfcRelContainedInSpatialStructure extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedElements = RelatedElements;
+        this.RelatingStructure = RelatingStructure;
+        this.type = 3242617779;
+      }
+    }
+    IFC4X32.IfcRelContainedInSpatialStructure = IfcRelContainedInSpatialStructure;
+    class IfcRelCoversBldgElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedCoverings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingBuildingElement = RelatingBuildingElement;
+        this.RelatedCoverings = RelatedCoverings;
+        this.type = 886880790;
+      }
+    }
+    IFC4X32.IfcRelCoversBldgElements = IfcRelCoversBldgElements;
+    class IfcRelCoversSpaces extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedCoverings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedCoverings = RelatedCoverings;
+        this.type = 2802773753;
+      }
+    }
+    IFC4X32.IfcRelCoversSpaces = IfcRelCoversSpaces;
+    class IfcRelDeclares extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingContext, RelatedDefinitions) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingContext = RelatingContext;
+        this.RelatedDefinitions = RelatedDefinitions;
+        this.type = 2565941209;
+      }
+    }
+    IFC4X32.IfcRelDeclares = IfcRelDeclares;
+    class IfcRelDecomposes extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 2551354335;
+      }
+    }
+    IFC4X32.IfcRelDecomposes = IfcRelDecomposes;
+    class IfcRelDefines extends IfcRelationship {
+      constructor(GlobalId, OwnerHistory, Name, Description) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.type = 693640335;
+      }
+    }
+    IFC4X32.IfcRelDefines = IfcRelDefines;
+    class IfcRelDefinesByObject extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingObject) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingObject = RelatingObject;
+        this.type = 1462361463;
+      }
+    }
+    IFC4X32.IfcRelDefinesByObject = IfcRelDefinesByObject;
+    class IfcRelDefinesByProperties extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingPropertyDefinition) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingPropertyDefinition = RelatingPropertyDefinition;
+        this.type = 4186316022;
+      }
+    }
+    IFC4X32.IfcRelDefinesByProperties = IfcRelDefinesByProperties;
+    class IfcRelDefinesByTemplate extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedPropertySets, RelatingTemplate) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedPropertySets = RelatedPropertySets;
+        this.RelatingTemplate = RelatingTemplate;
+        this.type = 307848117;
+      }
+    }
+    IFC4X32.IfcRelDefinesByTemplate = IfcRelDefinesByTemplate;
+    class IfcRelDefinesByType extends IfcRelDefines {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedObjects, RelatingType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedObjects = RelatedObjects;
+        this.RelatingType = RelatingType;
+        this.type = 781010003;
+      }
+    }
+    IFC4X32.IfcRelDefinesByType = IfcRelDefinesByType;
+    class IfcRelFillsElement extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingOpeningElement, RelatedBuildingElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingOpeningElement = RelatingOpeningElement;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.type = 3940055652;
+      }
+    }
+    IFC4X32.IfcRelFillsElement = IfcRelFillsElement;
+    class IfcRelFlowControlElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedControlElements, RelatingFlowElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedControlElements = RelatedControlElements;
+        this.RelatingFlowElement = RelatingFlowElement;
+        this.type = 279856033;
+      }
+    }
+    IFC4X32.IfcRelFlowControlElements = IfcRelFlowControlElements;
+    class IfcRelInterferesElements extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedElement, InterferenceGeometry, InterferenceSpace, InterferenceType, ImpliedOrder) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedElement = RelatedElement;
+        this.InterferenceGeometry = InterferenceGeometry;
+        this.InterferenceSpace = InterferenceSpace;
+        this.InterferenceType = InterferenceType;
+        this.ImpliedOrder = ImpliedOrder;
+        this.type = 427948657;
+      }
+    }
+    IFC4X32.IfcRelInterferesElements = IfcRelInterferesElements;
+    class IfcRelNests extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingObject = RelatingObject;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 3268803585;
+      }
+    }
+    IFC4X32.IfcRelNests = IfcRelNests;
+    class IfcRelPositions extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingPositioningElement, RelatedProducts) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingPositioningElement = RelatingPositioningElement;
+        this.RelatedProducts = RelatedProducts;
+        this.type = 1441486842;
+      }
+    }
+    IFC4X32.IfcRelPositions = IfcRelPositions;
+    class IfcRelProjectsElement extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedFeatureElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedFeatureElement = RelatedFeatureElement;
+        this.type = 750771296;
+      }
+    }
+    IFC4X32.IfcRelProjectsElement = IfcRelProjectsElement;
+    class IfcRelReferencedInSpatialStructure extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatedElements, RelatingStructure) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatedElements = RelatedElements;
+        this.RelatingStructure = RelatingStructure;
+        this.type = 1245217292;
+      }
+    }
+    IFC4X32.IfcRelReferencedInSpatialStructure = IfcRelReferencedInSpatialStructure;
+    class IfcRelSequence extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingProcess, RelatedProcess, TimeLag, SequenceType, UserDefinedSequenceType) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingProcess = RelatingProcess;
+        this.RelatedProcess = RelatedProcess;
+        this.TimeLag = TimeLag;
+        this.SequenceType = SequenceType;
+        this.UserDefinedSequenceType = UserDefinedSequenceType;
+        this.type = 4122056220;
+      }
+    }
+    IFC4X32.IfcRelSequence = IfcRelSequence;
+    class IfcRelServicesBuildings extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSystem, RelatedBuildings) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSystem = RelatingSystem;
+        this.RelatedBuildings = RelatedBuildings;
+        this.type = 366585022;
+      }
+    }
+    IFC4X32.IfcRelServicesBuildings = IfcRelServicesBuildings;
+    class IfcRelSpaceBoundary extends IfcRelConnects {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;
+        this.InternalOrExternalBoundary = InternalOrExternalBoundary;
+        this.type = 3451746338;
+      }
+    }
+    IFC4X32.IfcRelSpaceBoundary = IfcRelSpaceBoundary;
+    class IfcRelSpaceBoundary1stLevel extends IfcRelSpaceBoundary {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;
+        this.InternalOrExternalBoundary = InternalOrExternalBoundary;
+        this.ParentBoundary = ParentBoundary;
+        this.type = 3523091289;
+      }
+    }
+    IFC4X32.IfcRelSpaceBoundary1stLevel = IfcRelSpaceBoundary1stLevel;
+    class IfcRelSpaceBoundary2ndLevel extends IfcRelSpaceBoundary1stLevel {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary, CorrespondingBoundary) {
+        super(GlobalId, OwnerHistory, Name, Description, RelatingSpace, RelatedBuildingElement, ConnectionGeometry, PhysicalOrVirtualBoundary, InternalOrExternalBoundary, ParentBoundary);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingSpace = RelatingSpace;
+        this.RelatedBuildingElement = RelatedBuildingElement;
+        this.ConnectionGeometry = ConnectionGeometry;
+        this.PhysicalOrVirtualBoundary = PhysicalOrVirtualBoundary;
+        this.InternalOrExternalBoundary = InternalOrExternalBoundary;
+        this.ParentBoundary = ParentBoundary;
+        this.CorrespondingBoundary = CorrespondingBoundary;
+        this.type = 1521410863;
+      }
+    }
+    IFC4X32.IfcRelSpaceBoundary2ndLevel = IfcRelSpaceBoundary2ndLevel;
+    class IfcRelVoidsElement extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingBuildingElement, RelatedOpeningElement) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingBuildingElement = RelatingBuildingElement;
+        this.RelatedOpeningElement = RelatedOpeningElement;
+        this.type = 1401173127;
+      }
+    }
+    IFC4X32.IfcRelVoidsElement = IfcRelVoidsElement;
+    class IfcReparametrisedCompositeCurveSegment extends IfcCompositeCurveSegment {
+      constructor(Transition, SameSense, ParentCurve, ParamLength) {
+        super(Transition, SameSense, ParentCurve);
+        this.Transition = Transition;
+        this.SameSense = SameSense;
+        this.ParentCurve = ParentCurve;
+        this.ParamLength = ParamLength;
+        this.type = 816062949;
+      }
+    }
+    IFC4X32.IfcReparametrisedCompositeCurveSegment = IfcReparametrisedCompositeCurveSegment;
+    class IfcResource extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.type = 2914609552;
+      }
+    }
+    IFC4X32.IfcResource = IfcResource;
+    class IfcRevolvedAreaSolid extends IfcSweptAreaSolid {
+      constructor(SweptArea, Position, Axis, Angle) {
+        super(SweptArea, Position);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Axis = Axis;
+        this.Angle = Angle;
+        this.type = 1856042241;
+      }
+    }
+    IFC4X32.IfcRevolvedAreaSolid = IfcRevolvedAreaSolid;
+    class IfcRevolvedAreaSolidTapered extends IfcRevolvedAreaSolid {
+      constructor(SweptArea, Position, Axis, Angle, EndSweptArea) {
+        super(SweptArea, Position, Axis, Angle);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Axis = Axis;
+        this.Angle = Angle;
+        this.EndSweptArea = EndSweptArea;
+        this.type = 3243963512;
+      }
+    }
+    IFC4X32.IfcRevolvedAreaSolidTapered = IfcRevolvedAreaSolidTapered;
+    class IfcRightCircularCone extends IfcCsgPrimitive3D {
+      constructor(Position, Height, BottomRadius) {
+        super(Position);
+        this.Position = Position;
+        this.Height = Height;
+        this.BottomRadius = BottomRadius;
+        this.type = 4158566097;
+      }
+    }
+    IFC4X32.IfcRightCircularCone = IfcRightCircularCone;
+    class IfcRightCircularCylinder extends IfcCsgPrimitive3D {
+      constructor(Position, Height, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Height = Height;
+        this.Radius = Radius;
+        this.type = 3626867408;
+      }
+    }
+    IFC4X32.IfcRightCircularCylinder = IfcRightCircularCylinder;
+    class IfcSectionedSolid extends IfcSolidModel {
+      constructor(Directrix, CrossSections) {
+        super();
+        this.Directrix = Directrix;
+        this.CrossSections = CrossSections;
+        this.type = 1862484736;
+      }
+    }
+    IFC4X32.IfcSectionedSolid = IfcSectionedSolid;
+    class IfcSectionedSolidHorizontal extends IfcSectionedSolid {
+      constructor(Directrix, CrossSections, CrossSectionPositions) {
+        super(Directrix, CrossSections);
+        this.Directrix = Directrix;
+        this.CrossSections = CrossSections;
+        this.CrossSectionPositions = CrossSectionPositions;
+        this.type = 1290935644;
+      }
+    }
+    IFC4X32.IfcSectionedSolidHorizontal = IfcSectionedSolidHorizontal;
+    class IfcSectionedSurface extends IfcSurface {
+      constructor(Directrix, CrossSectionPositions, CrossSections) {
+        super();
+        this.Directrix = Directrix;
+        this.CrossSectionPositions = CrossSectionPositions;
+        this.CrossSections = CrossSections;
+        this.type = 1356537516;
+      }
+    }
+    IFC4X32.IfcSectionedSurface = IfcSectionedSurface;
+    class IfcSimplePropertyTemplate extends IfcPropertyTemplate {
+      constructor(GlobalId, OwnerHistory, Name, Description, TemplateType, PrimaryMeasureType, SecondaryMeasureType, Enumerators, PrimaryUnit, SecondaryUnit, Expression, AccessState) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.TemplateType = TemplateType;
+        this.PrimaryMeasureType = PrimaryMeasureType;
+        this.SecondaryMeasureType = SecondaryMeasureType;
+        this.Enumerators = Enumerators;
+        this.PrimaryUnit = PrimaryUnit;
+        this.SecondaryUnit = SecondaryUnit;
+        this.Expression = Expression;
+        this.AccessState = AccessState;
+        this.type = 3663146110;
+      }
+    }
+    IFC4X32.IfcSimplePropertyTemplate = IfcSimplePropertyTemplate;
+    class IfcSpatialElement extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.type = 1412071761;
+      }
+    }
+    IFC4X32.IfcSpatialElement = IfcSpatialElement;
+    class IfcSpatialElementType extends IfcTypeProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 710998568;
+      }
+    }
+    IFC4X32.IfcSpatialElementType = IfcSpatialElementType;
+    class IfcSpatialStructureElement extends IfcSpatialElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.type = 2706606064;
+      }
+    }
+    IFC4X32.IfcSpatialStructureElement = IfcSpatialStructureElement;
+    class IfcSpatialStructureElementType extends IfcSpatialElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3893378262;
+      }
+    }
+    IFC4X32.IfcSpatialStructureElementType = IfcSpatialStructureElementType;
+    class IfcSpatialZone extends IfcSpatialElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.PredefinedType = PredefinedType;
+        this.type = 463610769;
+      }
+    }
+    IFC4X32.IfcSpatialZone = IfcSpatialZone;
+    class IfcSpatialZoneType extends IfcSpatialElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.LongName = LongName;
+        this.type = 2481509218;
+      }
+    }
+    IFC4X32.IfcSpatialZoneType = IfcSpatialZoneType;
+    class IfcSphere extends IfcCsgPrimitive3D {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 451544542;
+      }
+    }
+    IFC4X32.IfcSphere = IfcSphere;
+    class IfcSphericalSurface extends IfcElementarySurface {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 4015995234;
+      }
+    }
+    IFC4X32.IfcSphericalSurface = IfcSphericalSurface;
+    class IfcSpiral extends IfcCurve {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2735484536;
+      }
+    }
+    IFC4X32.IfcSpiral = IfcSpiral;
+    class IfcStructuralActivity extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 3544373492;
+      }
+    }
+    IFC4X32.IfcStructuralActivity = IfcStructuralActivity;
+    class IfcStructuralItem extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 3136571912;
+      }
+    }
+    IFC4X32.IfcStructuralItem = IfcStructuralItem;
+    class IfcStructuralMember extends IfcStructuralItem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 530289379;
+      }
+    }
+    IFC4X32.IfcStructuralMember = IfcStructuralMember;
+    class IfcStructuralReaction extends IfcStructuralActivity {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 3689010777;
+      }
+    }
+    IFC4X32.IfcStructuralReaction = IfcStructuralReaction;
+    class IfcStructuralSurfaceMember extends IfcStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Thickness = Thickness;
+        this.type = 3979015343;
+      }
+    }
+    IFC4X32.IfcStructuralSurfaceMember = IfcStructuralSurfaceMember;
+    class IfcStructuralSurfaceMemberVarying extends IfcStructuralSurfaceMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Thickness);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Thickness = Thickness;
+        this.type = 2218152070;
+      }
+    }
+    IFC4X32.IfcStructuralSurfaceMemberVarying = IfcStructuralSurfaceMemberVarying;
+    class IfcStructuralSurfaceReaction extends IfcStructuralReaction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.PredefinedType = PredefinedType;
+        this.type = 603775116;
+      }
+    }
+    IFC4X32.IfcStructuralSurfaceReaction = IfcStructuralSurfaceReaction;
+    class IfcSubContractResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 4095615324;
+      }
+    }
+    IFC4X32.IfcSubContractResourceType = IfcSubContractResourceType;
+    class IfcSurfaceCurve extends IfcCurve {
+      constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {
+        super();
+        this.Curve3D = Curve3D;
+        this.AssociatedGeometry = AssociatedGeometry;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 699246055;
+      }
+    }
+    IFC4X32.IfcSurfaceCurve = IfcSurfaceCurve;
+    class IfcSurfaceCurveSweptAreaSolid extends IfcDirectrixCurveSweptAreaSolid {
+      constructor(SweptArea, Position, Directrix, StartParam, EndParam, ReferenceSurface) {
+        super(SweptArea, Position, Directrix, StartParam, EndParam);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Directrix = Directrix;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.ReferenceSurface = ReferenceSurface;
+        this.type = 2028607225;
+      }
+    }
+    IFC4X32.IfcSurfaceCurveSweptAreaSolid = IfcSurfaceCurveSweptAreaSolid;
+    class IfcSurfaceOfLinearExtrusion extends IfcSweptSurface {
+      constructor(SweptCurve, Position, ExtrudedDirection, Depth) {
+        super(SweptCurve, Position);
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.ExtrudedDirection = ExtrudedDirection;
+        this.Depth = Depth;
+        this.type = 2809605785;
+      }
+    }
+    IFC4X32.IfcSurfaceOfLinearExtrusion = IfcSurfaceOfLinearExtrusion;
+    class IfcSurfaceOfRevolution extends IfcSweptSurface {
+      constructor(SweptCurve, Position, AxisPosition) {
+        super(SweptCurve, Position);
+        this.SweptCurve = SweptCurve;
+        this.Position = Position;
+        this.AxisPosition = AxisPosition;
+        this.type = 4124788165;
+      }
+    }
+    IFC4X32.IfcSurfaceOfRevolution = IfcSurfaceOfRevolution;
+    class IfcSystemFurnitureElementType extends IfcFurnishingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1580310250;
+      }
+    }
+    IFC4X32.IfcSystemFurnitureElementType = IfcSystemFurnitureElementType;
+    class IfcTask extends IfcProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Status, WorkMethod, IsMilestone, Priority, TaskTime, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Status = Status;
+        this.WorkMethod = WorkMethod;
+        this.IsMilestone = IsMilestone;
+        this.Priority = Priority;
+        this.TaskTime = TaskTime;
+        this.PredefinedType = PredefinedType;
+        this.type = 3473067441;
+      }
+    }
+    IFC4X32.IfcTask = IfcTask;
+    class IfcTaskType extends IfcTypeProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType, PredefinedType, WorkMethod) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ProcessType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ProcessType = ProcessType;
+        this.PredefinedType = PredefinedType;
+        this.WorkMethod = WorkMethod;
+        this.type = 3206491090;
+      }
+    }
+    IFC4X32.IfcTaskType = IfcTaskType;
+    class IfcTessellatedFaceSet extends IfcTessellatedItem {
+      constructor(Coordinates, Closed) {
+        super();
+        this.Coordinates = Coordinates;
+        this.Closed = Closed;
+        this.type = 2387106220;
+      }
+    }
+    IFC4X32.IfcTessellatedFaceSet = IfcTessellatedFaceSet;
+    class IfcThirdOrderPolynomialSpiral extends IfcSpiral {
+      constructor(Position, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) {
+        super(Position);
+        this.Position = Position;
+        this.CubicTerm = CubicTerm;
+        this.QuadraticTerm = QuadraticTerm;
+        this.LinearTerm = LinearTerm;
+        this.ConstantTerm = ConstantTerm;
+        this.type = 782932809;
+      }
+    }
+    IFC4X32.IfcThirdOrderPolynomialSpiral = IfcThirdOrderPolynomialSpiral;
+    class IfcToroidalSurface extends IfcElementarySurface {
+      constructor(Position, MajorRadius, MinorRadius) {
+        super(Position);
+        this.Position = Position;
+        this.MajorRadius = MajorRadius;
+        this.MinorRadius = MinorRadius;
+        this.type = 1935646853;
+      }
+    }
+    IFC4X32.IfcToroidalSurface = IfcToroidalSurface;
+    class IfcTransportationDeviceType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3665877780;
+      }
+    }
+    IFC4X32.IfcTransportationDeviceType = IfcTransportationDeviceType;
+    class IfcTriangulatedFaceSet extends IfcTessellatedFaceSet {
+      constructor(Coordinates, Closed, Normals, CoordIndex, PnIndex) {
+        super(Coordinates, Closed);
+        this.Coordinates = Coordinates;
+        this.Closed = Closed;
+        this.Normals = Normals;
+        this.CoordIndex = CoordIndex;
+        this.PnIndex = PnIndex;
+        this.type = 2916149573;
+      }
+    }
+    IFC4X32.IfcTriangulatedFaceSet = IfcTriangulatedFaceSet;
+    class IfcTriangulatedIrregularNetwork extends IfcTriangulatedFaceSet {
+      constructor(Coordinates, Closed, Normals, CoordIndex, PnIndex, Flags) {
+        super(Coordinates, Closed, Normals, CoordIndex, PnIndex);
+        this.Coordinates = Coordinates;
+        this.Closed = Closed;
+        this.Normals = Normals;
+        this.CoordIndex = CoordIndex;
+        this.PnIndex = PnIndex;
+        this.Flags = Flags;
+        this.type = 1229763772;
+      }
+    }
+    IFC4X32.IfcTriangulatedIrregularNetwork = IfcTriangulatedIrregularNetwork;
+    class IfcVehicleType extends IfcTransportationDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3651464721;
+      }
+    }
+    IFC4X32.IfcVehicleType = IfcVehicleType;
+    class IfcWindowLiningProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, ShapeAspectStyle, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.LiningDepth = LiningDepth;
+        this.LiningThickness = LiningThickness;
+        this.TransomThickness = TransomThickness;
+        this.MullionThickness = MullionThickness;
+        this.FirstTransomOffset = FirstTransomOffset;
+        this.SecondTransomOffset = SecondTransomOffset;
+        this.FirstMullionOffset = FirstMullionOffset;
+        this.SecondMullionOffset = SecondMullionOffset;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.LiningOffset = LiningOffset;
+        this.LiningToPanelOffsetX = LiningToPanelOffsetX;
+        this.LiningToPanelOffsetY = LiningToPanelOffsetY;
+        this.type = 336235671;
+      }
+    }
+    IFC4X32.IfcWindowLiningProperties = IfcWindowLiningProperties;
+    class IfcWindowPanelProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.OperationType = OperationType;
+        this.PanelPosition = PanelPosition;
+        this.FrameDepth = FrameDepth;
+        this.FrameThickness = FrameThickness;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 512836454;
+      }
+    }
+    IFC4X32.IfcWindowPanelProperties = IfcWindowPanelProperties;
+    class IfcActor extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheActor = TheActor;
+        this.type = 2296667514;
+      }
+    }
+    IFC4X32.IfcActor = IfcActor;
+    class IfcAdvancedBrep extends IfcManifoldSolidBrep {
+      constructor(Outer) {
+        super(Outer);
+        this.Outer = Outer;
+        this.type = 1635779807;
+      }
+    }
+    IFC4X32.IfcAdvancedBrep = IfcAdvancedBrep;
+    class IfcAdvancedBrepWithVoids extends IfcAdvancedBrep {
+      constructor(Outer, Voids) {
+        super(Outer);
+        this.Outer = Outer;
+        this.Voids = Voids;
+        this.type = 2603310189;
+      }
+    }
+    IFC4X32.IfcAdvancedBrepWithVoids = IfcAdvancedBrepWithVoids;
+    class IfcAnnotation extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.type = 1674181508;
+      }
+    }
+    IFC4X32.IfcAnnotation = IfcAnnotation;
+    class IfcBSplineSurface extends IfcBoundedSurface {
+      constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect) {
+        super();
+        this.UDegree = UDegree;
+        this.VDegree = VDegree;
+        this.ControlPointsList = ControlPointsList;
+        this.SurfaceForm = SurfaceForm;
+        this.UClosed = UClosed;
+        this.VClosed = VClosed;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 2887950389;
+      }
+    }
+    IFC4X32.IfcBSplineSurface = IfcBSplineSurface;
+    class IfcBSplineSurfaceWithKnots extends IfcBSplineSurface {
+      constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec) {
+        super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect);
+        this.UDegree = UDegree;
+        this.VDegree = VDegree;
+        this.ControlPointsList = ControlPointsList;
+        this.SurfaceForm = SurfaceForm;
+        this.UClosed = UClosed;
+        this.VClosed = VClosed;
+        this.SelfIntersect = SelfIntersect;
+        this.UMultiplicities = UMultiplicities;
+        this.VMultiplicities = VMultiplicities;
+        this.UKnots = UKnots;
+        this.VKnots = VKnots;
+        this.KnotSpec = KnotSpec;
+        this.type = 167062518;
+      }
+    }
+    IFC4X32.IfcBSplineSurfaceWithKnots = IfcBSplineSurfaceWithKnots;
+    class IfcBlock extends IfcCsgPrimitive3D {
+      constructor(Position, XLength, YLength, ZLength) {
+        super(Position);
+        this.Position = Position;
+        this.XLength = XLength;
+        this.YLength = YLength;
+        this.ZLength = ZLength;
+        this.type = 1334484129;
+      }
+    }
+    IFC4X32.IfcBlock = IfcBlock;
+    class IfcBooleanClippingResult extends IfcBooleanResult {
+      constructor(Operator, FirstOperand, SecondOperand) {
+        super(Operator, FirstOperand, SecondOperand);
+        this.Operator = Operator;
+        this.FirstOperand = FirstOperand;
+        this.SecondOperand = SecondOperand;
+        this.type = 3649129432;
+      }
+    }
+    IFC4X32.IfcBooleanClippingResult = IfcBooleanClippingResult;
+    class IfcBoundedCurve extends IfcCurve {
+      constructor() {
+        super();
+        this.type = 1260505505;
+      }
+    }
+    IFC4X32.IfcBoundedCurve = IfcBoundedCurve;
+    class IfcBuildingStorey extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, Elevation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.Elevation = Elevation;
+        this.type = 3124254112;
+      }
+    }
+    IFC4X32.IfcBuildingStorey = IfcBuildingStorey;
+    class IfcBuiltElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1626504194;
+      }
+    }
+    IFC4X32.IfcBuiltElementType = IfcBuiltElementType;
+    class IfcChimneyType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2197970202;
+      }
+    }
+    IFC4X32.IfcChimneyType = IfcChimneyType;
+    class IfcCircleHollowProfileDef extends IfcCircleProfileDef {
+      constructor(ProfileType, ProfileName, Position, Radius, WallThickness) {
+        super(ProfileType, ProfileName, Position, Radius);
+        this.ProfileType = ProfileType;
+        this.ProfileName = ProfileName;
+        this.Position = Position;
+        this.Radius = Radius;
+        this.WallThickness = WallThickness;
+        this.type = 2937912522;
+      }
+    }
+    IFC4X32.IfcCircleHollowProfileDef = IfcCircleHollowProfileDef;
+    class IfcCivilElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3893394355;
+      }
+    }
+    IFC4X32.IfcCivilElementType = IfcCivilElementType;
+    class IfcClothoid extends IfcSpiral {
+      constructor(Position, ClothoidConstant) {
+        super(Position);
+        this.Position = Position;
+        this.ClothoidConstant = ClothoidConstant;
+        this.type = 3497074424;
+      }
+    }
+    IFC4X32.IfcClothoid = IfcClothoid;
+    class IfcColumnType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 300633059;
+      }
+    }
+    IFC4X32.IfcColumnType = IfcColumnType;
+    class IfcComplexPropertyTemplate extends IfcPropertyTemplate {
+      constructor(GlobalId, OwnerHistory, Name, Description, UsageName, TemplateType, HasPropertyTemplates) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.UsageName = UsageName;
+        this.TemplateType = TemplateType;
+        this.HasPropertyTemplates = HasPropertyTemplates;
+        this.type = 3875453745;
+      }
+    }
+    IFC4X32.IfcComplexPropertyTemplate = IfcComplexPropertyTemplate;
+    class IfcCompositeCurve extends IfcBoundedCurve {
+      constructor(Segments, SelfIntersect) {
+        super();
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 3732776249;
+      }
+    }
+    IFC4X32.IfcCompositeCurve = IfcCompositeCurve;
+    class IfcCompositeCurveOnSurface extends IfcCompositeCurve {
+      constructor(Segments, SelfIntersect) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 15328376;
+      }
+    }
+    IFC4X32.IfcCompositeCurveOnSurface = IfcCompositeCurveOnSurface;
+    class IfcConic extends IfcCurve {
+      constructor(Position) {
+        super();
+        this.Position = Position;
+        this.type = 2510884976;
+      }
+    }
+    IFC4X32.IfcConic = IfcConic;
+    class IfcConstructionEquipmentResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 2185764099;
+      }
+    }
+    IFC4X32.IfcConstructionEquipmentResourceType = IfcConstructionEquipmentResourceType;
+    class IfcConstructionMaterialResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 4105962743;
+      }
+    }
+    IFC4X32.IfcConstructionMaterialResourceType = IfcConstructionMaterialResourceType;
+    class IfcConstructionProductResourceType extends IfcConstructionResourceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, Identification, LongDescription, ResourceType, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.ResourceType = ResourceType;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 1525564444;
+      }
+    }
+    IFC4X32.IfcConstructionProductResourceType = IfcConstructionProductResourceType;
+    class IfcConstructionResource extends IfcResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.type = 2559216714;
+      }
+    }
+    IFC4X32.IfcConstructionResource = IfcConstructionResource;
+    class IfcControl extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.type = 3293443760;
+      }
+    }
+    IFC4X32.IfcControl = IfcControl;
+    class IfcCosineSpiral extends IfcSpiral {
+      constructor(Position, CosineTerm, ConstantTerm) {
+        super(Position);
+        this.Position = Position;
+        this.CosineTerm = CosineTerm;
+        this.ConstantTerm = ConstantTerm;
+        this.type = 2000195564;
+      }
+    }
+    IFC4X32.IfcCosineSpiral = IfcCosineSpiral;
+    class IfcCostItem extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, CostValues, CostQuantities) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.CostValues = CostValues;
+        this.CostQuantities = CostQuantities;
+        this.type = 3895139033;
+      }
+    }
+    IFC4X32.IfcCostItem = IfcCostItem;
+    class IfcCostSchedule extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, SubmittedOn, UpdateDate) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.SubmittedOn = SubmittedOn;
+        this.UpdateDate = UpdateDate;
+        this.type = 1419761937;
+      }
+    }
+    IFC4X32.IfcCostSchedule = IfcCostSchedule;
+    class IfcCourseType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4189326743;
+      }
+    }
+    IFC4X32.IfcCourseType = IfcCourseType;
+    class IfcCoveringType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1916426348;
+      }
+    }
+    IFC4X32.IfcCoveringType = IfcCoveringType;
+    class IfcCrewResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 3295246426;
+      }
+    }
+    IFC4X32.IfcCrewResource = IfcCrewResource;
+    class IfcCurtainWallType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1457835157;
+      }
+    }
+    IFC4X32.IfcCurtainWallType = IfcCurtainWallType;
+    class IfcCylindricalSurface extends IfcElementarySurface {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 1213902940;
+      }
+    }
+    IFC4X32.IfcCylindricalSurface = IfcCylindricalSurface;
+    class IfcDeepFoundationType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1306400036;
+      }
+    }
+    IFC4X32.IfcDeepFoundationType = IfcDeepFoundationType;
+    class IfcDirectrixDerivedReferenceSweptAreaSolid extends IfcFixedReferenceSweptAreaSolid {
+      constructor(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference) {
+        super(SweptArea, Position, Directrix, StartParam, EndParam, FixedReference);
+        this.SweptArea = SweptArea;
+        this.Position = Position;
+        this.Directrix = Directrix;
+        this.StartParam = StartParam;
+        this.EndParam = EndParam;
+        this.FixedReference = FixedReference;
+        this.type = 4234616927;
+      }
+    }
+    IFC4X32.IfcDirectrixDerivedReferenceSweptAreaSolid = IfcDirectrixDerivedReferenceSweptAreaSolid;
+    class IfcDistributionElementType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3256556792;
+      }
+    }
+    IFC4X32.IfcDistributionElementType = IfcDistributionElementType;
+    class IfcDistributionFlowElementType extends IfcDistributionElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3849074793;
+      }
+    }
+    IFC4X32.IfcDistributionFlowElementType = IfcDistributionFlowElementType;
+    class IfcDoorLiningProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, ShapeAspectStyle, LiningToPanelOffsetX, LiningToPanelOffsetY) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.LiningDepth = LiningDepth;
+        this.LiningThickness = LiningThickness;
+        this.ThresholdDepth = ThresholdDepth;
+        this.ThresholdThickness = ThresholdThickness;
+        this.TransomThickness = TransomThickness;
+        this.TransomOffset = TransomOffset;
+        this.LiningOffset = LiningOffset;
+        this.ThresholdOffset = ThresholdOffset;
+        this.CasingThickness = CasingThickness;
+        this.CasingDepth = CasingDepth;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.LiningToPanelOffsetX = LiningToPanelOffsetX;
+        this.LiningToPanelOffsetY = LiningToPanelOffsetY;
+        this.type = 2963535650;
+      }
+    }
+    IFC4X32.IfcDoorLiningProperties = IfcDoorLiningProperties;
+    class IfcDoorPanelProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, PanelDepth, PanelOperation, PanelWidth, PanelPosition, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.PanelDepth = PanelDepth;
+        this.PanelOperation = PanelOperation;
+        this.PanelWidth = PanelWidth;
+        this.PanelPosition = PanelPosition;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 1714330368;
+      }
+    }
+    IFC4X32.IfcDoorPanelProperties = IfcDoorPanelProperties;
+    class IfcDoorType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, OperationType, ParameterTakesPrecedence, UserDefinedOperationType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.OperationType = OperationType;
+        this.ParameterTakesPrecedence = ParameterTakesPrecedence;
+        this.UserDefinedOperationType = UserDefinedOperationType;
+        this.type = 2323601079;
+      }
+    }
+    IFC4X32.IfcDoorType = IfcDoorType;
+    class IfcDraughtingPreDefinedColour extends IfcPreDefinedColour {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 445594917;
+      }
+    }
+    IFC4X32.IfcDraughtingPreDefinedColour = IfcDraughtingPreDefinedColour;
+    class IfcDraughtingPreDefinedCurveFont extends IfcPreDefinedCurveFont {
+      constructor(Name) {
+        super(Name);
+        this.Name = Name;
+        this.type = 4006246654;
+      }
+    }
+    IFC4X32.IfcDraughtingPreDefinedCurveFont = IfcDraughtingPreDefinedCurveFont;
+    class IfcElement extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1758889154;
+      }
+    }
+    IFC4X32.IfcElement = IfcElement;
+    class IfcElementAssembly extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, AssemblyPlace, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.AssemblyPlace = AssemblyPlace;
+        this.PredefinedType = PredefinedType;
+        this.type = 4123344466;
+      }
+    }
+    IFC4X32.IfcElementAssembly = IfcElementAssembly;
+    class IfcElementAssemblyType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2397081782;
+      }
+    }
+    IFC4X32.IfcElementAssemblyType = IfcElementAssemblyType;
+    class IfcElementComponent extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1623761950;
+      }
+    }
+    IFC4X32.IfcElementComponent = IfcElementComponent;
+    class IfcElementComponentType extends IfcElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2590856083;
+      }
+    }
+    IFC4X32.IfcElementComponentType = IfcElementComponentType;
+    class IfcEllipse extends IfcConic {
+      constructor(Position, SemiAxis1, SemiAxis2) {
+        super(Position);
+        this.Position = Position;
+        this.SemiAxis1 = SemiAxis1;
+        this.SemiAxis2 = SemiAxis2;
+        this.type = 1704287377;
+      }
+    }
+    IFC4X32.IfcEllipse = IfcEllipse;
+    class IfcEnergyConversionDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2107101300;
+      }
+    }
+    IFC4X32.IfcEnergyConversionDeviceType = IfcEnergyConversionDeviceType;
+    class IfcEngineType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 132023988;
+      }
+    }
+    IFC4X32.IfcEngineType = IfcEngineType;
+    class IfcEvaporativeCoolerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3174744832;
+      }
+    }
+    IFC4X32.IfcEvaporativeCoolerType = IfcEvaporativeCoolerType;
+    class IfcEvaporatorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3390157468;
+      }
+    }
+    IFC4X32.IfcEvaporatorType = IfcEvaporatorType;
+    class IfcEvent extends IfcProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType, EventTriggerType, UserDefinedEventTriggerType, EventOccurenceTime) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.PredefinedType = PredefinedType;
+        this.EventTriggerType = EventTriggerType;
+        this.UserDefinedEventTriggerType = UserDefinedEventTriggerType;
+        this.EventOccurenceTime = EventOccurenceTime;
+        this.type = 4148101412;
+      }
+    }
+    IFC4X32.IfcEvent = IfcEvent;
+    class IfcExternalSpatialStructureElement extends IfcSpatialElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.type = 2853485674;
+      }
+    }
+    IFC4X32.IfcExternalSpatialStructureElement = IfcExternalSpatialStructureElement;
+    class IfcFacetedBrep extends IfcManifoldSolidBrep {
+      constructor(Outer) {
+        super(Outer);
+        this.Outer = Outer;
+        this.type = 807026263;
+      }
+    }
+    IFC4X32.IfcFacetedBrep = IfcFacetedBrep;
+    class IfcFacetedBrepWithVoids extends IfcFacetedBrep {
+      constructor(Outer, Voids) {
+        super(Outer);
+        this.Outer = Outer;
+        this.Voids = Voids;
+        this.type = 3737207727;
+      }
+    }
+    IFC4X32.IfcFacetedBrepWithVoids = IfcFacetedBrepWithVoids;
+    class IfcFacility extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.type = 24185140;
+      }
+    }
+    IFC4X32.IfcFacility = IfcFacility;
+    class IfcFacilityPart extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.UsageType = UsageType;
+        this.type = 1310830890;
+      }
+    }
+    IFC4X32.IfcFacilityPart = IfcFacilityPart;
+    class IfcFacilityPartCommon extends IfcFacilityPart {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.UsageType = UsageType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4228831410;
+      }
+    }
+    IFC4X32.IfcFacilityPartCommon = IfcFacilityPartCommon;
+    class IfcFastener extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 647756555;
+      }
+    }
+    IFC4X32.IfcFastener = IfcFastener;
+    class IfcFastenerType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2489546625;
+      }
+    }
+    IFC4X32.IfcFastenerType = IfcFastenerType;
+    class IfcFeatureElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2827207264;
+      }
+    }
+    IFC4X32.IfcFeatureElement = IfcFeatureElement;
+    class IfcFeatureElementAddition extends IfcFeatureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2143335405;
+      }
+    }
+    IFC4X32.IfcFeatureElementAddition = IfcFeatureElementAddition;
+    class IfcFeatureElementSubtraction extends IfcFeatureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1287392070;
+      }
+    }
+    IFC4X32.IfcFeatureElementSubtraction = IfcFeatureElementSubtraction;
+    class IfcFlowControllerType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3907093117;
+      }
+    }
+    IFC4X32.IfcFlowControllerType = IfcFlowControllerType;
+    class IfcFlowFittingType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3198132628;
+      }
+    }
+    IFC4X32.IfcFlowFittingType = IfcFlowFittingType;
+    class IfcFlowMeterType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3815607619;
+      }
+    }
+    IFC4X32.IfcFlowMeterType = IfcFlowMeterType;
+    class IfcFlowMovingDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1482959167;
+      }
+    }
+    IFC4X32.IfcFlowMovingDeviceType = IfcFlowMovingDeviceType;
+    class IfcFlowSegmentType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1834744321;
+      }
+    }
+    IFC4X32.IfcFlowSegmentType = IfcFlowSegmentType;
+    class IfcFlowStorageDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 1339347760;
+      }
+    }
+    IFC4X32.IfcFlowStorageDeviceType = IfcFlowStorageDeviceType;
+    class IfcFlowTerminalType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2297155007;
+      }
+    }
+    IFC4X32.IfcFlowTerminalType = IfcFlowTerminalType;
+    class IfcFlowTreatmentDeviceType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 3009222698;
+      }
+    }
+    IFC4X32.IfcFlowTreatmentDeviceType = IfcFlowTreatmentDeviceType;
+    class IfcFootingType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1893162501;
+      }
+    }
+    IFC4X32.IfcFootingType = IfcFootingType;
+    class IfcFurnishingElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 263784265;
+      }
+    }
+    IFC4X32.IfcFurnishingElement = IfcFurnishingElement;
+    class IfcFurniture extends IfcFurnishingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1509553395;
+      }
+    }
+    IFC4X32.IfcFurniture = IfcFurniture;
+    class IfcGeographicElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3493046030;
+      }
+    }
+    IFC4X32.IfcGeographicElement = IfcGeographicElement;
+    class IfcGeotechnicalElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 4230923436;
+      }
+    }
+    IFC4X32.IfcGeotechnicalElement = IfcGeotechnicalElement;
+    class IfcGeotechnicalStratum extends IfcGeotechnicalElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1594536857;
+      }
+    }
+    IFC4X32.IfcGeotechnicalStratum = IfcGeotechnicalStratum;
+    class IfcGradientCurve extends IfcCompositeCurve {
+      constructor(Segments, SelfIntersect, BaseCurve, EndPoint) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.BaseCurve = BaseCurve;
+        this.EndPoint = EndPoint;
+        this.type = 2898700619;
+      }
+    }
+    IFC4X32.IfcGradientCurve = IfcGradientCurve;
+    class IfcGroup extends IfcObject {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2706460486;
+      }
+    }
+    IFC4X32.IfcGroup = IfcGroup;
+    class IfcHeatExchangerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1251058090;
+      }
+    }
+    IFC4X32.IfcHeatExchangerType = IfcHeatExchangerType;
+    class IfcHumidifierType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1806887404;
+      }
+    }
+    IFC4X32.IfcHumidifierType = IfcHumidifierType;
+    class IfcImpactProtectionDevice extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2568555532;
+      }
+    }
+    IFC4X32.IfcImpactProtectionDevice = IfcImpactProtectionDevice;
+    class IfcImpactProtectionDeviceType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3948183225;
+      }
+    }
+    IFC4X32.IfcImpactProtectionDeviceType = IfcImpactProtectionDeviceType;
+    class IfcIndexedPolyCurve extends IfcBoundedCurve {
+      constructor(Points, Segments, SelfIntersect) {
+        super();
+        this.Points = Points;
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 2571569899;
+      }
+    }
+    IFC4X32.IfcIndexedPolyCurve = IfcIndexedPolyCurve;
+    class IfcInterceptorType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3946677679;
+      }
+    }
+    IFC4X32.IfcInterceptorType = IfcInterceptorType;
+    class IfcIntersectionCurve extends IfcSurfaceCurve {
+      constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {
+        super(Curve3D, AssociatedGeometry, MasterRepresentation);
+        this.Curve3D = Curve3D;
+        this.AssociatedGeometry = AssociatedGeometry;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 3113134337;
+      }
+    }
+    IFC4X32.IfcIntersectionCurve = IfcIntersectionCurve;
+    class IfcInventory extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, Jurisdiction, ResponsiblePersons, LastUpdateDate, CurrentValue, OriginalValue) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.Jurisdiction = Jurisdiction;
+        this.ResponsiblePersons = ResponsiblePersons;
+        this.LastUpdateDate = LastUpdateDate;
+        this.CurrentValue = CurrentValue;
+        this.OriginalValue = OriginalValue;
+        this.type = 2391368822;
+      }
+    }
+    IFC4X32.IfcInventory = IfcInventory;
+    class IfcJunctionBoxType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4288270099;
+      }
+    }
+    IFC4X32.IfcJunctionBoxType = IfcJunctionBoxType;
+    class IfcKerbType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, Mountable) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.Mountable = Mountable;
+        this.type = 679976338;
+      }
+    }
+    IFC4X32.IfcKerbType = IfcKerbType;
+    class IfcLaborResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 3827777499;
+      }
+    }
+    IFC4X32.IfcLaborResource = IfcLaborResource;
+    class IfcLampType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1051575348;
+      }
+    }
+    IFC4X32.IfcLampType = IfcLampType;
+    class IfcLightFixtureType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1161773419;
+      }
+    }
+    IFC4X32.IfcLightFixtureType = IfcLightFixtureType;
+    class IfcLinearElement extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 2176059722;
+      }
+    }
+    IFC4X32.IfcLinearElement = IfcLinearElement;
+    class IfcLiquidTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1770583370;
+      }
+    }
+    IFC4X32.IfcLiquidTerminalType = IfcLiquidTerminalType;
+    class IfcMarineFacility extends IfcFacility {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.PredefinedType = PredefinedType;
+        this.type = 525669439;
+      }
+    }
+    IFC4X32.IfcMarineFacility = IfcMarineFacility;
+    class IfcMarinePart extends IfcFacilityPart {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.UsageType = UsageType;
+        this.PredefinedType = PredefinedType;
+        this.type = 976884017;
+      }
+    }
+    IFC4X32.IfcMarinePart = IfcMarinePart;
+    class IfcMechanicalFastener extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NominalDiameter, NominalLength, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.NominalDiameter = NominalDiameter;
+        this.NominalLength = NominalLength;
+        this.PredefinedType = PredefinedType;
+        this.type = 377706215;
+      }
+    }
+    IFC4X32.IfcMechanicalFastener = IfcMechanicalFastener;
+    class IfcMechanicalFastenerType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, NominalLength) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.NominalLength = NominalLength;
+        this.type = 2108223431;
+      }
+    }
+    IFC4X32.IfcMechanicalFastenerType = IfcMechanicalFastenerType;
+    class IfcMedicalDeviceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1114901282;
+      }
+    }
+    IFC4X32.IfcMedicalDeviceType = IfcMedicalDeviceType;
+    class IfcMemberType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3181161470;
+      }
+    }
+    IFC4X32.IfcMemberType = IfcMemberType;
+    class IfcMobileTelecommunicationsApplianceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1950438474;
+      }
+    }
+    IFC4X32.IfcMobileTelecommunicationsApplianceType = IfcMobileTelecommunicationsApplianceType;
+    class IfcMooringDeviceType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 710110818;
+      }
+    }
+    IFC4X32.IfcMooringDeviceType = IfcMooringDeviceType;
+    class IfcMotorConnectionType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 977012517;
+      }
+    }
+    IFC4X32.IfcMotorConnectionType = IfcMotorConnectionType;
+    class IfcNavigationElementType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 506776471;
+      }
+    }
+    IFC4X32.IfcNavigationElementType = IfcNavigationElementType;
+    class IfcOccupant extends IfcActor {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, TheActor);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheActor = TheActor;
+        this.PredefinedType = PredefinedType;
+        this.type = 4143007308;
+      }
+    }
+    IFC4X32.IfcOccupant = IfcOccupant;
+    class IfcOpeningElement extends IfcFeatureElementSubtraction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3588315303;
+      }
+    }
+    IFC4X32.IfcOpeningElement = IfcOpeningElement;
+    class IfcOutletType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2837617999;
+      }
+    }
+    IFC4X32.IfcOutletType = IfcOutletType;
+    class IfcPavementType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 514975943;
+      }
+    }
+    IFC4X32.IfcPavementType = IfcPavementType;
+    class IfcPerformanceHistory extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LifeCyclePhase, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LifeCyclePhase = LifeCyclePhase;
+        this.PredefinedType = PredefinedType;
+        this.type = 2382730787;
+      }
+    }
+    IFC4X32.IfcPerformanceHistory = IfcPerformanceHistory;
+    class IfcPermeableCoveringProperties extends IfcPreDefinedPropertySet {
+      constructor(GlobalId, OwnerHistory, Name, Description, OperationType, PanelPosition, FrameDepth, FrameThickness, ShapeAspectStyle) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.OperationType = OperationType;
+        this.PanelPosition = PanelPosition;
+        this.FrameDepth = FrameDepth;
+        this.FrameThickness = FrameThickness;
+        this.ShapeAspectStyle = ShapeAspectStyle;
+        this.type = 3566463478;
+      }
+    }
+    IFC4X32.IfcPermeableCoveringProperties = IfcPermeableCoveringProperties;
+    class IfcPermit extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.LongDescription = LongDescription;
+        this.type = 3327091369;
+      }
+    }
+    IFC4X32.IfcPermit = IfcPermit;
+    class IfcPileType extends IfcDeepFoundationType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1158309216;
+      }
+    }
+    IFC4X32.IfcPileType = IfcPileType;
+    class IfcPipeFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 804291784;
+      }
+    }
+    IFC4X32.IfcPipeFittingType = IfcPipeFittingType;
+    class IfcPipeSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4231323485;
+      }
+    }
+    IFC4X32.IfcPipeSegmentType = IfcPipeSegmentType;
+    class IfcPlateType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4017108033;
+      }
+    }
+    IFC4X32.IfcPlateType = IfcPlateType;
+    class IfcPolygonalFaceSet extends IfcTessellatedFaceSet {
+      constructor(Coordinates, Closed, Faces, PnIndex) {
+        super(Coordinates, Closed);
+        this.Coordinates = Coordinates;
+        this.Closed = Closed;
+        this.Faces = Faces;
+        this.PnIndex = PnIndex;
+        this.type = 2839578677;
+      }
+    }
+    IFC4X32.IfcPolygonalFaceSet = IfcPolygonalFaceSet;
+    class IfcPolyline extends IfcBoundedCurve {
+      constructor(Points) {
+        super();
+        this.Points = Points;
+        this.type = 3724593414;
+      }
+    }
+    IFC4X32.IfcPolyline = IfcPolyline;
+    class IfcPort extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 3740093272;
+      }
+    }
+    IFC4X32.IfcPort = IfcPort;
+    class IfcPositioningElement extends IfcProduct {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 1946335990;
+      }
+    }
+    IFC4X32.IfcPositioningElement = IfcPositioningElement;
+    class IfcProcedure extends IfcProcess {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.PredefinedType = PredefinedType;
+        this.type = 2744685151;
+      }
+    }
+    IFC4X32.IfcProcedure = IfcProcedure;
+    class IfcProjectOrder extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.LongDescription = LongDescription;
+        this.type = 2904328755;
+      }
+    }
+    IFC4X32.IfcProjectOrder = IfcProjectOrder;
+    class IfcProjectionElement extends IfcFeatureElementAddition {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3651124850;
+      }
+    }
+    IFC4X32.IfcProjectionElement = IfcProjectionElement;
+    class IfcProtectiveDeviceType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1842657554;
+      }
+    }
+    IFC4X32.IfcProtectiveDeviceType = IfcProtectiveDeviceType;
+    class IfcPumpType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2250791053;
+      }
+    }
+    IFC4X32.IfcPumpType = IfcPumpType;
+    class IfcRailType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1763565496;
+      }
+    }
+    IFC4X32.IfcRailType = IfcRailType;
+    class IfcRailingType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2893384427;
+      }
+    }
+    IFC4X32.IfcRailingType = IfcRailingType;
+    class IfcRailway extends IfcFacility {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3992365140;
+      }
+    }
+    IFC4X32.IfcRailway = IfcRailway;
+    class IfcRailwayPart extends IfcFacilityPart {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.UsageType = UsageType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1891881377;
+      }
+    }
+    IFC4X32.IfcRailwayPart = IfcRailwayPart;
+    class IfcRampFlightType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2324767716;
+      }
+    }
+    IFC4X32.IfcRampFlightType = IfcRampFlightType;
+    class IfcRampType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1469900589;
+      }
+    }
+    IFC4X32.IfcRampType = IfcRampType;
+    class IfcRationalBSplineSurfaceWithKnots extends IfcBSplineSurfaceWithKnots {
+      constructor(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec, WeightsData) {
+        super(UDegree, VDegree, ControlPointsList, SurfaceForm, UClosed, VClosed, SelfIntersect, UMultiplicities, VMultiplicities, UKnots, VKnots, KnotSpec);
+        this.UDegree = UDegree;
+        this.VDegree = VDegree;
+        this.ControlPointsList = ControlPointsList;
+        this.SurfaceForm = SurfaceForm;
+        this.UClosed = UClosed;
+        this.VClosed = VClosed;
+        this.SelfIntersect = SelfIntersect;
+        this.UMultiplicities = UMultiplicities;
+        this.VMultiplicities = VMultiplicities;
+        this.UKnots = UKnots;
+        this.VKnots = VKnots;
+        this.KnotSpec = KnotSpec;
+        this.WeightsData = WeightsData;
+        this.type = 683857671;
+      }
+    }
+    IFC4X32.IfcRationalBSplineSurfaceWithKnots = IfcRationalBSplineSurfaceWithKnots;
+    class IfcReferent extends IfcPositioningElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.type = 4021432810;
+      }
+    }
+    IFC4X32.IfcReferent = IfcReferent;
+    class IfcReinforcingElement extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.type = 3027567501;
+      }
+    }
+    IFC4X32.IfcReinforcingElement = IfcReinforcingElement;
+    class IfcReinforcingElementType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 964333572;
+      }
+    }
+    IFC4X32.IfcReinforcingElementType = IfcReinforcingElementType;
+    class IfcReinforcingMesh extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.MeshLength = MeshLength;
+        this.MeshWidth = MeshWidth;
+        this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;
+        this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;
+        this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;
+        this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;
+        this.LongitudinalBarSpacing = LongitudinalBarSpacing;
+        this.TransverseBarSpacing = TransverseBarSpacing;
+        this.PredefinedType = PredefinedType;
+        this.type = 2320036040;
+      }
+    }
+    IFC4X32.IfcReinforcingMesh = IfcReinforcingMesh;
+    class IfcReinforcingMeshType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, MeshLength, MeshWidth, LongitudinalBarNominalDiameter, TransverseBarNominalDiameter, LongitudinalBarCrossSectionArea, TransverseBarCrossSectionArea, LongitudinalBarSpacing, TransverseBarSpacing, BendingShapeCode, BendingParameters) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.MeshLength = MeshLength;
+        this.MeshWidth = MeshWidth;
+        this.LongitudinalBarNominalDiameter = LongitudinalBarNominalDiameter;
+        this.TransverseBarNominalDiameter = TransverseBarNominalDiameter;
+        this.LongitudinalBarCrossSectionArea = LongitudinalBarCrossSectionArea;
+        this.TransverseBarCrossSectionArea = TransverseBarCrossSectionArea;
+        this.LongitudinalBarSpacing = LongitudinalBarSpacing;
+        this.TransverseBarSpacing = TransverseBarSpacing;
+        this.BendingShapeCode = BendingShapeCode;
+        this.BendingParameters = BendingParameters;
+        this.type = 2310774935;
+      }
+    }
+    IFC4X32.IfcReinforcingMeshType = IfcReinforcingMeshType;
+    class IfcRelAdheresToElement extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingElement, RelatedSurfaceFeatures) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingElement = RelatingElement;
+        this.RelatedSurfaceFeatures = RelatedSurfaceFeatures;
+        this.type = 3818125796;
+      }
+    }
+    IFC4X32.IfcRelAdheresToElement = IfcRelAdheresToElement;
+    class IfcRelAggregates extends IfcRelDecomposes {
+      constructor(GlobalId, OwnerHistory, Name, Description, RelatingObject, RelatedObjects) {
+        super(GlobalId, OwnerHistory, Name, Description);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.RelatingObject = RelatingObject;
+        this.RelatedObjects = RelatedObjects;
+        this.type = 160246688;
+      }
+    }
+    IFC4X32.IfcRelAggregates = IfcRelAggregates;
+    class IfcRoad extends IfcFacility {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.PredefinedType = PredefinedType;
+        this.type = 146592293;
+      }
+    }
+    IFC4X32.IfcRoad = IfcRoad;
+    class IfcRoadPart extends IfcFacilityPart {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.UsageType = UsageType;
+        this.PredefinedType = PredefinedType;
+        this.type = 550521510;
+      }
+    }
+    IFC4X32.IfcRoadPart = IfcRoadPart;
+    class IfcRoofType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2781568857;
+      }
+    }
+    IFC4X32.IfcRoofType = IfcRoofType;
+    class IfcSanitaryTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1768891740;
+      }
+    }
+    IFC4X32.IfcSanitaryTerminalType = IfcSanitaryTerminalType;
+    class IfcSeamCurve extends IfcSurfaceCurve {
+      constructor(Curve3D, AssociatedGeometry, MasterRepresentation) {
+        super(Curve3D, AssociatedGeometry, MasterRepresentation);
+        this.Curve3D = Curve3D;
+        this.AssociatedGeometry = AssociatedGeometry;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 2157484638;
+      }
+    }
+    IFC4X32.IfcSeamCurve = IfcSeamCurve;
+    class IfcSecondOrderPolynomialSpiral extends IfcSpiral {
+      constructor(Position, QuadraticTerm, LinearTerm, ConstantTerm) {
+        super(Position);
+        this.Position = Position;
+        this.QuadraticTerm = QuadraticTerm;
+        this.LinearTerm = LinearTerm;
+        this.ConstantTerm = ConstantTerm;
+        this.type = 3649235739;
+      }
+    }
+    IFC4X32.IfcSecondOrderPolynomialSpiral = IfcSecondOrderPolynomialSpiral;
+    class IfcSegmentedReferenceCurve extends IfcCompositeCurve {
+      constructor(Segments, SelfIntersect, BaseCurve, EndPoint) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.BaseCurve = BaseCurve;
+        this.EndPoint = EndPoint;
+        this.type = 544395925;
+      }
+    }
+    IFC4X32.IfcSegmentedReferenceCurve = IfcSegmentedReferenceCurve;
+    class IfcSeventhOrderPolynomialSpiral extends IfcSpiral {
+      constructor(Position, SepticTerm, SexticTerm, QuinticTerm, QuarticTerm, CubicTerm, QuadraticTerm, LinearTerm, ConstantTerm) {
+        super(Position);
+        this.Position = Position;
+        this.SepticTerm = SepticTerm;
+        this.SexticTerm = SexticTerm;
+        this.QuinticTerm = QuinticTerm;
+        this.QuarticTerm = QuarticTerm;
+        this.CubicTerm = CubicTerm;
+        this.QuadraticTerm = QuadraticTerm;
+        this.LinearTerm = LinearTerm;
+        this.ConstantTerm = ConstantTerm;
+        this.type = 1027922057;
+      }
+    }
+    IFC4X32.IfcSeventhOrderPolynomialSpiral = IfcSeventhOrderPolynomialSpiral;
+    class IfcShadingDeviceType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4074543187;
+      }
+    }
+    IFC4X32.IfcShadingDeviceType = IfcShadingDeviceType;
+    class IfcSign extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 33720170;
+      }
+    }
+    IFC4X32.IfcSign = IfcSign;
+    class IfcSignType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3599934289;
+      }
+    }
+    IFC4X32.IfcSignType = IfcSignType;
+    class IfcSignalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1894708472;
+      }
+    }
+    IFC4X32.IfcSignalType = IfcSignalType;
+    class IfcSineSpiral extends IfcSpiral {
+      constructor(Position, SineTerm, LinearTerm, ConstantTerm) {
+        super(Position);
+        this.Position = Position;
+        this.SineTerm = SineTerm;
+        this.LinearTerm = LinearTerm;
+        this.ConstantTerm = ConstantTerm;
+        this.type = 42703149;
+      }
+    }
+    IFC4X32.IfcSineSpiral = IfcSineSpiral;
+    class IfcSite extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, RefLatitude, RefLongitude, RefElevation, LandTitleNumber, SiteAddress) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.RefLatitude = RefLatitude;
+        this.RefLongitude = RefLongitude;
+        this.RefElevation = RefElevation;
+        this.LandTitleNumber = LandTitleNumber;
+        this.SiteAddress = SiteAddress;
+        this.type = 4097777520;
+      }
+    }
+    IFC4X32.IfcSite = IfcSite;
+    class IfcSlabType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2533589738;
+      }
+    }
+    IFC4X32.IfcSlabType = IfcSlabType;
+    class IfcSolarDeviceType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1072016465;
+      }
+    }
+    IFC4X32.IfcSolarDeviceType = IfcSolarDeviceType;
+    class IfcSpace extends IfcSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType, ElevationWithFlooring) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.PredefinedType = PredefinedType;
+        this.ElevationWithFlooring = ElevationWithFlooring;
+        this.type = 3856911033;
+      }
+    }
+    IFC4X32.IfcSpace = IfcSpace;
+    class IfcSpaceHeaterType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1305183839;
+      }
+    }
+    IFC4X32.IfcSpaceHeaterType = IfcSpaceHeaterType;
+    class IfcSpaceType extends IfcSpatialStructureElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.LongName = LongName;
+        this.type = 3812236995;
+      }
+    }
+    IFC4X32.IfcSpaceType = IfcSpaceType;
+    class IfcStackTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3112655638;
+      }
+    }
+    IFC4X32.IfcStackTerminalType = IfcStackTerminalType;
+    class IfcStairFlightType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1039846685;
+      }
+    }
+    IFC4X32.IfcStairFlightType = IfcStairFlightType;
+    class IfcStairType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 338393293;
+      }
+    }
+    IFC4X32.IfcStairType = IfcStairType;
+    class IfcStructuralAction extends IfcStructuralActivity {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.type = 682877961;
+      }
+    }
+    IFC4X32.IfcStructuralAction = IfcStructuralAction;
+    class IfcStructuralConnection extends IfcStructuralItem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.type = 1179482911;
+      }
+    }
+    IFC4X32.IfcStructuralConnection = IfcStructuralConnection;
+    class IfcStructuralCurveAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.PredefinedType = PredefinedType;
+        this.type = 1004757350;
+      }
+    }
+    IFC4X32.IfcStructuralCurveAction = IfcStructuralCurveAction;
+    class IfcStructuralCurveConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, AxisDirection) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.AxisDirection = AxisDirection;
+        this.type = 4243806635;
+      }
+    }
+    IFC4X32.IfcStructuralCurveConnection = IfcStructuralCurveConnection;
+    class IfcStructuralCurveMember extends IfcStructuralMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Axis = Axis;
+        this.type = 214636428;
+      }
+    }
+    IFC4X32.IfcStructuralCurveMember = IfcStructuralCurveMember;
+    class IfcStructuralCurveMemberVarying extends IfcStructuralCurveMember {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType, Axis);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.Axis = Axis;
+        this.type = 2445595289;
+      }
+    }
+    IFC4X32.IfcStructuralCurveMemberVarying = IfcStructuralCurveMemberVarying;
+    class IfcStructuralCurveReaction extends IfcStructuralReaction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.PredefinedType = PredefinedType;
+        this.type = 2757150158;
+      }
+    }
+    IFC4X32.IfcStructuralCurveReaction = IfcStructuralCurveReaction;
+    class IfcStructuralLinearAction extends IfcStructuralCurveAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.PredefinedType = PredefinedType;
+        this.type = 1807405624;
+      }
+    }
+    IFC4X32.IfcStructuralLinearAction = IfcStructuralLinearAction;
+    class IfcStructuralLoadGroup extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.ActionType = ActionType;
+        this.ActionSource = ActionSource;
+        this.Coefficient = Coefficient;
+        this.Purpose = Purpose;
+        this.type = 1252848954;
+      }
+    }
+    IFC4X32.IfcStructuralLoadGroup = IfcStructuralLoadGroup;
+    class IfcStructuralPointAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.type = 2082059205;
+      }
+    }
+    IFC4X32.IfcStructuralPointAction = IfcStructuralPointAction;
+    class IfcStructuralPointConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition, ConditionCoordinateSystem) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.ConditionCoordinateSystem = ConditionCoordinateSystem;
+        this.type = 734778138;
+      }
+    }
+    IFC4X32.IfcStructuralPointConnection = IfcStructuralPointConnection;
+    class IfcStructuralPointReaction extends IfcStructuralReaction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.type = 1235345126;
+      }
+    }
+    IFC4X32.IfcStructuralPointReaction = IfcStructuralPointReaction;
+    class IfcStructuralResultGroup extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, TheoryType, ResultForLoadGroup, IsLinear) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.TheoryType = TheoryType;
+        this.ResultForLoadGroup = ResultForLoadGroup;
+        this.IsLinear = IsLinear;
+        this.type = 2986769608;
+      }
+    }
+    IFC4X32.IfcStructuralResultGroup = IfcStructuralResultGroup;
+    class IfcStructuralSurfaceAction extends IfcStructuralAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.PredefinedType = PredefinedType;
+        this.type = 3657597509;
+      }
+    }
+    IFC4X32.IfcStructuralSurfaceAction = IfcStructuralSurfaceAction;
+    class IfcStructuralSurfaceConnection extends IfcStructuralConnection {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedCondition);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedCondition = AppliedCondition;
+        this.type = 1975003073;
+      }
+    }
+    IFC4X32.IfcStructuralSurfaceConnection = IfcStructuralSurfaceConnection;
+    class IfcSubContractResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 148013059;
+      }
+    }
+    IFC4X32.IfcSubContractResource = IfcSubContractResource;
+    class IfcSurfaceFeature extends IfcFeatureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3101698114;
+      }
+    }
+    IFC4X32.IfcSurfaceFeature = IfcSurfaceFeature;
+    class IfcSwitchingDeviceType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2315554128;
+      }
+    }
+    IFC4X32.IfcSwitchingDeviceType = IfcSwitchingDeviceType;
+    class IfcSystem extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.type = 2254336722;
+      }
+    }
+    IFC4X32.IfcSystem = IfcSystem;
+    class IfcSystemFurnitureElement extends IfcFurnishingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 413509423;
+      }
+    }
+    IFC4X32.IfcSystemFurnitureElement = IfcSystemFurnitureElement;
+    class IfcTankType extends IfcFlowStorageDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 5716631;
+      }
+    }
+    IFC4X32.IfcTankType = IfcTankType;
+    class IfcTendon extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType, NominalDiameter, CrossSectionArea, TensionForce, PreStress, FrictionCoefficient, AnchorageSlip, MinCurvatureRadius) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.TensionForce = TensionForce;
+        this.PreStress = PreStress;
+        this.FrictionCoefficient = FrictionCoefficient;
+        this.AnchorageSlip = AnchorageSlip;
+        this.MinCurvatureRadius = MinCurvatureRadius;
+        this.type = 3824725483;
+      }
+    }
+    IFC4X32.IfcTendon = IfcTendon;
+    class IfcTendonAnchor extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.PredefinedType = PredefinedType;
+        this.type = 2347447852;
+      }
+    }
+    IFC4X32.IfcTendonAnchor = IfcTendonAnchor;
+    class IfcTendonAnchorType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3081323446;
+      }
+    }
+    IFC4X32.IfcTendonAnchorType = IfcTendonAnchorType;
+    class IfcTendonConduit extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.PredefinedType = PredefinedType;
+        this.type = 3663046924;
+      }
+    }
+    IFC4X32.IfcTendonConduit = IfcTendonConduit;
+    class IfcTendonConduitType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2281632017;
+      }
+    }
+    IFC4X32.IfcTendonConduitType = IfcTendonConduitType;
+    class IfcTendonType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, SheathDiameter) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.SheathDiameter = SheathDiameter;
+        this.type = 2415094496;
+      }
+    }
+    IFC4X32.IfcTendonType = IfcTendonType;
+    class IfcTrackElementType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 618700268;
+      }
+    }
+    IFC4X32.IfcTrackElementType = IfcTrackElementType;
+    class IfcTransformerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1692211062;
+      }
+    }
+    IFC4X32.IfcTransformerType = IfcTransformerType;
+    class IfcTransportElementType extends IfcTransportationDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2097647324;
+      }
+    }
+    IFC4X32.IfcTransportElementType = IfcTransportElementType;
+    class IfcTransportationDevice extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1953115116;
+      }
+    }
+    IFC4X32.IfcTransportationDevice = IfcTransportationDevice;
+    class IfcTrimmedCurve extends IfcBoundedCurve {
+      constructor(BasisCurve, Trim1, Trim2, SenseAgreement, MasterRepresentation) {
+        super();
+        this.BasisCurve = BasisCurve;
+        this.Trim1 = Trim1;
+        this.Trim2 = Trim2;
+        this.SenseAgreement = SenseAgreement;
+        this.MasterRepresentation = MasterRepresentation;
+        this.type = 3593883385;
+      }
+    }
+    IFC4X32.IfcTrimmedCurve = IfcTrimmedCurve;
+    class IfcTubeBundleType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1600972822;
+      }
+    }
+    IFC4X32.IfcTubeBundleType = IfcTubeBundleType;
+    class IfcUnitaryEquipmentType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1911125066;
+      }
+    }
+    IFC4X32.IfcUnitaryEquipmentType = IfcUnitaryEquipmentType;
+    class IfcValveType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 728799441;
+      }
+    }
+    IFC4X32.IfcValveType = IfcValveType;
+    class IfcVehicle extends IfcTransportationDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 840318589;
+      }
+    }
+    IFC4X32.IfcVehicle = IfcVehicle;
+    class IfcVibrationDamper extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1530820697;
+      }
+    }
+    IFC4X32.IfcVibrationDamper = IfcVibrationDamper;
+    class IfcVibrationDamperType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3956297820;
+      }
+    }
+    IFC4X32.IfcVibrationDamperType = IfcVibrationDamperType;
+    class IfcVibrationIsolator extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2391383451;
+      }
+    }
+    IFC4X32.IfcVibrationIsolator = IfcVibrationIsolator;
+    class IfcVibrationIsolatorType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3313531582;
+      }
+    }
+    IFC4X32.IfcVibrationIsolatorType = IfcVibrationIsolatorType;
+    class IfcVirtualElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2769231204;
+      }
+    }
+    IFC4X32.IfcVirtualElement = IfcVirtualElement;
+    class IfcVoidingFeature extends IfcFeatureElementSubtraction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 926996030;
+      }
+    }
+    IFC4X32.IfcVoidingFeature = IfcVoidingFeature;
+    class IfcWallType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1898987631;
+      }
+    }
+    IFC4X32.IfcWallType = IfcWallType;
+    class IfcWasteTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1133259667;
+      }
+    }
+    IFC4X32.IfcWasteTerminalType = IfcWasteTerminalType;
+    class IfcWindowType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, PartitioningType, ParameterTakesPrecedence, UserDefinedPartitioningType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.PartitioningType = PartitioningType;
+        this.ParameterTakesPrecedence = ParameterTakesPrecedence;
+        this.UserDefinedPartitioningType = UserDefinedPartitioningType;
+        this.type = 4009809668;
+      }
+    }
+    IFC4X32.IfcWindowType = IfcWindowType;
+    class IfcWorkCalendar extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, WorkingTimes, ExceptionTimes, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.WorkingTimes = WorkingTimes;
+        this.ExceptionTimes = ExceptionTimes;
+        this.PredefinedType = PredefinedType;
+        this.type = 4088093105;
+      }
+    }
+    IFC4X32.IfcWorkCalendar = IfcWorkCalendar;
+    class IfcWorkControl extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.type = 1028945134;
+      }
+    }
+    IFC4X32.IfcWorkControl = IfcWorkControl;
+    class IfcWorkPlan extends IfcWorkControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.PredefinedType = PredefinedType;
+        this.type = 4218914973;
+      }
+    }
+    IFC4X32.IfcWorkPlan = IfcWorkPlan;
+    class IfcWorkSchedule extends IfcWorkControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, CreationDate, Creators, Purpose, Duration, TotalFloat, StartTime, FinishTime);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.CreationDate = CreationDate;
+        this.Creators = Creators;
+        this.Purpose = Purpose;
+        this.Duration = Duration;
+        this.TotalFloat = TotalFloat;
+        this.StartTime = StartTime;
+        this.FinishTime = FinishTime;
+        this.PredefinedType = PredefinedType;
+        this.type = 3342526732;
+      }
+    }
+    IFC4X32.IfcWorkSchedule = IfcWorkSchedule;
+    class IfcZone extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.type = 1033361043;
+      }
+    }
+    IFC4X32.IfcZone = IfcZone;
+    class IfcActionRequest extends IfcControl {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, PredefinedType, Status, LongDescription) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.PredefinedType = PredefinedType;
+        this.Status = Status;
+        this.LongDescription = LongDescription;
+        this.type = 3821786052;
+      }
+    }
+    IFC4X32.IfcActionRequest = IfcActionRequest;
+    class IfcAirTerminalBoxType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1411407467;
+      }
+    }
+    IFC4X32.IfcAirTerminalBoxType = IfcAirTerminalBoxType;
+    class IfcAirTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3352864051;
+      }
+    }
+    IFC4X32.IfcAirTerminalType = IfcAirTerminalType;
+    class IfcAirToAirHeatRecoveryType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1871374353;
+      }
+    }
+    IFC4X32.IfcAirToAirHeatRecoveryType = IfcAirToAirHeatRecoveryType;
+    class IfcAlignmentCant extends IfcLinearElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, RailHeadDistance) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.RailHeadDistance = RailHeadDistance;
+        this.type = 4266260250;
+      }
+    }
+    IFC4X32.IfcAlignmentCant = IfcAlignmentCant;
+    class IfcAlignmentHorizontal extends IfcLinearElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 1545765605;
+      }
+    }
+    IFC4X32.IfcAlignmentHorizontal = IfcAlignmentHorizontal;
+    class IfcAlignmentSegment extends IfcLinearElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, DesignParameters) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.DesignParameters = DesignParameters;
+        this.type = 317615605;
+      }
+    }
+    IFC4X32.IfcAlignmentSegment = IfcAlignmentSegment;
+    class IfcAlignmentVertical extends IfcLinearElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 1662888072;
+      }
+    }
+    IFC4X32.IfcAlignmentVertical = IfcAlignmentVertical;
+    class IfcAsset extends IfcGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, OriginalValue, CurrentValue, TotalReplacementCost, Owner, User, ResponsiblePerson, IncorporationDate, DepreciatedValue) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.OriginalValue = OriginalValue;
+        this.CurrentValue = CurrentValue;
+        this.TotalReplacementCost = TotalReplacementCost;
+        this.Owner = Owner;
+        this.User = User;
+        this.ResponsiblePerson = ResponsiblePerson;
+        this.IncorporationDate = IncorporationDate;
+        this.DepreciatedValue = DepreciatedValue;
+        this.type = 3460190687;
+      }
+    }
+    IFC4X32.IfcAsset = IfcAsset;
+    class IfcAudioVisualApplianceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1532957894;
+      }
+    }
+    IFC4X32.IfcAudioVisualApplianceType = IfcAudioVisualApplianceType;
+    class IfcBSplineCurve extends IfcBoundedCurve {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect) {
+        super();
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 1967976161;
+      }
+    }
+    IFC4X32.IfcBSplineCurve = IfcBSplineCurve;
+    class IfcBSplineCurveWithKnots extends IfcBSplineCurve {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec) {
+        super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect);
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.KnotMultiplicities = KnotMultiplicities;
+        this.Knots = Knots;
+        this.KnotSpec = KnotSpec;
+        this.type = 2461110595;
+      }
+    }
+    IFC4X32.IfcBSplineCurveWithKnots = IfcBSplineCurveWithKnots;
+    class IfcBeamType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 819618141;
+      }
+    }
+    IFC4X32.IfcBeamType = IfcBeamType;
+    class IfcBearingType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3649138523;
+      }
+    }
+    IFC4X32.IfcBearingType = IfcBearingType;
+    class IfcBoilerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 231477066;
+      }
+    }
+    IFC4X32.IfcBoilerType = IfcBoilerType;
+    class IfcBoundaryCurve extends IfcCompositeCurveOnSurface {
+      constructor(Segments, SelfIntersect) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 1136057603;
+      }
+    }
+    IFC4X32.IfcBoundaryCurve = IfcBoundaryCurve;
+    class IfcBridge extends IfcFacility {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.PredefinedType = PredefinedType;
+        this.type = 644574406;
+      }
+    }
+    IFC4X32.IfcBridge = IfcBridge;
+    class IfcBridgePart extends IfcFacilityPart {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, UsageType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.UsageType = UsageType;
+        this.PredefinedType = PredefinedType;
+        this.type = 963979645;
+      }
+    }
+    IFC4X32.IfcBridgePart = IfcBridgePart;
+    class IfcBuilding extends IfcFacility {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType, ElevationOfRefHeight, ElevationOfTerrain, BuildingAddress) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.CompositionType = CompositionType;
+        this.ElevationOfRefHeight = ElevationOfRefHeight;
+        this.ElevationOfTerrain = ElevationOfTerrain;
+        this.BuildingAddress = BuildingAddress;
+        this.type = 4031249490;
+      }
+    }
+    IFC4X32.IfcBuilding = IfcBuilding;
+    class IfcBuildingElementPart extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2979338954;
+      }
+    }
+    IFC4X32.IfcBuildingElementPart = IfcBuildingElementPart;
+    class IfcBuildingElementPartType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 39481116;
+      }
+    }
+    IFC4X32.IfcBuildingElementPartType = IfcBuildingElementPartType;
+    class IfcBuildingElementProxyType extends IfcBuiltElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1909888760;
+      }
+    }
+    IFC4X32.IfcBuildingElementProxyType = IfcBuildingElementProxyType;
+    class IfcBuildingSystem extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.LongName = LongName;
+        this.type = 1177604601;
+      }
+    }
+    IFC4X32.IfcBuildingSystem = IfcBuildingSystem;
+    class IfcBuiltElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1876633798;
+      }
+    }
+    IFC4X32.IfcBuiltElement = IfcBuiltElement;
+    class IfcBuiltSystem extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, LongName) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.LongName = LongName;
+        this.type = 3862327254;
+      }
+    }
+    IFC4X32.IfcBuiltSystem = IfcBuiltSystem;
+    class IfcBurnerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2188180465;
+      }
+    }
+    IFC4X32.IfcBurnerType = IfcBurnerType;
+    class IfcCableCarrierFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 395041908;
+      }
+    }
+    IFC4X32.IfcCableCarrierFittingType = IfcCableCarrierFittingType;
+    class IfcCableCarrierSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3293546465;
+      }
+    }
+    IFC4X32.IfcCableCarrierSegmentType = IfcCableCarrierSegmentType;
+    class IfcCableFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2674252688;
+      }
+    }
+    IFC4X32.IfcCableFittingType = IfcCableFittingType;
+    class IfcCableSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1285652485;
+      }
+    }
+    IFC4X32.IfcCableSegmentType = IfcCableSegmentType;
+    class IfcCaissonFoundationType extends IfcDeepFoundationType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3203706013;
+      }
+    }
+    IFC4X32.IfcCaissonFoundationType = IfcCaissonFoundationType;
+    class IfcChillerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2951183804;
+      }
+    }
+    IFC4X32.IfcChillerType = IfcChillerType;
+    class IfcChimney extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3296154744;
+      }
+    }
+    IFC4X32.IfcChimney = IfcChimney;
+    class IfcCircle extends IfcConic {
+      constructor(Position, Radius) {
+        super(Position);
+        this.Position = Position;
+        this.Radius = Radius;
+        this.type = 2611217952;
+      }
+    }
+    IFC4X32.IfcCircle = IfcCircle;
+    class IfcCivilElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1677625105;
+      }
+    }
+    IFC4X32.IfcCivilElement = IfcCivilElement;
+    class IfcCoilType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2301859152;
+      }
+    }
+    IFC4X32.IfcCoilType = IfcCoilType;
+    class IfcColumn extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 843113511;
+      }
+    }
+    IFC4X32.IfcColumn = IfcColumn;
+    class IfcCommunicationsApplianceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 400855858;
+      }
+    }
+    IFC4X32.IfcCommunicationsApplianceType = IfcCommunicationsApplianceType;
+    class IfcCompressorType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3850581409;
+      }
+    }
+    IFC4X32.IfcCompressorType = IfcCompressorType;
+    class IfcCondenserType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2816379211;
+      }
+    }
+    IFC4X32.IfcCondenserType = IfcCondenserType;
+    class IfcConstructionEquipmentResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 3898045240;
+      }
+    }
+    IFC4X32.IfcConstructionEquipmentResource = IfcConstructionEquipmentResource;
+    class IfcConstructionMaterialResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 1060000209;
+      }
+    }
+    IFC4X32.IfcConstructionMaterialResource = IfcConstructionMaterialResource;
+    class IfcConstructionProductResource extends IfcConstructionResource {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, Identification, LongDescription, Usage, BaseCosts, BaseQuantity);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.Identification = Identification;
+        this.LongDescription = LongDescription;
+        this.Usage = Usage;
+        this.BaseCosts = BaseCosts;
+        this.BaseQuantity = BaseQuantity;
+        this.PredefinedType = PredefinedType;
+        this.type = 488727124;
+      }
+    }
+    IFC4X32.IfcConstructionProductResource = IfcConstructionProductResource;
+    class IfcConveyorSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2940368186;
+      }
+    }
+    IFC4X32.IfcConveyorSegmentType = IfcConveyorSegmentType;
+    class IfcCooledBeamType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 335055490;
+      }
+    }
+    IFC4X32.IfcCooledBeamType = IfcCooledBeamType;
+    class IfcCoolingTowerType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2954562838;
+      }
+    }
+    IFC4X32.IfcCoolingTowerType = IfcCoolingTowerType;
+    class IfcCourse extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1502416096;
+      }
+    }
+    IFC4X32.IfcCourse = IfcCourse;
+    class IfcCovering extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1973544240;
+      }
+    }
+    IFC4X32.IfcCovering = IfcCovering;
+    class IfcCurtainWall extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3495092785;
+      }
+    }
+    IFC4X32.IfcCurtainWall = IfcCurtainWall;
+    class IfcDamperType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3961806047;
+      }
+    }
+    IFC4X32.IfcDamperType = IfcDamperType;
+    class IfcDeepFoundation extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3426335179;
+      }
+    }
+    IFC4X32.IfcDeepFoundation = IfcDeepFoundation;
+    class IfcDiscreteAccessory extends IfcElementComponent {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1335981549;
+      }
+    }
+    IFC4X32.IfcDiscreteAccessory = IfcDiscreteAccessory;
+    class IfcDiscreteAccessoryType extends IfcElementComponentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2635815018;
+      }
+    }
+    IFC4X32.IfcDiscreteAccessoryType = IfcDiscreteAccessoryType;
+    class IfcDistributionBoardType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 479945903;
+      }
+    }
+    IFC4X32.IfcDistributionBoardType = IfcDistributionBoardType;
+    class IfcDistributionChamberElementType extends IfcDistributionFlowElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1599208980;
+      }
+    }
+    IFC4X32.IfcDistributionChamberElementType = IfcDistributionChamberElementType;
+    class IfcDistributionControlElementType extends IfcDistributionElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.type = 2063403501;
+      }
+    }
+    IFC4X32.IfcDistributionControlElementType = IfcDistributionControlElementType;
+    class IfcDistributionElement extends IfcElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1945004755;
+      }
+    }
+    IFC4X32.IfcDistributionElement = IfcDistributionElement;
+    class IfcDistributionFlowElement extends IfcDistributionElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3040386961;
+      }
+    }
+    IFC4X32.IfcDistributionFlowElement = IfcDistributionFlowElement;
+    class IfcDistributionPort extends IfcPort {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, FlowDirection, PredefinedType, SystemType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.FlowDirection = FlowDirection;
+        this.PredefinedType = PredefinedType;
+        this.SystemType = SystemType;
+        this.type = 3041715199;
+      }
+    }
+    IFC4X32.IfcDistributionPort = IfcDistributionPort;
+    class IfcDistributionSystem extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.PredefinedType = PredefinedType;
+        this.type = 3205830791;
+      }
+    }
+    IFC4X32.IfcDistributionSystem = IfcDistributionSystem;
+    class IfcDoor extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, OperationType, UserDefinedOperationType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OverallHeight = OverallHeight;
+        this.OverallWidth = OverallWidth;
+        this.PredefinedType = PredefinedType;
+        this.OperationType = OperationType;
+        this.UserDefinedOperationType = UserDefinedOperationType;
+        this.type = 395920057;
+      }
+    }
+    IFC4X32.IfcDoor = IfcDoor;
+    class IfcDuctFittingType extends IfcFlowFittingType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 869906466;
+      }
+    }
+    IFC4X32.IfcDuctFittingType = IfcDuctFittingType;
+    class IfcDuctSegmentType extends IfcFlowSegmentType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3760055223;
+      }
+    }
+    IFC4X32.IfcDuctSegmentType = IfcDuctSegmentType;
+    class IfcDuctSilencerType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2030761528;
+      }
+    }
+    IFC4X32.IfcDuctSilencerType = IfcDuctSilencerType;
+    class IfcEarthworksCut extends IfcFeatureElementSubtraction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3071239417;
+      }
+    }
+    IFC4X32.IfcEarthworksCut = IfcEarthworksCut;
+    class IfcEarthworksElement extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1077100507;
+      }
+    }
+    IFC4X32.IfcEarthworksElement = IfcEarthworksElement;
+    class IfcEarthworksFill extends IfcEarthworksElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3376911765;
+      }
+    }
+    IFC4X32.IfcEarthworksFill = IfcEarthworksFill;
+    class IfcElectricApplianceType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 663422040;
+      }
+    }
+    IFC4X32.IfcElectricApplianceType = IfcElectricApplianceType;
+    class IfcElectricDistributionBoardType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2417008758;
+      }
+    }
+    IFC4X32.IfcElectricDistributionBoardType = IfcElectricDistributionBoardType;
+    class IfcElectricFlowStorageDeviceType extends IfcFlowStorageDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3277789161;
+      }
+    }
+    IFC4X32.IfcElectricFlowStorageDeviceType = IfcElectricFlowStorageDeviceType;
+    class IfcElectricFlowTreatmentDeviceType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2142170206;
+      }
+    }
+    IFC4X32.IfcElectricFlowTreatmentDeviceType = IfcElectricFlowTreatmentDeviceType;
+    class IfcElectricGeneratorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1534661035;
+      }
+    }
+    IFC4X32.IfcElectricGeneratorType = IfcElectricGeneratorType;
+    class IfcElectricMotorType extends IfcEnergyConversionDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1217240411;
+      }
+    }
+    IFC4X32.IfcElectricMotorType = IfcElectricMotorType;
+    class IfcElectricTimeControlType extends IfcFlowControllerType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 712377611;
+      }
+    }
+    IFC4X32.IfcElectricTimeControlType = IfcElectricTimeControlType;
+    class IfcEnergyConversionDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1658829314;
+      }
+    }
+    IFC4X32.IfcEnergyConversionDevice = IfcEnergyConversionDevice;
+    class IfcEngine extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2814081492;
+      }
+    }
+    IFC4X32.IfcEngine = IfcEngine;
+    class IfcEvaporativeCooler extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3747195512;
+      }
+    }
+    IFC4X32.IfcEvaporativeCooler = IfcEvaporativeCooler;
+    class IfcEvaporator extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 484807127;
+      }
+    }
+    IFC4X32.IfcEvaporator = IfcEvaporator;
+    class IfcExternalSpatialElement extends IfcExternalSpatialStructureElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.LongName = LongName;
+        this.PredefinedType = PredefinedType;
+        this.type = 1209101575;
+      }
+    }
+    IFC4X32.IfcExternalSpatialElement = IfcExternalSpatialElement;
+    class IfcFanType extends IfcFlowMovingDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 346874300;
+      }
+    }
+    IFC4X32.IfcFanType = IfcFanType;
+    class IfcFilterType extends IfcFlowTreatmentDeviceType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1810631287;
+      }
+    }
+    IFC4X32.IfcFilterType = IfcFilterType;
+    class IfcFireSuppressionTerminalType extends IfcFlowTerminalType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4222183408;
+      }
+    }
+    IFC4X32.IfcFireSuppressionTerminalType = IfcFireSuppressionTerminalType;
+    class IfcFlowController extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2058353004;
+      }
+    }
+    IFC4X32.IfcFlowController = IfcFlowController;
+    class IfcFlowFitting extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 4278956645;
+      }
+    }
+    IFC4X32.IfcFlowFitting = IfcFlowFitting;
+    class IfcFlowInstrumentType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 4037862832;
+      }
+    }
+    IFC4X32.IfcFlowInstrumentType = IfcFlowInstrumentType;
+    class IfcFlowMeter extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2188021234;
+      }
+    }
+    IFC4X32.IfcFlowMeter = IfcFlowMeter;
+    class IfcFlowMovingDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3132237377;
+      }
+    }
+    IFC4X32.IfcFlowMovingDevice = IfcFlowMovingDevice;
+    class IfcFlowSegment extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 987401354;
+      }
+    }
+    IFC4X32.IfcFlowSegment = IfcFlowSegment;
+    class IfcFlowStorageDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 707683696;
+      }
+    }
+    IFC4X32.IfcFlowStorageDevice = IfcFlowStorageDevice;
+    class IfcFlowTerminal extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2223149337;
+      }
+    }
+    IFC4X32.IfcFlowTerminal = IfcFlowTerminal;
+    class IfcFlowTreatmentDevice extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3508470533;
+      }
+    }
+    IFC4X32.IfcFlowTreatmentDevice = IfcFlowTreatmentDevice;
+    class IfcFooting extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 900683007;
+      }
+    }
+    IFC4X32.IfcFooting = IfcFooting;
+    class IfcGeotechnicalAssembly extends IfcGeotechnicalElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2713699986;
+      }
+    }
+    IFC4X32.IfcGeotechnicalAssembly = IfcGeotechnicalAssembly;
+    class IfcGrid extends IfcPositioningElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, UAxes, VAxes, WAxes, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.UAxes = UAxes;
+        this.VAxes = VAxes;
+        this.WAxes = WAxes;
+        this.PredefinedType = PredefinedType;
+        this.type = 3009204131;
+      }
+    }
+    IFC4X32.IfcGrid = IfcGrid;
+    class IfcHeatExchanger extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3319311131;
+      }
+    }
+    IFC4X32.IfcHeatExchanger = IfcHeatExchanger;
+    class IfcHumidifier extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2068733104;
+      }
+    }
+    IFC4X32.IfcHumidifier = IfcHumidifier;
+    class IfcInterceptor extends IfcFlowTreatmentDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4175244083;
+      }
+    }
+    IFC4X32.IfcInterceptor = IfcInterceptor;
+    class IfcJunctionBox extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2176052936;
+      }
+    }
+    IFC4X32.IfcJunctionBox = IfcJunctionBox;
+    class IfcKerb extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, Mountable) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.Mountable = Mountable;
+        this.type = 2696325953;
+      }
+    }
+    IFC4X32.IfcKerb = IfcKerb;
+    class IfcLamp extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 76236018;
+      }
+    }
+    IFC4X32.IfcLamp = IfcLamp;
+    class IfcLightFixture extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 629592764;
+      }
+    }
+    IFC4X32.IfcLightFixture = IfcLightFixture;
+    class IfcLinearPositioningElement extends IfcPositioningElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.type = 1154579445;
+      }
+    }
+    IFC4X32.IfcLinearPositioningElement = IfcLinearPositioningElement;
+    class IfcLiquidTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1638804497;
+      }
+    }
+    IFC4X32.IfcLiquidTerminal = IfcLiquidTerminal;
+    class IfcMedicalDevice extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1437502449;
+      }
+    }
+    IFC4X32.IfcMedicalDevice = IfcMedicalDevice;
+    class IfcMember extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1073191201;
+      }
+    }
+    IFC4X32.IfcMember = IfcMember;
+    class IfcMobileTelecommunicationsAppliance extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2078563270;
+      }
+    }
+    IFC4X32.IfcMobileTelecommunicationsAppliance = IfcMobileTelecommunicationsAppliance;
+    class IfcMooringDevice extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 234836483;
+      }
+    }
+    IFC4X32.IfcMooringDevice = IfcMooringDevice;
+    class IfcMotorConnection extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2474470126;
+      }
+    }
+    IFC4X32.IfcMotorConnection = IfcMotorConnection;
+    class IfcNavigationElement extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2182337498;
+      }
+    }
+    IFC4X32.IfcNavigationElement = IfcNavigationElement;
+    class IfcOuterBoundaryCurve extends IfcBoundaryCurve {
+      constructor(Segments, SelfIntersect) {
+        super(Segments, SelfIntersect);
+        this.Segments = Segments;
+        this.SelfIntersect = SelfIntersect;
+        this.type = 144952367;
+      }
+    }
+    IFC4X32.IfcOuterBoundaryCurve = IfcOuterBoundaryCurve;
+    class IfcOutlet extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3694346114;
+      }
+    }
+    IFC4X32.IfcOutlet = IfcOutlet;
+    class IfcPavement extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1383356374;
+      }
+    }
+    IFC4X32.IfcPavement = IfcPavement;
+    class IfcPile extends IfcDeepFoundation {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType, ConstructionType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.ConstructionType = ConstructionType;
+        this.type = 1687234759;
+      }
+    }
+    IFC4X32.IfcPile = IfcPile;
+    class IfcPipeFitting extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 310824031;
+      }
+    }
+    IFC4X32.IfcPipeFitting = IfcPipeFitting;
+    class IfcPipeSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3612865200;
+      }
+    }
+    IFC4X32.IfcPipeSegment = IfcPipeSegment;
+    class IfcPlate extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3171933400;
+      }
+    }
+    IFC4X32.IfcPlate = IfcPlate;
+    class IfcProtectiveDevice extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 738039164;
+      }
+    }
+    IFC4X32.IfcProtectiveDevice = IfcProtectiveDevice;
+    class IfcProtectiveDeviceTrippingUnitType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 655969474;
+      }
+    }
+    IFC4X32.IfcProtectiveDeviceTrippingUnitType = IfcProtectiveDeviceTrippingUnitType;
+    class IfcPump extends IfcFlowMovingDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 90941305;
+      }
+    }
+    IFC4X32.IfcPump = IfcPump;
+    class IfcRail extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3290496277;
+      }
+    }
+    IFC4X32.IfcRail = IfcRail;
+    class IfcRailing extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2262370178;
+      }
+    }
+    IFC4X32.IfcRailing = IfcRailing;
+    class IfcRamp extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3024970846;
+      }
+    }
+    IFC4X32.IfcRamp = IfcRamp;
+    class IfcRampFlight extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3283111854;
+      }
+    }
+    IFC4X32.IfcRampFlight = IfcRampFlight;
+    class IfcRationalBSplineCurveWithKnots extends IfcBSplineCurveWithKnots {
+      constructor(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec, WeightsData) {
+        super(Degree, ControlPointsList, CurveForm, ClosedCurve, SelfIntersect, KnotMultiplicities, Knots, KnotSpec);
+        this.Degree = Degree;
+        this.ControlPointsList = ControlPointsList;
+        this.CurveForm = CurveForm;
+        this.ClosedCurve = ClosedCurve;
+        this.SelfIntersect = SelfIntersect;
+        this.KnotMultiplicities = KnotMultiplicities;
+        this.Knots = Knots;
+        this.KnotSpec = KnotSpec;
+        this.WeightsData = WeightsData;
+        this.type = 1232101972;
+      }
+    }
+    IFC4X32.IfcRationalBSplineCurveWithKnots = IfcRationalBSplineCurveWithKnots;
+    class IfcReinforcedSoil extends IfcEarthworksElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3798194928;
+      }
+    }
+    IFC4X32.IfcReinforcedSoil = IfcReinforcedSoil;
+    class IfcReinforcingBar extends IfcReinforcingElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade, NominalDiameter, CrossSectionArea, BarLength, PredefinedType, BarSurface) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, SteelGrade);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.SteelGrade = SteelGrade;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.BarLength = BarLength;
+        this.PredefinedType = PredefinedType;
+        this.BarSurface = BarSurface;
+        this.type = 979691226;
+      }
+    }
+    IFC4X32.IfcReinforcingBar = IfcReinforcingBar;
+    class IfcReinforcingBarType extends IfcReinforcingElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType, NominalDiameter, CrossSectionArea, BarLength, BarSurface, BendingShapeCode, BendingParameters) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.NominalDiameter = NominalDiameter;
+        this.CrossSectionArea = CrossSectionArea;
+        this.BarLength = BarLength;
+        this.BarSurface = BarSurface;
+        this.BendingShapeCode = BendingShapeCode;
+        this.BendingParameters = BendingParameters;
+        this.type = 2572171363;
+      }
+    }
+    IFC4X32.IfcReinforcingBarType = IfcReinforcingBarType;
+    class IfcRoof extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2016517767;
+      }
+    }
+    IFC4X32.IfcRoof = IfcRoof;
+    class IfcSanitaryTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3053780830;
+      }
+    }
+    IFC4X32.IfcSanitaryTerminal = IfcSanitaryTerminal;
+    class IfcSensorType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 1783015770;
+      }
+    }
+    IFC4X32.IfcSensorType = IfcSensorType;
+    class IfcShadingDevice extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1329646415;
+      }
+    }
+    IFC4X32.IfcShadingDevice = IfcShadingDevice;
+    class IfcSignal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 991950508;
+      }
+    }
+    IFC4X32.IfcSignal = IfcSignal;
+    class IfcSlab extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1529196076;
+      }
+    }
+    IFC4X32.IfcSlab = IfcSlab;
+    class IfcSolarDevice extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3420628829;
+      }
+    }
+    IFC4X32.IfcSolarDevice = IfcSolarDevice;
+    class IfcSpaceHeater extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1999602285;
+      }
+    }
+    IFC4X32.IfcSpaceHeater = IfcSpaceHeater;
+    class IfcStackTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1404847402;
+      }
+    }
+    IFC4X32.IfcStackTerminal = IfcStackTerminal;
+    class IfcStair extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 331165859;
+      }
+    }
+    IFC4X32.IfcStair = IfcStair;
+    class IfcStairFlight extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, NumberOfRisers, NumberOfTreads, RiserHeight, TreadLength, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.NumberOfRisers = NumberOfRisers;
+        this.NumberOfTreads = NumberOfTreads;
+        this.RiserHeight = RiserHeight;
+        this.TreadLength = TreadLength;
+        this.PredefinedType = PredefinedType;
+        this.type = 4252922144;
+      }
+    }
+    IFC4X32.IfcStairFlight = IfcStairFlight;
+    class IfcStructuralAnalysisModel extends IfcSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, OrientationOf2DPlane, LoadedBy, HasResults, SharedPlacement) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.OrientationOf2DPlane = OrientationOf2DPlane;
+        this.LoadedBy = LoadedBy;
+        this.HasResults = HasResults;
+        this.SharedPlacement = SharedPlacement;
+        this.type = 2515109513;
+      }
+    }
+    IFC4X32.IfcStructuralAnalysisModel = IfcStructuralAnalysisModel;
+    class IfcStructuralLoadCase extends IfcStructuralLoadGroup {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose, SelfWeightCoefficients) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, PredefinedType, ActionType, ActionSource, Coefficient, Purpose);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.PredefinedType = PredefinedType;
+        this.ActionType = ActionType;
+        this.ActionSource = ActionSource;
+        this.Coefficient = Coefficient;
+        this.Purpose = Purpose;
+        this.SelfWeightCoefficients = SelfWeightCoefficients;
+        this.type = 385403989;
+      }
+    }
+    IFC4X32.IfcStructuralLoadCase = IfcStructuralLoadCase;
+    class IfcStructuralPlanarAction extends IfcStructuralSurfaceAction {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, AppliedLoad, GlobalOrLocal, DestabilizingLoad, ProjectedOrTrue, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.AppliedLoad = AppliedLoad;
+        this.GlobalOrLocal = GlobalOrLocal;
+        this.DestabilizingLoad = DestabilizingLoad;
+        this.ProjectedOrTrue = ProjectedOrTrue;
+        this.PredefinedType = PredefinedType;
+        this.type = 1621171031;
+      }
+    }
+    IFC4X32.IfcStructuralPlanarAction = IfcStructuralPlanarAction;
+    class IfcSwitchingDevice extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1162798199;
+      }
+    }
+    IFC4X32.IfcSwitchingDevice = IfcSwitchingDevice;
+    class IfcTank extends IfcFlowStorageDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 812556717;
+      }
+    }
+    IFC4X32.IfcTank = IfcTank;
+    class IfcTrackElement extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3425753595;
+      }
+    }
+    IFC4X32.IfcTrackElement = IfcTrackElement;
+    class IfcTransformer extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3825984169;
+      }
+    }
+    IFC4X32.IfcTransformer = IfcTransformer;
+    class IfcTransportElement extends IfcTransportationDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1620046519;
+      }
+    }
+    IFC4X32.IfcTransportElement = IfcTransportElement;
+    class IfcTubeBundle extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3026737570;
+      }
+    }
+    IFC4X32.IfcTubeBundle = IfcTubeBundle;
+    class IfcUnitaryControlElementType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3179687236;
+      }
+    }
+    IFC4X32.IfcUnitaryControlElementType = IfcUnitaryControlElementType;
+    class IfcUnitaryEquipment extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4292641817;
+      }
+    }
+    IFC4X32.IfcUnitaryEquipment = IfcUnitaryEquipment;
+    class IfcValve extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4207607924;
+      }
+    }
+    IFC4X32.IfcValve = IfcValve;
+    class IfcWall extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2391406946;
+      }
+    }
+    IFC4X32.IfcWall = IfcWall;
+    class IfcWallStandardCase extends IfcWall {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3512223829;
+      }
+    }
+    IFC4X32.IfcWallStandardCase = IfcWallStandardCase;
+    class IfcWasteTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4237592921;
+      }
+    }
+    IFC4X32.IfcWasteTerminal = IfcWasteTerminal;
+    class IfcWindow extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, OverallHeight, OverallWidth, PredefinedType, PartitioningType, UserDefinedPartitioningType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.OverallHeight = OverallHeight;
+        this.OverallWidth = OverallWidth;
+        this.PredefinedType = PredefinedType;
+        this.PartitioningType = PartitioningType;
+        this.UserDefinedPartitioningType = UserDefinedPartitioningType;
+        this.type = 3304561284;
+      }
+    }
+    IFC4X32.IfcWindow = IfcWindow;
+    class IfcActuatorType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 2874132201;
+      }
+    }
+    IFC4X32.IfcActuatorType = IfcActuatorType;
+    class IfcAirTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1634111441;
+      }
+    }
+    IFC4X32.IfcAirTerminal = IfcAirTerminal;
+    class IfcAirTerminalBox extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 177149247;
+      }
+    }
+    IFC4X32.IfcAirTerminalBox = IfcAirTerminalBox;
+    class IfcAirToAirHeatRecovery extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2056796094;
+      }
+    }
+    IFC4X32.IfcAirToAirHeatRecovery = IfcAirToAirHeatRecovery;
+    class IfcAlarmType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 3001207471;
+      }
+    }
+    IFC4X32.IfcAlarmType = IfcAlarmType;
+    class IfcAlignment extends IfcLinearPositioningElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.PredefinedType = PredefinedType;
+        this.type = 325726236;
+      }
+    }
+    IFC4X32.IfcAlignment = IfcAlignment;
+    class IfcAudioVisualAppliance extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 277319702;
+      }
+    }
+    IFC4X32.IfcAudioVisualAppliance = IfcAudioVisualAppliance;
+    class IfcBeam extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 753842376;
+      }
+    }
+    IFC4X32.IfcBeam = IfcBeam;
+    class IfcBearing extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4196446775;
+      }
+    }
+    IFC4X32.IfcBearing = IfcBearing;
+    class IfcBoiler extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 32344328;
+      }
+    }
+    IFC4X32.IfcBoiler = IfcBoiler;
+    class IfcBorehole extends IfcGeotechnicalAssembly {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 3314249567;
+      }
+    }
+    IFC4X32.IfcBorehole = IfcBorehole;
+    class IfcBuildingElementProxy extends IfcBuiltElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1095909175;
+      }
+    }
+    IFC4X32.IfcBuildingElementProxy = IfcBuildingElementProxy;
+    class IfcBurner extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2938176219;
+      }
+    }
+    IFC4X32.IfcBurner = IfcBurner;
+    class IfcCableCarrierFitting extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 635142910;
+      }
+    }
+    IFC4X32.IfcCableCarrierFitting = IfcCableCarrierFitting;
+    class IfcCableCarrierSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3758799889;
+      }
+    }
+    IFC4X32.IfcCableCarrierSegment = IfcCableCarrierSegment;
+    class IfcCableFitting extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1051757585;
+      }
+    }
+    IFC4X32.IfcCableFitting = IfcCableFitting;
+    class IfcCableSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4217484030;
+      }
+    }
+    IFC4X32.IfcCableSegment = IfcCableSegment;
+    class IfcCaissonFoundation extends IfcDeepFoundation {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3999819293;
+      }
+    }
+    IFC4X32.IfcCaissonFoundation = IfcCaissonFoundation;
+    class IfcChiller extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3902619387;
+      }
+    }
+    IFC4X32.IfcChiller = IfcChiller;
+    class IfcCoil extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 639361253;
+      }
+    }
+    IFC4X32.IfcCoil = IfcCoil;
+    class IfcCommunicationsAppliance extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3221913625;
+      }
+    }
+    IFC4X32.IfcCommunicationsAppliance = IfcCommunicationsAppliance;
+    class IfcCompressor extends IfcFlowMovingDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3571504051;
+      }
+    }
+    IFC4X32.IfcCompressor = IfcCompressor;
+    class IfcCondenser extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2272882330;
+      }
+    }
+    IFC4X32.IfcCondenser = IfcCondenser;
+    class IfcControllerType extends IfcDistributionControlElementType {
+      constructor(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ApplicableOccurrence, HasPropertySets, RepresentationMaps, Tag, ElementType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ApplicableOccurrence = ApplicableOccurrence;
+        this.HasPropertySets = HasPropertySets;
+        this.RepresentationMaps = RepresentationMaps;
+        this.Tag = Tag;
+        this.ElementType = ElementType;
+        this.PredefinedType = PredefinedType;
+        this.type = 578613899;
+      }
+    }
+    IFC4X32.IfcControllerType = IfcControllerType;
+    class IfcConveyorSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3460952963;
+      }
+    }
+    IFC4X32.IfcConveyorSegment = IfcConveyorSegment;
+    class IfcCooledBeam extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4136498852;
+      }
+    }
+    IFC4X32.IfcCooledBeam = IfcCooledBeam;
+    class IfcCoolingTower extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3640358203;
+      }
+    }
+    IFC4X32.IfcCoolingTower = IfcCoolingTower;
+    class IfcDamper extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4074379575;
+      }
+    }
+    IFC4X32.IfcDamper = IfcDamper;
+    class IfcDistributionBoard extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3693000487;
+      }
+    }
+    IFC4X32.IfcDistributionBoard = IfcDistributionBoard;
+    class IfcDistributionChamberElement extends IfcDistributionFlowElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1052013943;
+      }
+    }
+    IFC4X32.IfcDistributionChamberElement = IfcDistributionChamberElement;
+    class IfcDistributionCircuit extends IfcDistributionSystem {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, LongName, PredefinedType);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.LongName = LongName;
+        this.PredefinedType = PredefinedType;
+        this.type = 562808652;
+      }
+    }
+    IFC4X32.IfcDistributionCircuit = IfcDistributionCircuit;
+    class IfcDistributionControlElement extends IfcDistributionElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1062813311;
+      }
+    }
+    IFC4X32.IfcDistributionControlElement = IfcDistributionControlElement;
+    class IfcDuctFitting extends IfcFlowFitting {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 342316401;
+      }
+    }
+    IFC4X32.IfcDuctFitting = IfcDuctFitting;
+    class IfcDuctSegment extends IfcFlowSegment {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3518393246;
+      }
+    }
+    IFC4X32.IfcDuctSegment = IfcDuctSegment;
+    class IfcDuctSilencer extends IfcFlowTreatmentDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1360408905;
+      }
+    }
+    IFC4X32.IfcDuctSilencer = IfcDuctSilencer;
+    class IfcElectricAppliance extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1904799276;
+      }
+    }
+    IFC4X32.IfcElectricAppliance = IfcElectricAppliance;
+    class IfcElectricDistributionBoard extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 862014818;
+      }
+    }
+    IFC4X32.IfcElectricDistributionBoard = IfcElectricDistributionBoard;
+    class IfcElectricFlowStorageDevice extends IfcFlowStorageDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3310460725;
+      }
+    }
+    IFC4X32.IfcElectricFlowStorageDevice = IfcElectricFlowStorageDevice;
+    class IfcElectricFlowTreatmentDevice extends IfcFlowTreatmentDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 24726584;
+      }
+    }
+    IFC4X32.IfcElectricFlowTreatmentDevice = IfcElectricFlowTreatmentDevice;
+    class IfcElectricGenerator extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 264262732;
+      }
+    }
+    IFC4X32.IfcElectricGenerator = IfcElectricGenerator;
+    class IfcElectricMotor extends IfcEnergyConversionDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 402227799;
+      }
+    }
+    IFC4X32.IfcElectricMotor = IfcElectricMotor;
+    class IfcElectricTimeControl extends IfcFlowController {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1003880860;
+      }
+    }
+    IFC4X32.IfcElectricTimeControl = IfcElectricTimeControl;
+    class IfcFan extends IfcFlowMovingDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3415622556;
+      }
+    }
+    IFC4X32.IfcFan = IfcFan;
+    class IfcFilter extends IfcFlowTreatmentDevice {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 819412036;
+      }
+    }
+    IFC4X32.IfcFilter = IfcFilter;
+    class IfcFireSuppressionTerminal extends IfcFlowTerminal {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 1426591983;
+      }
+    }
+    IFC4X32.IfcFireSuppressionTerminal = IfcFireSuppressionTerminal;
+    class IfcFlowInstrument extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 182646315;
+      }
+    }
+    IFC4X32.IfcFlowInstrument = IfcFlowInstrument;
+    class IfcGeomodel extends IfcGeotechnicalAssembly {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 2680139844;
+      }
+    }
+    IFC4X32.IfcGeomodel = IfcGeomodel;
+    class IfcGeoslice extends IfcGeotechnicalAssembly {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.type = 1971632696;
+      }
+    }
+    IFC4X32.IfcGeoslice = IfcGeoslice;
+    class IfcProtectiveDeviceTrippingUnit extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 2295281155;
+      }
+    }
+    IFC4X32.IfcProtectiveDeviceTrippingUnit = IfcProtectiveDeviceTrippingUnit;
+    class IfcSensor extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4086658281;
+      }
+    }
+    IFC4X32.IfcSensor = IfcSensor;
+    class IfcUnitaryControlElement extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 630975310;
+      }
+    }
+    IFC4X32.IfcUnitaryControlElement = IfcUnitaryControlElement;
+    class IfcActuator extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 4288193352;
+      }
+    }
+    IFC4X32.IfcActuator = IfcActuator;
+    class IfcAlarm extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 3087945054;
+      }
+    }
+    IFC4X32.IfcAlarm = IfcAlarm;
+    class IfcController extends IfcDistributionControlElement {
+      constructor(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag, PredefinedType) {
+        super(GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, Tag);
+        this.GlobalId = GlobalId;
+        this.OwnerHistory = OwnerHistory;
+        this.Name = Name;
+        this.Description = Description;
+        this.ObjectType = ObjectType;
+        this.ObjectPlacement = ObjectPlacement;
+        this.Representation = Representation;
+        this.Tag = Tag;
+        this.PredefinedType = PredefinedType;
+        this.type = 25142252;
+      }
+    }
+    IFC4X32.IfcController = IfcController;
+  })(IFC4X3 || (IFC4X3 = {}));
+  var PropsNames = {
+    aggregates: {
+      name: IFCRELAGGREGATES,
+      relating: "RelatingObject",
+      related: "RelatedObjects",
+      key: "children"
+    },
+    spatial: {
+      name: IFCRELCONTAINEDINSPATIALSTRUCTURE,
+      relating: "RelatingStructure",
+      related: "RelatedElements",
+      key: "children"
+    },
+    psets: {
+      name: IFCRELDEFINESBYPROPERTIES,
+      relating: "RelatingPropertyDefinition",
+      related: "RelatedObjects",
+      key: "IsDefinedBy"
+    },
+    materials: {
+      name: IFCRELASSOCIATESMATERIAL,
+      relating: "RelatingMaterial",
+      related: "RelatedObjects",
+      key: "HasAssociations"
+    },
+    type: {
+      name: IFCRELDEFINESBYTYPE,
+      relating: "RelatingType",
+      related: "RelatedObjects",
+      key: "IsDefinedBy"
+    }
+  };
+  var Properties = class {
+    constructor(api) {
+      this.api = api;
+    }
+    getItemProperties(modelID, id, recursive = false, inverse = false) {
+      return __async(this, null, function* () {
+        return this.api.GetLine(modelID, id, recursive, inverse);
+      });
+    }
+    getPropertySets(modelID, elementID = 0, recursive = false, includeTypeProperties = false) {
+      return __async(this, null, function* () {
+        if (includeTypeProperties) {
+          let types = yield this.getTypeProperties(modelID, elementID, false);
+          let results = [];
+          for (let t of types)
+            results.push(...yield this.getPropertySets(modelID, t.expressID, recursive));
+          return results;
+        } else
+          return yield this.getRelatedProperties(modelID, elementID, PropsNames.psets, recursive);
+      });
+    }
+    setPropertySets(modelID, elementID, psetID) {
+      return __async(this, null, function* () {
+        return this.setItemProperties(modelID, elementID, psetID, PropsNames.psets);
+      });
+    }
+    getTypeProperties(modelID, elementID = 0, recursive = false) {
+      return __async(this, null, function* () {
+        if (this.api.GetModelSchema(modelID) == "IFC2X3") {
+          return yield this.getRelatedProperties(modelID, elementID, PropsNames.type, recursive);
+        } else {
+          return yield this.getRelatedProperties(modelID, elementID, __spreadProps(__spreadValues({}, PropsNames.type), { key: "IsTypedBy" }), recursive);
+        }
+      });
+    }
+    getMaterialsProperties(modelID, elementID = 0, recursive = false, includeTypeMaterials = false) {
+      return __async(this, null, function* () {
+        if (includeTypeMaterials) {
+          let types = yield this.getTypeProperties(modelID, elementID, false);
+          let results = [];
+          for (let t of types)
+            results.push(...yield this.getMaterialsProperties(modelID, t.expressID, recursive));
+          return results;
+        } else
+          return yield this.getRelatedProperties(modelID, elementID, PropsNames.materials, recursive);
+      });
+    }
+    setMaterialsProperties(modelID, elementID, materialID) {
+      return __async(this, null, function* () {
+        return this.setItemProperties(modelID, elementID, materialID, PropsNames.materials);
+      });
+    }
+    getSpatialStructure(modelID, includeProperties = false) {
+      return __async(this, null, function* () {
+        const chunks = yield this.getSpatialTreeChunks(modelID);
+        const allLines = yield this.api.GetLineIDsWithType(modelID, IFCPROJECT);
+        const projectID = allLines.get(0);
+        const project = Properties.newIfcProject(projectID);
+        yield this.getSpatialNode(modelID, project, chunks, includeProperties);
+        return project;
+      });
+    }
+    getRelatedProperties(modelID, elementID, propsName, recursive = false) {
+      return __async(this, null, function* () {
+        const result = [];
+        let rels = null;
+        if (elementID !== 0)
+          rels = yield this.api.GetLine(modelID, elementID, false, true, propsName.key)[propsName.key];
+        else {
+          let vec = this.api.GetLineIDsWithType(modelID, propsName.name);
+          rels = [];
+          for (let i = 0; i < vec.size(); ++i)
+            rels.push({ value: vec.get(i) });
+        }
+        if (rels == null)
+          return result;
+        if (!Array.isArray(rels))
+          rels = [rels];
+        for (let i = 0; i < rels.length; i++) {
+          let propSetIds = yield this.api.GetLine(modelID, rels[i].value, false, false)[propsName.relating];
+          if (propSetIds == null)
+            continue;
+          if (!Array.isArray(propSetIds))
+            propSetIds = [propSetIds];
+          for (let x = 0; x < propSetIds.length; x++) {
+            result.push(yield this.api.GetLine(modelID, propSetIds[x].value, recursive));
+          }
+        }
+        return result;
+      });
+    }
+    getChunks(modelID, chunks, propNames) {
+      return __async(this, null, function* () {
+        const relation = yield this.api.GetLineIDsWithType(modelID, propNames.name, true);
+        for (let i = 0; i < relation.size(); i++) {
+          const rel = yield this.api.GetLine(modelID, relation.get(i), false);
+          this.saveChunk(chunks, propNames, rel);
+        }
+      });
+    }
+    static newIfcProject(id) {
+      return {
+        expressID: id,
+        type: "IFCPROJECT",
+        children: []
+      };
+    }
+    getSpatialNode(modelID, node, treeChunks, includeProperties) {
+      return __async(this, null, function* () {
+        yield this.getChildren(modelID, node, treeChunks, PropsNames.aggregates, includeProperties);
+        yield this.getChildren(modelID, node, treeChunks, PropsNames.spatial, includeProperties);
+      });
+    }
+    getChildren(modelID, node, treeChunks, propNames, includeProperties) {
+      return __async(this, null, function* () {
+        const children = treeChunks[node.expressID];
+        if (children == void 0)
+          return;
+        const prop = propNames.key;
+        const nodes = [];
+        for (let i = 0; i < children.length; i++) {
+          const child = children[i];
+          let node2 = this.newNode(child, this.api.GetLineType(modelID, child));
+          if (includeProperties) {
+            const properties = yield this.getItemProperties(modelID, node2.expressID);
+            node2 = __spreadValues(__spreadValues({}, properties), node2);
+          }
+          yield this.getSpatialNode(modelID, node2, treeChunks, includeProperties);
+          nodes.push(node2);
+        }
+        node[prop] = nodes;
+      });
+    }
+    newNode(id, type) {
+      return {
+        expressID: id,
+        type: this.api.GetNameFromTypeCode(type),
+        children: []
+      };
+    }
+    getSpatialTreeChunks(modelID) {
+      return __async(this, null, function* () {
+        const treeChunks = {};
+        yield this.getChunks(modelID, treeChunks, PropsNames.aggregates);
+        yield this.getChunks(modelID, treeChunks, PropsNames.spatial);
+        return treeChunks;
+      });
+    }
+    saveChunk(chunks, propNames, rel) {
+      const relating = rel[propNames.relating].value;
+      const related = rel[propNames.related].map((r) => r.value);
+      if (chunks[relating] == void 0) {
+        chunks[relating] = related;
+      } else {
+        chunks[relating] = chunks[relating].concat(related);
+      }
+    }
+    setItemProperties(modelID, elementID, propID, propsName) {
+      return __async(this, null, function* () {
+        if (!Array.isArray(elementID))
+          elementID = [elementID];
+        if (!Array.isArray(propID))
+          propID = [propID];
+        let foundRel = 0;
+        const rels = [];
+        const elements = [];
+        for (const elID of elementID) {
+          const element = yield this.api.GetLine(modelID, elID, false, true);
+          if (!element[propsName.key])
+            continue;
+          elements.push(element);
+        }
+        if (elements.length < 1)
+          return false;
+        const relations = this.api.GetLineIDsWithType(modelID, propsName.name);
+        for (let i = 0; i < relations.size(); ++i) {
+          const rel = yield this.api.GetLine(modelID, relations.get(i));
+          if (propID.includes(Number(rel[propsName.relating].value))) {
+            rels.push(rel);
+            foundRel++;
+          }
+          if (foundRel == propID.length)
+            break;
+        }
+        for (const element of elements) {
+          for (const rel of rels) {
+            if (!element[propsName.key].some((e) => e.value === rel.expressID))
+              element[propsName.key].push({ type: 5, value: rel.expressID });
+            if (!rel[propsName.related].some((e) => e.value === element.expressID)) {
+              rel[propsName.related].push({ type: 5, value: element.expressID });
+              this.api.WriteLine(modelID, rel);
+            }
+          }
+          this.api.WriteLine(modelID, element);
+        }
+        return true;
+      });
+    }
+  };
+  var LogLevel;
+  (function(LogLevel2) {
+    LogLevel2[LogLevel2["LOG_LEVEL_DEBUG"] = 0] = "LOG_LEVEL_DEBUG";
+    LogLevel2[LogLevel2["LOG_LEVEL_INFO"] = 1] = "LOG_LEVEL_INFO";
+    LogLevel2[LogLevel2["LOG_LEVEL_WARN"] = 2] = "LOG_LEVEL_WARN";
+    LogLevel2[LogLevel2["LOG_LEVEL_ERROR"] = 3] = "LOG_LEVEL_ERROR";
+    LogLevel2[LogLevel2["LOG_LEVEL_OFF"] = 4] = "LOG_LEVEL_OFF";
+  })(LogLevel || (LogLevel = {}));
+  var Log = class {
+    static setLogLevel(level) {
+      this.logLevel = level;
+    }
+    static log(msg, ...args) {
+      if (this.logLevel <= 3) {
+        console.log(msg, ...args);
+      }
+    }
+    static debug(msg, ...args) {
+      if (this.logLevel <= 0) {
+        console.trace("DEBUG: ", msg, ...args);
+      }
+    }
+    static info(msg, ...args) {
+      if (this.logLevel <= 1) {
+        console.info("INFO: ", msg, ...args);
+      }
+    }
+    static warn(msg, ...args) {
+      if (this.logLevel <= 2) {
+        console.warn("WARN: ", msg, ...args);
+      }
+    }
+    static error(msg, ...args) {
+      if (this.logLevel <= 3) {
+        console.error("ERROR: ", msg, ...args);
+      }
+    }
+  };
+  Log.logLevel = 1;
+  if (false)
+    __WASM_PATH__ = "./web-ifc";
+  var WebIFCWasm;
+  if (typeof self !== "undefined" && self.crossOriginIsolated) {
+    try {
+      WebIFCWasm = require_web_ifc_mt();
+    } catch (ex) {
+      WebIFCWasm = require_web_ifc();
+    }
+  } else
+    WebIFCWasm = require_web_ifc();
+  var UNKNOWN = 0;
+  var STRING = 1;
+  var LABEL = 2;
+  var ENUM = 3;
+  var REAL = 4;
+  var REF = 5;
+  var EMPTY = 6;
+  var SET_BEGIN = 7;
+  var SET_END = 8;
+  var LINE_END = 9;
+  var INTEGER = 10;
+  function ms() {
+    return (/* @__PURE__ */ new Date()).getTime();
+  }
+  var IfcAPI2 = class {
+    constructor() {
+      this.wasmModule = void 0;
+      this.wasmPath = "";
+      this.isWasmPathAbsolute = false;
+      this.modelSchemaList = [];
+      this.modelSchemaNameList = [];
+      this.ifcGuidMap = /* @__PURE__ */ new Map();
+      this.deletedLines = /* @__PURE__ */ new Map();
+      this.properties = new Properties(this);
+    }
+    Init(customLocateFileHandler) {
+      return __async(this, null, function* () {
+        if (WebIFCWasm) {
+          let locateFileHandler = (path, prefix) => {
+            if (path.endsWith(".wasm")) {
+              if (this.isWasmPathAbsolute) {
+                return this.wasmPath + path;
+              }
+              return prefix + this.wasmPath + path;
+            }
+            return prefix + path;
+          };
+          this.wasmModule = yield WebIFCWasm({ noInitialRun: true, locateFile: customLocateFileHandler || locateFileHandler });
+        } else {
+          Log.error(`Could not find wasm module at './web-ifc' from web-ifc-api.ts`);
+        }
+      });
+    }
+    OpenModels(dataSets, settings) {
+      let s = __spreadValues({
+        MEMORY_LIMIT: 2147483648
+      }, settings);
+      s.MEMORY_LIMIT = s.MEMORY_LIMIT / dataSets.length;
+      let modelIDs = [];
+      for (let dataSet of dataSets)
+        modelIDs.push(this.OpenModel(dataSet, s));
+      return modelIDs;
+    }
+    CreateSettings(settings) {
+      let s = __spreadValues({
+        OPTIMIZE_PROFILES: false,
+        COORDINATE_TO_ORIGIN: false,
+        CIRCLE_SEGMENTS: 12,
+        TAPE_SIZE: 67108864,
+        MEMORY_LIMIT: 2147483648
+      }, settings);
+      let deprecated = ["USE_FAST_BOOLS", "CIRCLE_SEGMENTS_LOW", "CIRCLE_SEGMENTS_MEDIUM", "CIRCLE_SEGMENTS_HIGH"];
+      for (let d in deprecated) {
+        if (d in s) {
+          Log.info("Use of deprecated settings " + d + " detected");
+        }
+      }
+      return s;
+    }
+    LookupSchemaId(schemaName) {
+      for (var i = 0; i < SchemaNames.length; i++) {
+        if (typeof SchemaNames[i] !== "undefined") {
+          for (var j = 0; j < SchemaNames[i].length; j++) {
+            if (SchemaNames[i][j] == schemaName)
+              return i;
+          }
+        }
+      }
+      return -1;
+    }
+    OpenModel(data, settings) {
+      let s = this.CreateSettings(settings);
+      let result = this.wasmModule.OpenModel(s, (destPtr, offsetInSrc, destSize) => {
+        let srcSize = Math.min(data.byteLength - offsetInSrc, destSize);
+        let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize);
+        let src = data.subarray(offsetInSrc, offsetInSrc + srcSize);
+        dest.set(src);
+        return srcSize;
+      });
+      this.deletedLines.set(result, /* @__PURE__ */ new Set());
+      var schemaName = this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value;
+      this.modelSchemaList[result] = this.LookupSchemaId(schemaName);
+      this.modelSchemaNameList[result] = schemaName;
+      if (this.modelSchemaList[result] == -1) {
+        Log.error("Unsupported Schema:" + schemaName);
+        this.CloseModel(result);
+        return -1;
+      }
+      Log.info("Parsing Model using " + schemaName + " Schema");
+      return result;
+    }
+    OpenModelFromCallback(callback, settings) {
+      let s = this.CreateSettings(settings);
+      let result = this.wasmModule.OpenModel(s, (destPtr, offsetInSrc, destSize) => {
+        let data = callback(offsetInSrc, destSize);
+        let srcSize = Math.min(data.byteLength, destSize);
+        let dest = this.wasmModule.HEAPU8.subarray(destPtr, destPtr + srcSize);
+        dest.set(data);
+        return srcSize;
+      });
+      this.deletedLines.set(result, /* @__PURE__ */ new Set());
+      var schemaName = this.GetHeaderLine(result, FILE_SCHEMA).arguments[0][0].value;
+      this.modelSchemaList[result] = this.LookupSchemaId(schemaName);
+      this.modelSchemaNameList[result] = schemaName;
+      if (this.modelSchemaList[result] == -1) {
+        Log.error("Unsupported Schema:" + schemaName);
+        this.CloseModel(result);
+        return -1;
+      }
+      Log.info("Parsing Model using " + schemaName + " Schema");
+      return result;
+    }
+    GetModelSchema(modelID) {
+      return this.modelSchemaNameList[modelID];
+    }
+    CreateModel(model, settings) {
+      var _a, _b, _c;
+      let s = this.CreateSettings(settings);
+      let result = this.wasmModule.CreateModel(s);
+      this.modelSchemaList[result] = this.LookupSchemaId(model.schema);
+      this.modelSchemaNameList[result] = model.schema;
+      if (this.modelSchemaList[result] == -1) {
+        Log.error("Unsupported Schema:" + model.schema);
+        this.CloseModel(result);
+        return -1;
+      }
+      this.deletedLines.set(result, /* @__PURE__ */ new Set());
+      const modelName = model.name || "web-ifc-model-" + result + ".ifc";
+      const timestamp = (/* @__PURE__ */ new Date()).toISOString().slice(0, 19);
+      const description = ((_a = model.description) == null ? void 0 : _a.map((d) => ({ type: STRING, value: d }))) || [{ type: STRING, value: "ViewDefinition [CoordinationView]" }];
+      const authors = ((_b = model.authors) == null ? void 0 : _b.map((a) => ({ type: STRING, value: a }))) || [null];
+      const orgs = ((_c = model.organizations) == null ? void 0 : _c.map((o) => ({ type: STRING, value: o }))) || [null];
+      const auth = model.authorization ? { type: STRING, value: model.authorization } : null;
+      this.wasmModule.WriteHeaderLine(result, FILE_DESCRIPTION, [
+        description,
+        { type: STRING, value: "2;1" }
+      ]);
+      this.wasmModule.WriteHeaderLine(result, FILE_NAME, [
+        { type: STRING, value: modelName },
+        { type: STRING, value: timestamp },
+        authors,
+        orgs,
+        { type: STRING, value: "ifcjs/web-ifc-api" },
+        { type: STRING, value: "ifcjs/web-ifc-api" },
+        auth
+      ]);
+      this.wasmModule.WriteHeaderLine(result, FILE_SCHEMA, [[{ type: STRING, value: model.schema }]]);
+      return result;
+    }
+    SaveModel(modelID) {
+      let dataBuffer = new Uint8Array(0);
+      this.wasmModule.SaveModel(modelID, (srcPtr, srcSize) => {
+        let src = this.wasmModule.HEAPU8.subarray(srcPtr, srcPtr + srcSize);
+        dataBuffer = new Uint8Array(srcSize);
+        dataBuffer.set(src, 0);
+      });
+      return dataBuffer;
+    }
+    ExportFileAsIFC(modelID) {
+      Log.warn("ExportFileAsIFC is deprecated, use SaveModel instead");
+      return this.SaveModel(modelID);
+    }
+    GetGeometry(modelID, geometryExpressID) {
+      return this.wasmModule.GetGeometry(modelID, geometryExpressID);
+    }
+    GetHeaderLine(modelID, headerType) {
+      return this.wasmModule.GetHeaderLine(modelID, headerType);
+    }
+    GetAllTypesOfModel(modelID) {
+      let typesNames = [];
+      const elements = Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((e) => parseInt(e));
+      for (let i = 0; i < elements.length; i++) {
+        const lines = this.GetLineIDsWithType(modelID, elements[i]);
+        if (lines.size() > 0)
+          typesNames.push({ typeID: elements[i], typeName: this.wasmModule.GetNameFromTypeCode(elements[i]) });
+      }
+      return typesNames;
+    }
+    GetLine(modelID, expressID, flatten = false, inverse = false, inversePropKey = null) {
+      let expressCheck = this.wasmModule.ValidateExpressID(modelID, expressID);
+      if (!expressCheck) {
+        return;
+      }
+      let rawLineData = this.GetRawLineData(modelID, expressID);
+      let lineData;
+      try {
+        lineData = FromRawLineData[this.modelSchemaList[modelID]][rawLineData.type](rawLineData.arguments);
+        lineData.expressID = rawLineData.ID;
+      } catch (e) {
+        Log.error("Invalid IFC Line:" + expressID);
+        if (rawLineData.ID) {
+          throw e;
+        } else {
+          return;
+        }
+      }
+      if (flatten) {
+        this.FlattenLine(modelID, lineData);
+      }
+      let inverseData = InversePropertyDef[this.modelSchemaList[modelID]][rawLineData.type];
+      if (inverse && inverseData != null) {
+        for (let inverseProp of inverseData) {
+          if (inversePropKey && inverseProp[0] !== inversePropKey)
+            continue;
+          if (!inverseProp[3])
+            lineData[inverseProp[0]] = null;
+          else
+            lineData[inverseProp[0]] = [];
+          let targetTypes = [inverseProp[1]];
+          if (typeof InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]] != "undefined") {
+            targetTypes = targetTypes.concat(InheritanceDef[this.modelSchemaList[modelID]][inverseProp[1]]);
+          }
+          let inverseIDs = this.wasmModule.GetInversePropertyForItem(modelID, expressID, targetTypes, inverseProp[2], inverseProp[3]);
+          if (!inverseProp[3] && inverseIDs.size() > 0) {
+            if (!flatten)
+              lineData[inverseProp[0]] = { type: 5, value: inverseIDs.get(0) };
+            else
+              lineData[inverseProp[0]] = this.GetLine(modelID, inverseIDs.get(0));
+          } else {
+            for (let x = 0; x < inverseIDs.size(); x++) {
+              if (!flatten)
+                lineData[inverseProp[0]].push({ type: 5, value: inverseIDs.get(x) });
+              else
+                lineData[inverseProp[0]].push(this.GetLine(modelID, inverseIDs.get(x)));
+            }
+          }
+        }
+      }
+      return lineData;
+    }
+    GetNextExpressID(modelID, expressID) {
+      return this.wasmModule.GetNextExpressID(modelID, expressID);
+    }
+    GetAndClearErrors(modelID) {
+      return this.wasmModule.GetAndClearErrors(modelID);
+    }
+    CreateIfcEntity(modelID, type, ...args) {
+      return Constructors[this.modelSchemaList[modelID]][type](args);
+    }
+    CreateIfcType(modelID, type, value) {
+      return TypeInitialisers[this.modelSchemaList[modelID]][type](value);
+    }
+    GetNameFromTypeCode(type) {
+      return this.wasmModule.GetNameFromTypeCode(type);
+    }
+    GetTypeCodeFromName(typeName) {
+      return this.wasmModule.GetTypeCodeFromName(typeName);
+    }
+    IsIfcElement(type) {
+      return this.wasmModule.IsIfcElement(type);
+    }
+    GetIfcEntityList(modelID) {
+      return Object.keys(FromRawLineData[this.modelSchemaList[modelID]]).map((x) => parseInt(x));
+    }
+    DeleteLine(modelID, expressID) {
+      this.wasmModule.RemoveLine(modelID, expressID);
+      this.deletedLines.get(modelID).add(expressID);
+    }
+    WriteLines(modelID, lineObjects) {
+      this.wasmModule.ExtendLineStorage(modelID, lineObjects.length);
+      for (let lineObject of lineObjects)
+        this.WriteLine(modelID, lineObject);
+    }
+    WriteLine(modelID, lineObject) {
+      if (lineObject.expressID != -1 && this.deletedLines.get(modelID).has(lineObject.expressID)) {
+        Log.error(`Cannot re-use deleted express ID`);
+        return;
+      }
+      if (lineObject.expressID != -1 && this.GetLineType(modelID, lineObject.expressID) != lineObject.type && this.GetLineType(modelID, lineObject.expressID) != 0) {
+        Log.error(`Cannot change type of existing IFC Line`);
+        return;
+      }
+      let property;
+      for (property in lineObject) {
+        const lineProperty = lineObject[property];
+        if (lineProperty && lineProperty.expressID !== void 0) {
+          this.WriteLine(modelID, lineProperty);
+          lineObject[property] = new Handle(lineProperty.expressID);
+        } else if (Array.isArray(lineProperty) && lineProperty.length > 0) {
+          for (let i = 0; i < lineProperty.length; i++) {
+            if (lineProperty[i].expressID !== void 0) {
+              this.WriteLine(modelID, lineProperty[i]);
+              lineObject[property][i] = new Handle(lineProperty[i].expressID);
+            }
+          }
+        }
+      }
+      if (lineObject.expressID === void 0 || lineObject.expressID < 0) {
+        lineObject.expressID = this.GetMaxExpressID(modelID) + 1;
+      }
+      let rawLineData = {
+        ID: lineObject.expressID,
+        type: lineObject.type,
+        arguments: ToRawLineData[this.modelSchemaList[modelID]][lineObject.type](lineObject)
+      };
+      this.WriteRawLineData(modelID, rawLineData);
+    }
+    FlattenLine(modelID, line) {
+      Object.keys(line).forEach((propertyName) => {
+        let property = line[propertyName];
+        if (property && property.type === 5) {
+          if (property.value)
+            line[propertyName] = this.GetLine(modelID, property.value, true);
+        } else if (Array.isArray(property) && property.length > 0 && property[0].type === 5) {
+          for (let i = 0; i < property.length; i++) {
+            if (property[i].value)
+              line[propertyName][i] = this.GetLine(modelID, property[i].value, true);
+          }
+        }
+      });
+    }
+    GetRawLineData(modelID, expressID) {
+      return this.wasmModule.GetLine(modelID, expressID);
+    }
+    WriteRawLineData(modelID, data) {
+      this.wasmModule.WriteLine(modelID, data.ID, data.type, data.arguments);
+    }
+    GetLineIDsWithType(modelID, type, includeInherited = false) {
+      let types = [];
+      types.push(type);
+      if (includeInherited && typeof InheritanceDef[this.modelSchemaList[modelID]][type] != "undefined") {
+        types = types.concat(InheritanceDef[this.modelSchemaList[modelID]][type]);
+      }
+      return this.wasmModule.GetLineIDsWithType(modelID, types);
+    }
+    GetAllLines(modelID) {
+      return this.wasmModule.GetAllLines(modelID);
+    }
+    GetAllCrossSections2D(modelID) {
+      const crossSections = this.wasmModule.GetAllCrossSections2D(modelID);
+      const crossSectionList = [];
+      for (let i = 0; i < crossSections.size(); i++) {
+        const alignment = crossSections.get(i);
+        const curveList = [];
+        const expressList = [];
+        for (let j = 0; j < alignment.curves.size(); j++) {
+          const curve = alignment.curves.get(j);
+          const ptList = [];
+          for (let p = 0; p < curve.points.size(); p++) {
+            const pt = curve.points.get(p);
+            const newPoint = { x: pt.x, y: pt.y, z: pt.z };
+            ptList.push(newPoint);
+          }
+          const newCurve = { points: ptList };
+          curveList.push(newCurve);
+          expressList.push(alignment.expressID.get(j));
+        }
+        const align = { origin, curves: curveList, expressID: expressList };
+        crossSectionList.push(align);
+      }
+      return crossSectionList;
+    }
+    GetAllCrossSections3D(modelID) {
+      const crossSections = this.wasmModule.GetAllCrossSections3D(modelID);
+      const crossSectionList = [];
+      for (let i = 0; i < crossSections.size(); i++) {
+        const alignment = crossSections.get(i);
+        const curveList = [];
+        const expressList = [];
+        for (let j = 0; j < alignment.curves.size(); j++) {
+          const curve = alignment.curves.get(j);
+          const ptList = [];
+          for (let p = 0; p < curve.points.size(); p++) {
+            const pt = curve.points.get(p);
+            const newPoint = { x: pt.x, y: pt.y, z: pt.z };
+            ptList.push(newPoint);
+          }
+          const newCurve = { points: ptList };
+          curveList.push(newCurve);
+          expressList.push(alignment.expressID.get(j));
+        }
+        const align = { origin, curves: curveList, expressID: expressList };
+        crossSectionList.push(align);
+      }
+      return crossSectionList;
+    }
+    GetAllAlignments(modelID) {
+      const alignments = this.wasmModule.GetAllAlignments(modelID);
+      const alignmentList = [];
+      for (let i = 0; i < alignments.size(); i++) {
+        const alignment = alignments.get(i);
+        const horList = [];
+        for (let j = 0; j < alignment.Horizontal.curves.size(); j++) {
+          const curve = alignment.Horizontal.curves.get(j);
+          const ptList = [];
+          for (let p = 0; p < curve.points.size(); p++) {
+            const pt = curve.points.get(p);
+            const newPoint = { x: pt.x, y: pt.y };
+            ptList.push(newPoint);
+          }
+          const newCurve = { points: ptList };
+          horList.push(newCurve);
+        }
+        const verList = [];
+        for (let j = 0; j < alignment.Vertical.curves.size(); j++) {
+          const curve = alignment.Vertical.curves.get(j);
+          const ptList = [];
+          for (let p = 0; p < curve.points.size(); p++) {
+            const pt = curve.points.get(p);
+            const newPoint = { x: pt.x, y: pt.y };
+            ptList.push(newPoint);
+          }
+          const newCurve = { points: ptList };
+          verList.push(newCurve);
+        }
+        const align = { origin, horizontal: horList, vertical: verList };
+        alignmentList.push(align);
+      }
+      return alignmentList;
+    }
+    SetGeometryTransformation(modelID, transformationMatrix) {
+      if (transformationMatrix.length != 16) {
+        throw new Error(`invalid matrix size: ${transformationMatrix.length}`);
+      }
+      this.wasmModule.SetGeometryTransformation(modelID, transformationMatrix);
+    }
+    GetCoordinationMatrix(modelID) {
+      return this.wasmModule.GetCoordinationMatrix(modelID);
+    }
+    GetVertexArray(ptr, size) {
+      return this.getSubArray(this.wasmModule.HEAPF32, ptr, size);
+    }
+    GetIndexArray(ptr, size) {
+      return this.getSubArray(this.wasmModule.HEAPU32, ptr, size);
+    }
+    getSubArray(heap, startPtr, sizeBytes) {
+      return heap.subarray(startPtr / 4, startPtr / 4 + sizeBytes).slice(0);
+    }
+    CloseModel(modelID) {
+      this.ifcGuidMap.delete(modelID);
+      this.wasmModule.CloseModel(modelID);
+    }
+    StreamMeshes(modelID, expressIDs, meshCallback) {
+      this.wasmModule.StreamMeshes(modelID, expressIDs, meshCallback);
+    }
+    StreamAllMeshes(modelID, meshCallback) {
+      this.wasmModule.StreamAllMeshes(modelID, meshCallback);
+    }
+    StreamAllMeshesWithTypes(modelID, types, meshCallback) {
+      this.wasmModule.StreamAllMeshesWithTypes(modelID, types, meshCallback);
+    }
+    IsModelOpen(modelID) {
+      return this.wasmModule.IsModelOpen(modelID);
+    }
+    LoadAllGeometry(modelID) {
+      return this.wasmModule.LoadAllGeometry(modelID);
+    }
+    GetFlatMesh(modelID, expressID) {
+      return this.wasmModule.GetFlatMesh(modelID, expressID);
+    }
+    GetMaxExpressID(modelID) {
+      return this.wasmModule.GetMaxExpressID(modelID);
+    }
+    IncrementMaxExpressID(modelID, incrementSize) {
+      Log.warn("IncrementMaxExpressID is deprecated, use GetNextExpressID or GetMaxExpressID instead");
+      return this.wasmModule.GetMaxExpressID(modelID) + incrementSize;
+    }
+    GetLineType(modelID, expressID) {
+      return this.wasmModule.GetLineType(modelID, expressID);
+    }
+    GetVersion() {
+      return this.wasmModule.GetVersion();
+    }
+    GetExpressIdFromGuid(modelID, guid) {
+      var _a;
+      if (!this.ifcGuidMap.has(modelID))
+        this.CreateIfcGuidToExpressIdMapping(modelID);
+      return (_a = this.ifcGuidMap.get(modelID)) == null ? void 0 : _a.get(guid);
+    }
+    GetGuidFromExpressId(modelID, expressID) {
+      var _a;
+      if (!this.ifcGuidMap.has(modelID))
+        this.CreateIfcGuidToExpressIdMapping(modelID);
+      return (_a = this.ifcGuidMap.get(modelID)) == null ? void 0 : _a.get(expressID);
+    }
+    CreateIfcGuidToExpressIdMapping(modelID) {
+      const map = /* @__PURE__ */ new Map();
+      let entities = this.GetIfcEntityList(modelID);
+      for (const typeId of entities) {
+        if (!this.IsIfcElement(typeId))
+          continue;
+        const lines = this.GetLineIDsWithType(modelID, typeId);
+        const size = lines.size();
+        for (let y = 0; y < size; y++) {
+          const expressID = lines.get(y);
+          const info = this.GetLine(modelID, expressID);
+          try {
+            if ("GlobalId" in info) {
+              const globalID = info.GlobalId.value;
+              map.set(expressID, globalID);
+              map.set(globalID, expressID);
+            }
+          } catch (e) {
+            continue;
+          }
+        }
+      }
+      this.ifcGuidMap.set(modelID, map);
+    }
+    SetWasmPath(path, absolute = false) {
+      this.wasmPath = path;
+      this.isWasmPathAbsolute = absolute;
+    }
+    SetLogLevel(level) {
+      Log.setLogLevel(level);
+      this.wasmModule.SetLogLevel(level);
+    }
+  };
+  return __toCommonJS(web_ifc_api_exports);
+})();
diff --git a/previewers/betatest/lib/o3dv/libs/web-ifc.license.md b/previewers/betatest/lib/o3dv/libs/web-ifc.license.md
new file mode 100644
index 0000000..b9c5fc6
--- /dev/null
+++ b/previewers/betatest/lib/o3dv/libs/web-ifc.license.md
@@ -0,0 +1,375 @@
+Mozilla Public License Version 2.0
+==================================
+
+Copyright (c) 2020-2021 web-ifc contributors
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
\ No newline at end of file
diff --git a/previewers/betatest/lib/o3dv/libs/web-ifc.wasm b/previewers/betatest/lib/o3dv/libs/web-ifc.wasm
new file mode 100644
index 0000000..d848dc2
Binary files /dev/null and b/previewers/betatest/lib/o3dv/libs/web-ifc.wasm differ
diff --git a/previewers/betatest/lib/o3dv/o3dv.license.md b/previewers/betatest/lib/o3dv/o3dv.license.md
new file mode 100644
index 0000000..db6eb61
--- /dev/null
+++ b/previewers/betatest/lib/o3dv/o3dv.license.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Viktor Kovacs
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/previewers/betatest/lib/o3dv/o3dv.min.js b/previewers/betatest/lib/o3dv/o3dv.min.js
new file mode 100644
index 0000000..2d7bb28
--- /dev/null
+++ b/previewers/betatest/lib/o3dv/o3dv.min.js
@@ -0,0 +1,3958 @@
+var OV=(()=>{var Jh=Object.defineProperty;var Nv=Object.getOwnPropertyDescriptor;var Lv=Object.getOwnPropertyNames;var Ov=Object.prototype.hasOwnProperty;var Dv=(r,e)=>{for(var t in e)Jh(r,t,{get:e[t],enumerable:!0})},Fv=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Lv(e))!Ov.call(r,i)&&i!==t&&Jh(r,i,{get:()=>e[i],enumerable:!(n=Nv(e,i))||n.enumerable});return r};var Uv=r=>Fv(Jh({},"__esModule",{value:!0}),r);var nA={};Dv(nA,{AddCoord2D:()=>jp,AddCoord3D:()=>Vc,AddDiv:()=>vv,AddDomElement:()=>Pp,ArrayBufferToAsciiString:()=>im,ArrayBufferToUtf8String:()=>xn,ArrayToCoord3D:()=>Ei,ArrayToQuaternion:()=>Eo,ArrayToRGBColor:()=>Zp,AsciiStringToArrayBuffer:()=>rm,Base64DataURIToArrayBuffer:()=>Ls,BezierTweenFunction:()=>cm,BigEps:()=>Hp,BinaryReader:()=>Qn,BinaryWriter:()=>Gi,BoundingBoxCalculator3D:()=>Io,Box3D:()=>Fs,CalculateSurfaceArea:()=>pv,CalculateTriangleNormal:()=>Ds,CalculateVolume:()=>wp,Camera:()=>br,CameraIsEqual3D:()=>kh,CameraValidator:()=>xc,CheckModel:()=>I0,ClearDomElement:()=>yv,ClickDetector:()=>yc,ColorComponentFromFloat:()=>Rn,ColorComponentToFloat:()=>Ps,ColorToMaterialConverter:()=>ri,ConvertColorToThreeColor:()=>wn,ConvertMeshToMeshBuffer:()=>xo,ConvertModelToThreeObject:()=>Bh,ConvertThreeColorToColor:()=>$l,ConvertThreeGeometryToMesh:()=>Zi,Coord2D:()=>At,Coord3D:()=>Xe,Coord4D:()=>Vi,CoordDistance2D:()=>Is,CoordDistance3D:()=>Yn,CoordIsEqual2D:()=>Fi,CoordIsEqual3D:()=>pi,CopyObjectAttributes:()=>co,CreateDiv:()=>wv,CreateDomElement:()=>Hh,CreateHighlightMaterial:()=>Ud,CreateHighlightMaterials:()=>gh,CreateModelUrlParameters:()=>gv,CreateObjectUrl:()=>Os,CreateObjectUrlWithMimeType:()=>Hc,CreateOcctWorker:()=>vo,CreateUrlBuilder:()=>Ip,CreateUrlParser:()=>mv,CrossVector3D:()=>Bi,DegRad:()=>ar,Direction:()=>pt,DisposeThreeObjects:()=>vh,DotVector2D:()=>fl,DotVector3D:()=>gl,EdgeSettings:()=>ro,EmbeddedViewer:()=>ol,EnvironmentSettings:()=>so,Eps:()=>zp,EscapeHtmlChars:()=>Cc,EventNotifier:()=>Rc,ExportedFile:()=>$t,Exporter:()=>Kc,Exporter3dm:()=>To,ExporterBase:()=>Pn,ExporterBim:()=>Mo,ExporterGltf:()=>bo,ExporterModel:()=>So,ExporterObj:()=>Ao,ExporterOff:()=>wo,ExporterPly:()=>Co,ExporterSettings:()=>Tl,ExporterStl:()=>Ro,FLoc:()=>uo,FaceMaterial:()=>go,FileFormat:()=>an,FileSource:()=>ki,FinalizeModel:()=>xh,FlipMeshTrianglesOrientation:()=>Yc,FormatString:()=>wc,GenerateCone:()=>bp,GenerateCuboid:()=>uv,GenerateCylinder:()=>hv,GeneratePlatonicSolid:()=>dv,GenerateSphere:()=>fv,Generator:()=>Ss,GeneratorHelper:()=>Ja,GeneratorParams:()=>uc,GetBoundingBox:()=>nf,GetDefaultCamera:()=>Wh,GetDefaultMaterials:()=>hm,GetDomElementClientCoordinates:()=>Yr,GetDomElementExternalHeight:()=>Vh,GetDomElementExternalWidth:()=>Gh,GetDomElementInnerDimensions:()=>zh,GetDomElementOuterHeight:()=>bv,GetDomElementOuterWidth:()=>Ev,GetExternalLibPath:()=>$h,GetFileExtension:()=>cr,GetFileExtensionFromMimeType:()=>es,GetFileName:()=>En,GetIntegerFromStyle:()=>Fn,GetLineSegmentsProjectedDistance:()=>yh,GetShadingType:()=>mh,GetShadingTypeOfObject:()=>Op,GetTetrahedronSignedVolume:()=>Ap,GetTopology:()=>rf,GetTriangleArea:()=>Sp,HasHighpDriverIssue:()=>ph,HexStringToRGBAColor:()=>Kp,HexStringToRGBColor:()=>Yp,ImportError:()=>bs,ImportErrorCode:()=>Er,ImportResult:()=>ac,ImportSettings:()=>Ka,Importer:()=>Za,Importer3dm:()=>Ra,Importer3ds:()=>Ia,ImporterBase:()=>Ht,ImporterBim:()=>ka,ImporterFcstd:()=>Ya,ImporterFile:()=>Us,ImporterFileAccessor:()=>lc,ImporterFileList:()=>ks,ImporterGltf:()=>Pa,ImporterIfc:()=>Na,ImporterObj:()=>La,ImporterOcct:()=>Fa,ImporterOff:()=>Oa,ImporterPly:()=>Da,ImporterStl:()=>Ua,ImporterThree3mf:()=>Xa,ImporterThreeAmf:()=>ja,ImporterThreeBase:()=>tr,ImporterThreeDae:()=>Ha,ImporterThreeFbx:()=>za,ImporterThreeSvg:()=>Uh,ImporterThreeWrl:()=>Wa,Init3DViewerElements:()=>Rv,Init3DViewerFromFileList:()=>Cv,Init3DViewerFromUrlList:()=>Dp,InputFile:()=>Oo,InputFilesFromFileObjects:()=>Qc,InputFilesFromUrls:()=>$c,InsertDomElementAfter:()=>_v,InsertDomElementBefore:()=>xv,IntegerToHexString:()=>Mn,IntersectionMode:()=>Cp,IsDefined:()=>lo,IsDomElementVisible:()=>Mv,IsEmptyMesh:()=>ts,IsEqual:()=>It,IsEqualEps:()=>Xp,IsGreater:()=>Oc,IsGreaterOrEqual:()=>mo,IsLower:()=>fo,IsLowerOrEqual:()=>po,IsModelEmpty:()=>Fo,IsNegative:()=>wr,IsObjectEmpty:()=>Ac,IsPositive:()=>Ti,IsPowerOfTwo:()=>Qh,IsTwoManifold:()=>sf,IsUrl:()=>nm,IsZero:()=>Ar,Line:()=>Xr,LinearToSRGB:()=>Ns,LinearTweenFunction:()=>um,LoadExternalLibrary:()=>Qr,LoadExternalLibraryFromLibs:()=>Fc,LoadExternalLibraryFromUrl:()=>ml,Loc:()=>Ze,MaterialBase:()=>dl,MaterialGeometryType:()=>Cs,MaterialSource:()=>yn,MaterialType:()=>Un,Matrix:()=>fn,MatrixIsEqual:()=>qc,Mesh:()=>Kt,MeshBuffer:()=>yl,MeshInstance:()=>Pr,MeshInstanceId:()=>bi,MeshPrimitiveBuffer:()=>vl,Model:()=>fr,ModelObject3D:()=>hr,ModelToThreeConversionOutput:()=>el,ModelToThreeConversionParams:()=>Qa,MouseInteraction:()=>gc,NameFromLine:()=>Ir,Navigation:()=>il,NavigationMode:()=>As,NavigationType:()=>ti,NextPowerOfTwo:()=>tm,Node:()=>Nn,Object3D:()=>xl,Octree:()=>No,OctreeNode:()=>Ml,ParabolicTweenFunction:()=>Jc,ParameterConverter:()=>Jt,ParameterListBuilder:()=>hc,ParameterListParser:()=>fc,ParametersFromLine:()=>Ui,PhongMaterial:()=>vn,PhysicalMaterial:()=>$r,ProjectPointToSegment2D:()=>ef,ProjectionMode:()=>Xn,Property:()=>nn,PropertyGroup:()=>Vn,PropertyToString:()=>Xc,PropertyType:()=>Vt,Quaternion:()=>Kn,QuaternionFromAxisAngle:()=>jc,QuaternionFromXYZ:()=>om,QuaternionIsEqual:()=>sm,RGBAColor:()=>Cr,RGBAColorToHexString:()=>qp,RGBColor:()=>Mt,RGBColorFromFloatComponents:()=>di,RGBColorIsEqual:()=>Rr,RGBColorToHexString:()=>Dc,RadDeg:()=>Wp,ReadFile:()=>Bc,ReadLines:()=>Mi,ReplaceDefaultMaterialsColor:()=>fm,RequestUrl:()=>kc,RevokeObjectUrl:()=>Wc,RunTaskAsync:()=>hl,RunTasks:()=>Pc,RunTasksBatch:()=>Nc,SRGBToLinear:()=>lr,Segment2D:()=>Po,SegmentPointDistance2D:()=>Zc,SetDomElementHeight:()=>Lp,SetDomElementOuterHeight:()=>Av,SetDomElementOuterWidth:()=>Sv,SetDomElementWidth:()=>Np,SetExternalLibLocation:()=>em,SetLanguageCode:()=>Vp,SetLocalizedStrings:()=>Gp,SetThreeMeshPolygonOffset:()=>Rp,ShadingModel:()=>rl,ShadingType:()=>ci,ShowDomElement:()=>Tv,SubCoord2D:()=>Zr,SubCoord3D:()=>In,TaskRunner:()=>ho,TextWriter:()=>oi,TextureIsEqual:()=>Jp,TextureMap:()=>ii,TextureMapIsEqual:()=>Jr,ThreeColorConverter:()=>wa,ThreeConversionStateHandler:()=>dc,ThreeLinearToSRGBColorConverter:()=>to,ThreeMaterialHandler:()=>mc,ThreeMeshMaterialHandler:()=>tl,ThreeModelLoader:()=>nl,ThreeNodeTree:()=>pc,ThreeSRGBToLinearColorConverter:()=>Ca,Topology:()=>Do,TopologyEdge:()=>bl,TopologyTriangle:()=>Al,TopologyTriangleEdge:()=>Sl,TopologyVertex:()=>El,TouchInteraction:()=>vc,TransformFileHostUrls:()=>Gc,TransformMesh:()=>ur,Transformation:()=>ln,TransformationIsEqual:()=>am,TraverseThreeObject:()=>Xh,Triangle:()=>Xt,TweenCoord3D:()=>Lo,Unit:()=>ns,UpVector:()=>_c,UpdateMaterialTransparency:()=>si,Utf8StringToArrayBuffer:()=>_o,ValueOrDefault:()=>Bp,VectorAngle3D:()=>zc,VectorLength3D:()=>yo,Viewer:()=>sl,ViewerMainModel:()=>$a,ViewerModel:()=>ws,WaitWhile:()=>Lc});function lo(r){return r!=null}function Bp(r,e){return r??e}function co(r,e){if(lo(r))for(let t of Object.keys(r))lo(r[t])&&(e[t]=r[t])}function Ac(r){return Object.keys(r).length===0}function wc(r,...e){return r.replace(/{([0-9]+)}/g,(t,n)=>e[n]===void 0?t:e[n])}function Cc(r){return r.replace(//g,">")}var Rc=class{constructor(){this.eventListeners=new Map}AddEventListener(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,[]),this.eventListeners.get(e).push(t)}HasEventListener(e){return this.eventListeners.has(e)}GetEventNotifier(e){return()=>{this.NotifyEventListeners(e)}}NotifyEventListeners(e,...t){if(!this.eventListeners.has(e))return;let n=this.eventListeners.get(e);for(let i of n)i(...t)}};var ul=null,Ic=null;function Gp(r){ul=r}function Vp(r){Ic=r}function Ze(r){return ul===null||Ic===null||!ul[r]||!ul[r][Ic]?r:ul[r][Ic]}function uo(r,...e){return wc(Ze(r),...e)}var ho=class{constructor(){this.count=null,this.current=null,this.callbacks=null}Run(e,t){this.count=e,this.current=0,this.callbacks=t,e===0?this.TaskReady():this.RunOnce()}RunBatch(e,t,n){let i=0;e>0&&(i=parseInt((e-1)/t,10)+1),this.Run(i,{runTask:(s,o)=>{let a=s*t,l=Math.min((s+1)*t,e)-1;n.runTask(a,l,o)},onReady:n.onReady})}RunOnce(){setTimeout(()=>{this.callbacks.runTask(this.current,this.TaskReady.bind(this))},0)}TaskReady(){this.current+=1,this.current{r()},10)}function Pc(r,e){new ho().Run(r,e)}function Nc(r,e,t){new ho().RunBatch(r,e,t)}function Lc(r){function e(t){t()&&setTimeout(()=>{e(t)},10)}e(r)}var zp=1e-8,Hp=1e-4,Wp=57.29577951308232,ar=.017453292519943;function Ar(r){return Math.abs(r)<1e-8}function fo(r,e){return e-r>1e-8}function Oc(r,e){return r-e>1e-8}function po(r,e){return e-r>-1e-8}function mo(r,e){return r-e>-1e-8}function It(r,e){return Math.abs(e-r)<1e-8}function Xp(r,e,t){return Math.abs(e-r)1e-8}function wr(r){return r<-1e-8}var pt={X:1,Y:2,Z:3};var At=class r{constructor(e,t){this.x=e,this.y=t}Clone(){return new r(this.x,this.y)}};function Fi(r,e){return It(r.x,e.x)&&It(r.y,e.y)}function jp(r,e){return new At(r.x+e.x,r.y+e.y)}function Zr(r,e){return new At(r.x-e.x,r.y-e.y)}function Is(r,e){return Math.sqrt((r.x-e.x)*(r.x-e.x)+(r.y-e.y)*(r.y-e.y))}function fl(r,e){return r.x*e.x+r.y*e.y}var Mt=class r{constructor(e,t,n){this.r=e,this.g=t,this.b=n}Set(e,t,n){this.r=e,this.g=t,this.b=n}Clone(){return new r(this.r,this.g,this.b)}},Cr=class r{constructor(e,t,n,i){this.r=e,this.g=t,this.b=n,this.a=i}Set(e,t,n,i){this.r=e,this.g=t,this.b=n,this.a=i}Clone(){return new r(this.r,this.g,this.b,this.a)}};function Rn(r){return parseInt(Math.round(r*255),10)}function Ps(r){return r/255}function di(r,e,t){return new Mt(Rn(r),Rn(e),Rn(t))}function lr(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function Ns(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}function Mn(r){let e=parseInt(r,10).toString(16);for(;e.length<2;)e="0"+e;return e}function Dc(r){let e=Mn(r.r),t=Mn(r.g),n=Mn(r.b);return e+t+n}function qp(r){let e=Mn(r.r),t=Mn(r.g),n=Mn(r.b),i=Mn(r.a);return e+t+n+i}function Yp(r){if(r.length!==6)return null;let e=parseInt(r.substring(0,2),16),t=parseInt(r.substring(2,4),16),n=parseInt(r.substring(4,6),16);return new Mt(e,t,n)}function Kp(r){if(r.length!==6&&r.length!==8)return null;let e=parseInt(r.substring(0,2),16),t=parseInt(r.substring(2,4),16),n=parseInt(r.substring(4,6),16),i=255;return r.length===8&&(i=parseInt(r.substring(6,8),16)),new Cr(e,t,n,i)}function Zp(r){return new Mt(r[0],r[1],r[2])}function Rr(r,e){return r.r===e.r&&r.g===e.g&&r.b===e.b}var ii=class{constructor(){this.name=null,this.mimeType=null,this.buffer=null,this.offset=new At(0,0),this.scale=new At(1,1),this.rotation=0}IsValid(){return this.name!==null&&this.buffer!==null}HasTransformation(){return!Fi(this.offset,new At(0,0))||!Fi(this.scale,new At(1,1))||!It(this.rotation,0)}IsEqual(e){return!(this.name!==e.name||this.mimeType!==e.mimeType||!Fi(this.offset,e.offset)||!Fi(this.scale,e.scale)||!It(this.rotation,e.rotation))}};function Jr(r,e){return r===null&&e===null?!0:r===null||e===null?!1:r.IsEqual(e)}var Un={Phong:1,Physical:2},yn={Model:1,DefaultFace:2,DefaultLine:3},dl=class{constructor(e){this.type=e,this.source=yn.Model,this.name="",this.color=new Mt(0,0,0),this.vertexColors=!1}IsEqual(e){return!(this.type!==e.type||this.source!==e.source||this.name!==e.name||!Rr(this.color,e.color)||this.vertexColors!==e.vertexColors)}},go=class extends dl{constructor(e){super(e),this.emissive=new Mt(0,0,0),this.opacity=1,this.transparent=!1,this.diffuseMap=null,this.bumpMap=null,this.normalMap=null,this.emissiveMap=null,this.alphaTest=0,this.multiplyDiffuseMap=!1}IsEqual(e){return!(!super.IsEqual(e)||!Rr(this.emissive,e.emissive)||!It(this.opacity,e.opacity)||this.transparent!==e.transparent||!Jr(this.diffuseMap,e.diffuseMap)||!Jr(this.bumpMap,e.bumpMap)||!Jr(this.normalMap,e.normalMap)||!Jr(this.emissiveMap,e.emissiveMap)||!It(this.alphaTest,e.alphaTest)||this.multiplyDiffuseMap!==e.multiplyDiffuseMap)}},vn=class extends go{constructor(){super(Un.Phong),this.ambient=new Mt(0,0,0),this.specular=new Mt(0,0,0),this.shininess=0,this.specularMap=null}IsEqual(e){return!(!super.IsEqual(e)||!Rr(this.ambient,e.ambient)||!Rr(this.specular,e.specular)||!It(this.shininess,e.shininess)||!Jr(this.specularMap,e.specularMap))}},$r=class extends go{constructor(){super(Un.Physical),this.metalness=0,this.roughness=1,this.metalnessMap=null}IsEqual(e){return!(!super.IsEqual(e)||!It(this.metalness,e.metalness)||!It(this.roughness,e.roughness)||!Jr(this.metalnessMap,e.metalnessMap))}};function Jp(r,e){return!(r.name!==e.name||r.mimeType!==e.mimeType||!Fi(r.offset,e.offset)||!Fi(r.scale,e.scale)||!It(r.rotation,e.rotation))}var pl=null,$p=new Set,Qp=new Set;function em(r){pl=r}function $h(r){return pl===null?null:pl+"/"+r}function Fc(r){return new Promise((e,t)=>{if(pl===null){t();return}if($p.has(r)){e();return}let n=document.createElement("script");n.type="text/javascript",n.src=$h(r),n.onload=()=>{$p.add(r),e()},n.onerror=()=>{t()},document.head.appendChild(n)})}function ml(r){return new Promise((e,t)=>{if(pl===null){t();return}if(Qp.has(r)){e();return}let n=document.createElement("script");n.type="text/javascript",n.src=r,n.onload=()=>{Qp.add(r),e()},n.onerror=()=>{t()},document.head.appendChild(n)})}function Ir(r,e,t){let n=r.substring(e),i=n.indexOf(t);return i!==-1&&(n=n.substring(0,i)),n.trim()}function Ui(r,e){if(e!==null){let t=r.indexOf(e);t!==-1&&(r=r.substring(0,t).trim())}return r.split(/\s+/u)}function Mi(r,e){function t(s,o){let a=s.trim();a.length>0&&o(a)}let n=0,i=r.indexOf(`
+`,n);for(;i!==-1;)t(r.substring(n,i),e),n=i+1,i=r.indexOf(`
+`,n);t(r.substring(n),e)}function Qh(r){return(r&r-1)===0}function tm(r){if(Qh(r))return r;let e=Math.pow(2,Math.ceil(Math.log(r)/Math.log(2)));return parseInt(e,10)}function si(r){r.transparent=!1,fo(r.opacity,1)&&(r.transparent=!0)}var ri=class{constructor(e){this.model=e,this.colorToMaterialIndex=new Map}GetMaterialIndex(e,t,n,i){let s=Mn(e)+Mn(t)+Mn(n),o=i!=null;if(o&&(s+=Mn(i)),this.colorToMaterialIndex.has(s))return this.colorToMaterialIndex.get(s);{let a=new vn;a.name=s.toUpperCase(),a.color=new Mt(e,t,n),o&&i<255&&(a.opacity=i/255,si(a));let l=this.model.AddMaterial(a);return this.colorToMaterialIndex.set(s,l),l}}},Uc=null;function vo(r){return new Promise((e,t)=>{if(Uc!==null){e(new Worker(Uc));return}let n="https://cdn.jsdelivr.net/npm/occt-import-js@0.0.22/dist/";fetch(n+"occt-import-js-worker.js").then(i=>i.ok?i.text():t()).then(i=>{i=i.replace("occt-import-js.js",n+"occt-import-js.js"),i=i.replace("return path","return '"+n+"occt-import-js.wasm'");let s=new Blob([i],{type:"text/javascript"});return Uc=URL.createObjectURL(s),e(new Worker(Uc))}).catch(t)})}function Qr(r){return r==="rhino3dm"?ml("https://cdn.jsdelivr.net/npm/rhino3dm@8.4.0/rhino3dm.min.js"):r==="draco3d"?ml("https://cdn.jsdelivr.net/npm/draco3d@1.5.7/draco_decoder_nodejs.min.js"):null}var ki={Url:1,File:2,Decompressed:3},an={Text:1,Binary:2};function En(r){let e=r,t=e.indexOf("?");t!==-1&&(e=e.substring(0,t));let n=e.lastIndexOf("/");return n===-1&&(n=e.lastIndexOf("\\")),n!==-1&&(e=e.substring(n+1)),decodeURI(e)}function cr(r){let e=En(r),t=e.lastIndexOf(".");return t===-1?"":e.substring(t+1).toLowerCase()}function kc(r,e){return new Promise((t,n)=>{let i=new XMLHttpRequest;i.open("GET",r,!0),i.onprogress=s=>{e(s.loaded,s.total)},i.onload=()=>{i.status===200?t(i.response):n()},i.onerror=()=>{n()},i.responseType="arraybuffer",i.send(null)})}function Bc(r,e){return new Promise((t,n)=>{let i=new FileReader;i.onprogress=s=>{e(s.loaded,s.total)},i.onloadend=s=>{s.target.readyState===FileReader.DONE&&t(s.target.result)},i.onerror=()=>{n()},i.readAsArrayBuffer(r)})}function Gc(r){for(let e=0;e0&&this.MultiplyScalar(1/e),this}Offset(e,t){let n=e.Clone().Normalize();return this.x+=n.x*t,this.y+=n.y*t,this.z+=n.z*t,this}Rotate(e,t,n){let i=e.Clone().Normalize(),s=i.x,o=i.y,a=i.z,l=this.x-n.x,c=this.y-n.y,u=this.z-n.z,h=Math.sin(t),f=Math.cos(t);return this.x=-s*(-s*l-o*c-a*u)*(1-f)+l*f+(-a*c+o*u)*h,this.y=-o*(-s*l-o*c-a*u)*(1-f)+c*f+(a*l-s*u)*h,this.z=-a*(-s*l-o*c-a*u)*(1-f)+u*f+(-o*l+s*c)*h,this.x+=n.x,this.y+=n.y,this.z+=n.z,this}Clone(){return new r(this.x,this.y,this.z)}};function pi(r,e){return It(r.x,e.x)&&It(r.y,e.y)&&It(r.z,e.z)}function Vc(r,e){return new Xe(r.x+e.x,r.y+e.y,r.z+e.z)}function In(r,e){return new Xe(r.x-e.x,r.y-e.y,r.z-e.z)}function Yn(r,e){return Math.sqrt((r.x-e.x)*(r.x-e.x)+(r.y-e.y)*(r.y-e.y)+(r.z-e.z)*(r.z-e.z))}function gl(r,e){return r.x*e.x+r.y*e.y+r.z*e.z}function zc(r,e){let t=r.Clone().Normalize(),n=e.Clone().Normalize();if(pi(t,n))return 0;let i=gl(t,n);return Math.acos(i)}function Bi(r,e){let t=new Xe(0,0,0);return t.x=r.y*e.z-r.z*e.y,t.y=r.z*e.x-r.x*e.z,t.z=r.x*e.y-r.y*e.x,t}function yo(r,e,t){return Math.sqrt(r*r+e*e+t*t)}function Ei(r){return new Xe(r[0],r[1],r[2])}var vl=class{constructor(){this.indices=[],this.vertices=[],this.colors=[],this.normals=[],this.uvs=[],this.material=null}GetBounds(){let e=[1/0,1/0,1/0],t=[-1/0,-1/0,-1/0];for(let n=0;n0,y=v.TextureUVCount()>0,x=v.GetVertex(d.vertex),w=v.GetNormal(d.normal),I=m.vertices.length/3;m.indices.push(I),m.vertices.push(x.x,x.y,x.z);let C=h(v,d.color,_);C!==null&&m.colors.push(C.r/255,C.g/255,C.b/255),m.normals.push(w.x,w.y,w.z);let P=f(v,d.uv,y);return P!==null&&m.uvs.push(P.x,P.y),{index:I,color:C,normal:w,uv:P}}function g(v,d,m){function _(w,I,C){if(C===null&&I===null)return!0;let P=h(w,I,!0);return Rr(C,P)}function y(w,I,C){let P=w.GetNormal(I);return pi(C,P)}function x(w,I,C){if(C===null&&I===null)return!0;let P=f(w,I,!0);return Fi(C,P)}for(let w=0;w{let c=r.GetTriangle(a),u=r.GetTriangle(l);return c.mat-u.mat});let s=null,o=null;for(let a=0;a{n(i)})}ExportContent(e,t,n,i){}GetExportedMaterialName(e){return this.GetExportedName(e,Ze("Material"))}GetExportedMeshName(e){return this.GetExportedName(e,Ze("Mesh"))}GetExportedName(e,t){return e.length===0?t:e}};var To=class extends Pn{constructor(){super(),this.rhino=null}CanExport(e,t){return e===an.Binary&&t==="3dm"}ExportContent(e,t,n,i){this.rhino===null?Qr("rhino3dm").then(()=>{rhino3dm().then(s=>{this.rhino=s,this.ExportRhinoContent(e,n,i)})}).catch(()=>{i()}):this.ExportRhinoContent(e,n,i)}ExportRhinoContent(e,t,n){function i(c){return{r:c.r,g:c.g,b:c.b,a:255}}let s=new $t("model.3dm");t.push(s);let o=new this.rhino.File3dm;e.EnumerateTransformedMeshInstances(c=>{let u=xo(c);for(let h=0;h{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var Mo=class extends Pn{constructor(){super()}CanExport(e,t){return e===an.Text&&t==="bim"}ExportContent(e,t,n,i){let s={schema_version:"1.1.0",meshes:[],elements:[],info:{}};this.ExportProperties(e.GetModel(),s.info);let o=0;e.EnumerateTransformedMeshInstances(l=>{let c={mesh_id:o,coordinates:[],indices:[]};l.EnumerateVertices(g=>{c.coordinates.push(g.x,g.y,g.z)}),l.EnumerateTriangleVertexIndices((g,v,d)=>{c.indices.push(g,v,d)});let u={mesh_id:o,type:"Other",color:{r:200,g:200,b:200,a:255},vector:{x:0,y:0,z:0},rotation:{qx:0,qy:0,qz:0,qw:1},guid:kv(),info:{}},h=null,f=!0,p=[];for(let g=0;g=this.arrayBuffer.byteLength}GetBuffer(){return this.arrayBuffer}WriteArrayBuffer(e){let t=new Uint8Array(e);new Uint8Array(this.arrayBuffer).set(t,this.position),this.position+=e.byteLength}WriteBoolean8(e){this.dataView.setInt8(this.position,e?1:0),this.position=this.position+1}WriteCharacter8(e){this.dataView.setInt8(this.position,e),this.position=this.position+1}WriteUnsignedCharacter8(e){this.dataView.setUint8(this.position,e),this.position=this.position+1}WriteInteger16(e){this.dataView.setInt16(this.position,e,this.isLittleEndian),this.position=this.position+2}WriteUnsignedInteger16(e){this.dataView.setUint16(this.position,e,this.isLittleEndian),this.position=this.position+2}WriteInteger32(e){this.dataView.setInt32(this.position,e,this.isLittleEndian),this.position=this.position+4}WriteUnsignedInteger32(e){this.dataView.setUint32(this.position,e,this.isLittleEndian),this.position=this.position+4}WriteFloat32(e){this.dataView.setFloat32(this.position,e,this.isLittleEndian),this.position=this.position+4}WriteDouble64(e){this.dataView.setFloat64(this.position,e,this.isLittleEndian),this.position=this.position+8}};var Vi=class r{constructor(e,t,n,i){this.x=e,this.y=t,this.z=n,this.w=i}Clone(){return new r(this.x,this.y,this.z,this.w)}};var Kn=class{constructor(e,t,n,i){this.x=e,this.y=t,this.z=n,this.w=i}};function sm(r,e){return It(r.x,e.x)&&It(r.y,e.y)&&It(r.z,e.z)&&It(r.w,e.w)}function Eo(r){return new Kn(r[0],r[1],r[2],r[3])}function jc(r,e){let t=e/2,n=Math.sin(t);return new Kn(r.x*n,r.y*n,r.z*n,Math.cos(t))}function om(r,e,t,n){let i=Math.cos(r/2),s=Math.cos(e/2),o=Math.cos(t/2),a=Math.sin(r/2),l=Math.sin(e/2),c=Math.sin(t/2),u=new Kn(0,0,0,1);if(n==="XYZ")u.x=a*s*o+i*l*c,u.y=i*l*o-a*s*c,u.z=i*s*c+a*l*o,u.w=i*s*o-a*l*c;else if(n==="YXZ")u.x=a*s*o+i*l*c,u.y=i*l*o-a*s*c,u.z=i*s*c-a*l*o,u.w=i*s*o+a*l*c;else if(n==="ZXY")u.x=a*s*o-i*l*c,u.y=i*l*o+a*s*c,u.z=i*s*c+a*l*o,u.w=i*s*o-a*l*c;else if(n==="ZYX")u.x=a*s*o-i*l*c,u.y=i*l*o+a*s*c,u.z=i*s*c-a*l*o,u.w=i*s*o+a*l*c;else if(n==="YZX")u.x=a*s*o+i*l*c,u.y=i*l*o+a*s*c,u.z=i*s*c-a*l*o,u.w=i*s*o-a*l*c;else if(n==="XZY")u.x=a*s*o-i*l*c,u.y=i*l*o-a*s*c,u.z=i*s*c+a*l*o,u.w=i*s*o+a*l*c;else return null;return u}var fn=class r{constructor(e){this.matrix=null,e!=null&&(this.matrix=e)}IsValid(){return this.matrix!==null}Set(e){return this.matrix=e,this}Get(){return this.matrix}Clone(){let e=[this.matrix[0],this.matrix[1],this.matrix[2],this.matrix[3],this.matrix[4],this.matrix[5],this.matrix[6],this.matrix[7],this.matrix[8],this.matrix[9],this.matrix[10],this.matrix[11],this.matrix[12],this.matrix[13],this.matrix[14],this.matrix[15]];return new r(e)}CreateIdentity(){return this.matrix=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this}IsIdentity(){let e=new r().CreateIdentity().Get();for(let t=0;t<16;t++)if(!It(this.matrix[t],e[t]))return!1;return!0}CreateTranslation(e,t,n){return this.matrix=[1,0,0,0,0,1,0,0,0,0,1,0,e,t,n,1],this}CreateRotation(e,t,n,i){let s=e+e,o=t+t,a=n+n,l=e*s,c=e*o,u=e*a,h=t*o,f=t*a,p=n*a,g=i*s,v=i*o,d=i*a;return this.matrix=[1-(h+p),c+d,u-v,0,c-d,1-(l+p),f+g,0,u+v,f-g,1-(l+h),0,0,0,0,1],this}CreateRotationAxisAngle(e,t){let n=jc(e,t);return this.CreateRotation(n.x,n.y,n.z,n.w)}CreateScale(e,t,n){return this.matrix=[e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1],this}ComposeTRS(e,t,n){let i=e.x,s=e.y,o=e.z,a=t.x,l=t.y,c=t.z,u=t.w,h=n.x,f=n.y,p=n.z,g=a+a,v=l+l,d=c+c,m=a*g,_=a*v,y=a*d,x=l*v,w=l*d,I=c*d,C=u*g,P=u*v,E=u*d;return this.matrix=[(1-(x+I))*h,(_+E)*h,(y-P)*h,0,(_-E)*f,(1-(m+I))*f,(w+C)*f,0,(y+P)*p,(w-C)*p,(1-(m+x))*p,0,i,s,o,1],this}DecomposeTRS(){let e=new Xe(this.matrix[12],this.matrix[13],this.matrix[14]),t=yo(this.matrix[0],this.matrix[1],this.matrix[2]),n=yo(this.matrix[4],this.matrix[5],this.matrix[6]),i=yo(this.matrix[8],this.matrix[9],this.matrix[10]),s=this.Determinant();wr(s)&&(t*=-1);let o=new Xe(t,n,i),a=this.matrix[0]/t,l=this.matrix[4]/n,c=this.matrix[8]/i,u=this.matrix[1]/t,h=this.matrix[5]/n,f=this.matrix[9]/i,p=this.matrix[2]/t,g=this.matrix[6]/n,v=this.matrix[10]/i,d=null,m=a+h+v;if(m>0){let _=Math.sqrt(m+1)*2;d=new Kn((g-f)/_,(c-p)/_,(u-l)/_,.25*_)}else if(a>h&&a>v){let _=Math.sqrt(1+a-h-v)*2;d=new Kn(.25*_,(l+u)/_,(c+p)/_,(g-f)/_)}else if(h>v){let _=Math.sqrt(1+h-a-v)*2;d=new Kn((l+u)/_,.25*_,(f+g)/_,(c-p)/_)}else{let _=Math.sqrt(1+v-a-h)*2;d=new Kn((c+p)/_,(f+g)/_,.25*_,(u-l)/_)}return{translation:e,rotation:d,scale:o}}Determinant(){let e=this.matrix[0],t=this.matrix[1],n=this.matrix[2],i=this.matrix[3],s=this.matrix[4],o=this.matrix[5],a=this.matrix[6],l=this.matrix[7],c=this.matrix[8],u=this.matrix[9],h=this.matrix[10],f=this.matrix[11],p=this.matrix[12],g=this.matrix[13],v=this.matrix[14],d=this.matrix[15],m=e*o-t*s,_=e*a-n*s,y=e*l-i*s,x=t*a-n*o,w=t*l-i*o,I=n*l-i*a,C=c*g-u*p,P=c*v-h*p,E=c*d-f*p,M=u*v-h*g,L=u*d-f*g,N=h*d-f*v;return m*N-_*L+y*M+x*E-w*P+I*C}Invert(){let e=this.matrix[0],t=this.matrix[1],n=this.matrix[2],i=this.matrix[3],s=this.matrix[4],o=this.matrix[5],a=this.matrix[6],l=this.matrix[7],c=this.matrix[8],u=this.matrix[9],h=this.matrix[10],f=this.matrix[11],p=this.matrix[12],g=this.matrix[13],v=this.matrix[14],d=this.matrix[15],m=e*o-t*s,_=e*a-n*s,y=e*l-i*s,x=t*a-n*o,w=t*l-i*o,I=n*l-i*a,C=c*g-u*p,P=c*v-h*p,E=c*d-f*p,M=u*v-h*g,L=u*d-f*g,N=h*d-f*v,O=m*N-_*L+y*M+x*E-w*P+I*C;if(It(O,0))return null;let B=[(o*N-a*L+l*M)/O,(n*L-t*N-i*M)/O,(g*I-v*w+d*x)/O,(h*w-u*I-f*x)/O,(a*E-s*N-l*P)/O,(e*N-n*E+i*P)/O,(v*y-p*I-d*_)/O,(c*I-h*y+f*_)/O,(s*L-o*E+l*C)/O,(t*E-e*L-i*C)/O,(p*w-g*y+d*m)/O,(u*y-c*w-f*m)/O,(o*P-s*M-a*C)/O,(e*M-t*P+n*C)/O,(g*_-p*x-v*m)/O,(c*x-u*_+h*m)/O];return new r(B)}Transpose(){let e=[this.matrix[0],this.matrix[4],this.matrix[8],this.matrix[12],this.matrix[1],this.matrix[5],this.matrix[9],this.matrix[13],this.matrix[2],this.matrix[6],this.matrix[10],this.matrix[14],this.matrix[3],this.matrix[7],this.matrix[11],this.matrix[15]];return new r(e)}InvertTranspose(){let e=this.Invert();return e===null?null:e.Transpose()}MultiplyVector(e){let t=e.x,n=e.y,i=e.z,s=e.w,o=this.matrix[0],a=this.matrix[1],l=this.matrix[2],c=this.matrix[3],u=this.matrix[4],h=this.matrix[5],f=this.matrix[6],p=this.matrix[7],g=this.matrix[8],v=this.matrix[9],d=this.matrix[10],m=this.matrix[11],_=this.matrix[12],y=this.matrix[13],x=this.matrix[14],w=this.matrix[15];return new Vi(t*o+n*u+i*g+s*_,t*a+n*h+i*v+s*y,t*l+n*f+i*d+s*x,t*c+n*p+i*m+s*w)}MultiplyMatrix(e){let t=this.matrix[0],n=this.matrix[1],i=this.matrix[2],s=this.matrix[3],o=this.matrix[4],a=this.matrix[5],l=this.matrix[6],c=this.matrix[7],u=this.matrix[8],h=this.matrix[9],f=this.matrix[10],p=this.matrix[11],g=this.matrix[12],v=this.matrix[13],d=this.matrix[14],m=this.matrix[15],_=e.matrix[0],y=e.matrix[1],x=e.matrix[2],w=e.matrix[3],I=e.matrix[4],C=e.matrix[5],P=e.matrix[6],E=e.matrix[7],M=e.matrix[8],L=e.matrix[9],N=e.matrix[10],O=e.matrix[11],B=e.matrix[12],ie=e.matrix[13],$=e.matrix[14],te=e.matrix[15],W=[t*_+n*I+i*M+s*B,t*y+n*C+i*L+s*ie,t*x+n*P+i*N+s*$,t*w+n*E+i*O+s*te,o*_+a*I+l*M+c*B,o*y+a*C+l*L+c*ie,o*x+a*P+l*N+c*$,o*w+a*E+l*O+c*te,u*_+h*I+f*M+p*B,u*y+h*C+f*L+p*ie,u*x+h*P+f*N+p*$,u*w+h*E+f*O+p*te,g*_+v*I+d*M+m*B,g*y+v*C+d*L+m*ie,g*x+v*P+d*N+m*$,g*w+v*E+d*O+m*te];return new r(W)}};function qc(r,e){let t=r.Get(),n=e.Get();for(let i=0;i<16;i++)if(!It(t[i],n[i]))return!1;return!0}var ln=class r{constructor(e){e!=null?this.matrix=e:(this.matrix=new fn,this.matrix.CreateIdentity())}SetMatrix(e){return this.matrix=e,this}GetMatrix(){return this.matrix}IsIdentity(){return this.matrix.IsIdentity()}AppendMatrix(e){return this.matrix=this.matrix.MultiplyMatrix(e),this}Append(e){return this.AppendMatrix(e.GetMatrix()),this}TransformCoord3D(e){let t=new Vi(e.x,e.y,e.z,1),n=this.matrix.MultiplyVector(t);return new Xe(n.x,n.y,n.z)}Clone(){let e=this.matrix.Clone();return new r(e)}};function am(r,e){return qc(r.GetMatrix(),e.GetMatrix())}function ts(r){return r.LineCount()===0&&r.TriangleCount()===0}function Ds(r,e,t){let n=In(e,r),i=In(t,r),s=Bi(n,i);return s.Normalize(),s}function ur(r,e){if(!e.IsIdentity()){for(let t=0;t0){let t=e.GetMatrix().InvertTranspose();if(t!==null){let n=new ln(t);for(let i=0;i{let i=t.TransformCoord3D(n);e(i)})}EnumerateTriangleVertexIndices(e){this.mesh.EnumerateTriangleVertexIndices(e)}EnumerateTriangleVertices(e){let t=this.node.GetWorldTransformation();t.IsIdentity()?this.mesh.EnumerateTriangleVertices(e):this.mesh.EnumerateTriangleVertices((n,i,s)=>{let o=t.TransformCoord3D(n),a=t.TransformCoord3D(i),l=t.TransformCoord3D(s);e(o,a,l)})}PropertyGroupCount(){return this.mesh.PropertyGroupCount()}AddPropertyGroup(e){return this.mesh.AddPropertyGroup(e)}GetPropertyGroup(e){return this.mesh.GetPropertyGroup(e)}GetTransformedMesh(){let e=this.node.GetWorldTransformation(),t=this.mesh.Clone();return ur(t,e),t}};var lm={UNSIGNED_INT:5125,FLOAT:5126},_l={ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963},bo=class extends Pn{constructor(){super(),this.components={index:{type:lm.UNSIGNED_INT,size:4},number:{type:lm.FLOAT,size:4}}}CanExport(e,t){return e===an.Text&&t==="gltf"||e===an.Binary&&t==="glb"}ExportContent(e,t,n,i){t===an.Text?this.ExportAsciiContent(e,n):t===an.Binary&&this.ExportBinaryContent(e,n),i()}ExportAsciiContent(e,t){let n=new $t("model.gltf"),i=new $t("model.bin");t.push(n),t.push(i);let s=this.GetMeshData(e),o=this.GetMainBuffer(s),a=this.GetMainJson(e,s);a.buffers.push({uri:i.GetName(),byteLength:o.byteLength});let l=new Map;this.ExportMaterials(e,a,c=>{let u=En(c.name);if(l.has(u))return l.get(u);{let h=new $t(u);h.SetBufferContent(c.buffer),t.push(h);let f=a.textures.length;return l.set(u,f),a.images.push({uri:u}),a.textures.push({source:f}),f}}),n.SetTextContent(JSON.stringify(a,null,4)),i.SetBufferContent(o)}ExportBinaryContent(e,t){function n(x){let w=x%4;return w===0?x:x+(4-w)}function i(x,w,I){for(let C=0;C{let w=En(x.name),I=cr(x.name);if(h.has(w))return h.get(w);{let C=l.bufferViews.length,P=l.textures.length;h.set(w,P);let E=x.buffer;return c.push(E),l.bufferViews.push({buffer:0,byteOffset:u,byteLength:E.byteLength}),u+=E.byteLength,l.images.push({bufferView:C,mimeType:"image/"+I}),l.textures.push({source:P}),P}});let f=a.byteLength;for(let x=0;x{let i=xo(n);t.push({name:n.GetName(),buffer:i,offsets:[],sizes:[]})}),t}GetMainBuffer(e){let t=0;for(let i of e)t+=i.buffer.GetByteLength(this.components.index.size,this.components.number.size);let n=new Gi(t,!0);for(let i of e)for(let s=0;s0&&(g.name=v),p.GetTransformation().IsIdentity()||(g.matrix=p.GetTransformation().GetMatrix().Get()),f.push(g),h.push(f.length-1),g.children=[],a(u,g.children,f,p)}}function o(u,h,f,p,g,v){let d=new bi(p.GetId(),g);if(!u.IsMeshInstanceVisible(d))return;let m={mesh:u.MapMeshIndex(g)};v&&(p.GetTransformation().IsIdentity()||(m.matrix=p.GetTransformation().GetMatrix().Get())),f.push(m),h.push(f.length-1)}function a(u,h,f,p){for(let g of p.GetChildNodes())s(u,h,f,g);for(let g of p.GetMeshIndices())o(u,h,f,p,g,!1)}let l={asset:{generator:"https://3dviewer.net",version:"2.0"},scene:0,scenes:[{nodes:[]}],nodes:[],materials:[],meshes:[],buffers:[],bufferViews:[],accessors:[]},c=e.GetModel().GetRootNode();a(e,l.scenes[0].nodes,l.nodes,c);for(let u of t){let h={name:this.GetExportedMeshName(u.name),primitives:[]},f=u.buffer.primitives;for(let p=0;p0&&(_=v.AddBufferView(g.colors.length*this.components.number.size,_l.ARRAY_BUFFER));let y=v.AddBufferView(g.normals.length*this.components.number.size,_l.ARRAY_BUFFER),x=null;g.uvs.length>0&&(x=v.AddBufferView(g.uvs.length*this.components.number.size,_l.ARRAY_BUFFER));let w={attributes:{},mode:4,material:g.material},I=g.GetBounds();l.accessors.push({bufferView:d,byteOffset:0,componentType:this.components.index.type,count:g.indices.length,type:"SCALAR"}),w.indices=l.accessors.length-1,l.accessors.push({bufferView:m,byteOffset:0,componentType:this.components.number.type,count:g.vertices.length/3,min:I.min,max:I.max,type:"VEC3"}),w.attributes.POSITION=l.accessors.length-1,_!==null&&(l.accessors.push({bufferView:_,byteOffset:0,componentType:this.components.number.type,count:g.colors.length/3,type:"VEC3"}),w.attributes.COLOR_0=l.accessors.length-1),l.accessors.push({bufferView:y,byteOffset:0,componentType:this.components.number.type,count:g.normals.length/3,type:"VEC3"}),w.attributes.NORMAL=l.accessors.length-1,x!==null&&(l.accessors.push({bufferView:x,byteOffset:0,componentType:this.components.number.type,count:g.uvs.length/2,type:"VEC2"}),w.attributes.TEXCOORD_0=l.accessors.length-1),h.primitives.push(w)}l.meshes.push(h)}return l}ExportMaterials(e,t,n){function i(s,o,a,l){function c(d,m){return[lr(d.r/255),lr(d.g/255),lr(d.b/255),m]}function u(d){return[lr(d.r/255),lr(d.g/255),lr(d.b/255)]}function h(d,m,_){if(m===null||!m.IsValid())return null;d.images===void 0&&(d.images=[]),d.textures===void 0&&(d.textures=[]);let x={index:_(m)};if(m.HasTransformation()){let w="KHR_texture_transform";d.extensionsUsed===void 0&&(d.extensionsUsed=[]),d.extensionsUsed.indexOf(w)===-1&&d.extensionsUsed.push(w),x.extensions={KHR_texture_transform:{offset:[m.offset.x,-m.offset.y],scale:[m.scale.x,m.scale.y],rotation:-m.rotation}}}return x}let f={name:s.GetExportedMaterialName(a.name),pbrMetallicRoughness:{baseColorFactor:c(a.color,a.opacity)},emissiveFactor:u(a.emissive),doubleSided:!0,alphaMode:"OPAQUE"};a.transparent&&(f.alphaMode="BLEND");let p=h(o,a.diffuseMap,l);if(p!==null&&(a.multiplyDiffuseMap||(f.pbrMetallicRoughness.baseColorFactor=c(new Mt(255,255,255),a.opacity)),f.pbrMetallicRoughness.baseColorTexture=p),a.type===Un.Physical){let d=h(o,a.metalnessMap,l);d!==null?f.pbrMetallicRoughness.metallicRoughnessTexture=d:(f.pbrMetallicRoughness.metallicFactor=a.metalness,f.pbrMetallicRoughness.roughnessFactor=a.roughness)}let g=h(o,a.normalMap,l);g!==null&&(f.normalTexture=g);let v=h(o,a.emissiveMap,l);v!==null&&(f.emissiveTexture=v),o.materials.push(f)}for(let s=0;s!0,co(e,this)}},So=class{constructor(e,t){this.model=e,this.settings=t||new Tl,this.visibleMeshes=null,this.meshToVisibleMeshIndex=null}GetModel(){return this.model}MaterialCount(){return this.model.MaterialCount()}GetMaterial(e){return this.model.GetMaterial(e)}VertexCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.VertexCount()}),e}TriangleCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.TriangleCount()}),e}MeshCount(){let e=0;return this.EnumerateMeshes(t=>{e+=1}),e}EnumerateMeshes(e){this.FillVisibleMeshCache();for(let t=0;t{e+=1}),e}EnumerateMeshInstances(e){this.model.EnumerateMeshInstances(t=>{this.settings.isMeshVisible(t.GetId())&&e(t)})}EnumerateTransformedMeshInstances(e){this.EnumerateMeshInstances(t=>{let n=t.GetTransformation();this.settings.transformation.IsIdentity()||n.Append(this.settings.transformation);let s=t.GetMesh().Clone();n.IsIdentity()||ur(s,n),e(s)})}EnumerateVerticesAndTriangles(e){let t=[];this.EnumerateTransformedMeshInstances(i=>{t.push(i)});for(let i of t)i.EnumerateVertices(s=>{e.onVertex(s.x,s.y,s.z)});let n=0;for(let i of t)i.EnumerateTriangleVertexIndices((s,o,a)=>{e.onTriangle(s+n,o+n,a+n)}),n+=i.VertexCount()}EnumerateTrianglesWithNormals(e){this.EnumerateTransformedMeshInstances(t=>{t.EnumerateTriangleVertices((n,i,s)=>{let o=Ds(n,i,s);e(n,i,s,o)})})}FillVisibleMeshCache(){if(this.visibleMeshes!==null&&this.meshToVisibleMeshIndex!==null)return;this.visibleMeshes=new Set,this.model.EnumerateMeshInstances(t=>{let n=t.GetId();this.settings.isMeshVisible(n)&&this.visibleMeshes.add(n.meshIndex)}),this.meshToVisibleMeshIndex=new Map;let e=0;for(let t=0;tx.GetName()===_)===-1){let x=new $t(_);x.SetBufferContent(d.buffer),m.push(x)}}let o=new $t("model.mtl"),a=new $t("model.obj");n.push(o),n.push(a);let l=new oi;l.WriteLine(this.GetHeaderText());for(let g=0;g{c.WriteArrayLine(["g",this.GetExportedMeshName(g.GetName())]);for(let v=0;v{i.WriteArrayLine(["facet","normal",l.x,l.y,l.z]),i.Indent(1),i.WriteLine("outer loop"),i.Indent(1),i.WriteArrayLine(["vertex",s.x,s.y,s.z]),i.WriteArrayLine(["vertex",o.x,o.y,o.z]),i.WriteArrayLine(["vertex",a.x,a.y,a.z]),i.Indent(-1),i.WriteLine("endloop"),i.Indent(-1),i.WriteLine("endfacet")}),i.WriteLine("endsolid Model"),n.SetTextContent(i.GetText())}ExportBinary(e,t){let n=new $t("model.stl");t.push(n);let i=e.TriangleCount(),s=80,o=s+4+i*50,a=new Gi(o,!0);for(let l=0;l{a.WriteFloat32(h.x),a.WriteFloat32(h.y),a.WriteFloat32(h.z),a.WriteFloat32(l.x),a.WriteFloat32(l.y),a.WriteFloat32(l.z),a.WriteFloat32(c.x),a.WriteFloat32(c.y),a.WriteFloat32(c.z),a.WriteFloat32(u.x),a.WriteFloat32(u.y),a.WriteFloat32(u.z),a.WriteUnsignedInteger16(0)}),n.SetBufferContent(a.GetBuffer())}};var Kc=class{constructor(){this.exporters=[new Ao,new Ro,new Co,new wo,new bo,new To,new Mo]}AddExporter(e){this.exporters.push(e)}Export(e,t,n,i,s){let o=null;for(let l=0;l{l.length===0?s.onError():s.onSuccess(l)})}};var Fs=class{constructor(e,t){this.min=e,this.max=t}GetMin(){return this.min}GetMax(){return this.max}GetCenter(){return new Xe((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,(this.min.z+this.max.z)/2)}},Io=class{constructor(){this.box=new Fs(new Xe(1/0,1/0,1/0),new Xe(-1/0,-1/0,-1/0)),this.isValid=!1}GetBox(){return this.isValid?this.box:null}AddPoint(e){this.box.min.x=Math.min(this.box.min.x,e.x),this.box.min.y=Math.min(this.box.min.y,e.y),this.box.min.z=Math.min(this.box.min.z,e.z),this.box.max.x=Math.max(this.box.max.x,e.x),this.box.max.y=Math.max(this.box.max.y,e.y),this.box.max.z=Math.max(this.box.max.z,e.z),this.isValid=!0}};var Po=class r{constructor(e,t){this.beg=e,this.end=t}Clone(){return new r(this.beg,this.end)}};function ef(r,e){let t=Zr(r.end,r.beg),n=Zr(e,r.beg),i=fl(t,n),s=fl(t,t);if(Ar(s))return r.beg.Clone();let o=i/s;return o=Math.max(0,Math.min(1,o)),new At(r.beg.x+o*t.x,r.beg.y+o*t.y)}function Zc(r,e){let t=ef(r,e);return Is(t,e)}var Ml=class r{constructor(e,t){this.boundingBox=e,this.level=t,this.pointItems=[],this.childNodes=[]}AddPoint(e,t,n){let i=this.FindNodeForPoint(e);if(i===null||i.FindPointDirectly(e)!==null)return!1;if(i.pointItems.length=n.maxTreeDepth)return i.AddPointDirectly(e,t),!0;{i.CreateChildNodes();let s=i.pointItems;i.pointItems=[];for(let o=0;o{e.onFileListProgress(t,this.files.length),this.GetFileContent(this.files[t],{onReady:n,onProgress:e.onFileLoadProgress})},onReady:e.onReady})}ContainsFileByPath(e){return this.FindFileByPath(e)!==null}FindFileByPath(e){let t=En(e).toLowerCase();for(let n=0;n{e.SetContent(i)}).catch(()=>{}).finally(()=>{t.onReady()})}};var tf=class{constructor(){this.nextId=0}GenerateId(){let e=this.nextId;return this.nextId+=1,e}},Nn=class{constructor(){this.name="",this.parent=null,this.transformation=new ln,this.childNodes=[],this.meshIndices=[],this.idGenerator=new tf,this.id=this.idGenerator.GenerateId()}IsEmpty(){return this.childNodes.length===0&&this.meshIndices.length===0}IsMeshNode(){return this.childNodes.length===0&&this.meshIndices.length===1}GetId(){return this.id}GetName(){return this.name}SetName(e){this.name=e}HasParent(){return this.parent!==null}GetParent(){return this.parent}GetTransformation(){return this.transformation}GetWorldTransformation(){let e=this.transformation.Clone(),t=this.parent;for(;t!==null;)e.Append(t.transformation),t=t.parent;return e}SetTransformation(e){this.transformation=e}AddChildNode(e){return e.parent=this,e.idGenerator=this.idGenerator,e.id=e.idGenerator.GenerateId(),this.childNodes.push(e),this.childNodes.length-1}RemoveChildNode(e){e.parent=null;let t=this.childNodes.indexOf(e);this.childNodes.splice(t,1)}GetChildNodes(){return this.childNodes}ChildNodeCount(){return this.childNodes.length}GetChildNode(e){return this.childNodes[e]}AddMeshIndex(e){return this.meshIndices.push(e),this.meshIndices.length-1}MeshIndexCount(){return this.meshIndices.length}GetMeshIndex(e){return this.meshIndices[e]}GetMeshIndices(){return this.meshIndices}Enumerate(e){e(this);for(let t of this.childNodes)t.Enumerate(e)}EnumerateChildren(e){for(let t of this.childNodes)e(t),t.EnumerateChildren(e)}EnumerateMeshIndices(e){for(let t of this.meshIndices)e(t);for(let t of this.childNodes)t.EnumerateMeshIndices(e)}};var ns={Unknown:0,Millimeter:1,Centimeter:2,Meter:3,Inch:4,Foot:5};var fr=class extends hr{constructor(){super(),this.unit=ns.Unknown,this.root=new Nn,this.materials=[],this.meshes=[]}GetUnit(){return this.unit}SetUnit(e){this.unit=e}GetRootNode(){return this.root}NodeCount(){let e=0;return this.root.Enumerate(t=>{e+=1}),e-1}MaterialCount(){return this.materials.length}MeshCount(){return this.meshes.length}MeshInstanceCount(){let e=0;return this.root.Enumerate(t=>{e+=t.MeshIndexCount()}),e}VertexCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.VertexCount()}),e}VertexColorCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.VertexColorCount()}),e}NormalCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.NormalCount()}),e}TextureUVCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.TextureUVCount()}),e}LineCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.LineCount()}),e}LineSegmentCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.LineSegmentCount()}),e}TriangleCount(){let e=0;return this.EnumerateMeshInstances(t=>{e+=t.TriangleCount()}),e}AddMaterial(e){return this.materials.push(e),this.materials.length-1}GetMaterial(e){return this.materials[e]}AddMesh(e){return this.meshes.push(e),this.meshes.length-1}AddMeshToRootNode(e){let t=this.AddMesh(e);return this.root.AddMeshIndex(t),t}RemoveMesh(e){this.meshes.splice(e,1),this.root.Enumerate(t=>{for(let n=0;ne&&(t.meshIndices[n]-=1)})}GetMesh(e){return this.meshes[e]}GetMeshInstance(e){let t=null;if(this.root.Enumerate(o=>{o.GetId()===e.nodeId&&(t=o)}),t===null||t.GetMeshIndices().indexOf(e.meshIndex)===-1)return null;let i=this.GetMesh(e.meshIndex),s=new bi(t.GetId(),e.meshIndex);return new Pr(s,t,i)}EnumerateMeshes(e){for(let t of this.meshes)e(t)}EnumerateMeshInstances(e){this.root.Enumerate(t=>{for(let n of t.GetMeshIndices()){let i=new bi(t.GetId(),n),s=this.GetMesh(n),o=new Pr(i,t,s);e(o)}})}EnumerateTransformedMeshInstances(e){this.EnumerateMeshInstances(t=>{let n=t.GetTransformedMesh();e(n)})}EnumerateVertices(e){this.EnumerateMeshInstances(t=>{t.EnumerateVertices(e)})}EnumerateTriangleVertexIndices(e){this.EnumerateMeshInstances(t=>{t.EnumerateTriangleVertexIndices(e)})}EnumerateTriangleVertices(e){this.EnumerateMeshInstances(t=>{t.EnumerateTriangleVertices(e)})}};var El=class{constructor(){this.edges=[],this.triangles=[]}},bl=class{constructor(e,t){this.vertex1=e,this.vertex2=t,this.triangles=[]}},Sl=class{constructor(e,t){this.edge=e,this.reversed=t}},Al=class{constructor(){this.triEdge1=null,this.triEdge2=null,this.triEdge3=null}},Do=class{constructor(){this.vertices=[],this.edges=[],this.triangleEdges=[],this.triangles=[],this.edgeStartToEndVertexMap=new Map}AddVertex(){return this.vertices.push(new El),this.vertices.length-1}AddTriangle(e,t,n){function i(c,u,h){c[u].triangles.push(h)}function s(c,u,h,f){let p=c[h],g=u[f];p.edges.push(g.edge)}function o(c,u,h,f){let p=u[h];c[p.edge].triangles.push(f)}let a=this.triangles.length,l=new Al;l.triEdge1=this.AddTriangleEdge(e,t),l.triEdge2=this.AddTriangleEdge(t,n),l.triEdge3=this.AddTriangleEdge(n,e),i(this.vertices,e,a),i(this.vertices,t,a),i(this.vertices,n,a),s(this.vertices,this.triangleEdges,e,l.triEdge1),s(this.vertices,this.triangleEdges,t,l.triEdge2),s(this.vertices,this.triangleEdges,n,l.triEdge3),o(this.edges,this.triangleEdges,l.triEdge1,a),o(this.edges,this.triangleEdges,l.triEdge2,a),o(this.edges,this.triangleEdges,l.triEdge3,a),this.triangles.push(l)}AddTriangleEdge(e,t){let n=e,i=t,s=!1;t{ts(t)||(e=!1)}),e}function nf(r){let e=new Io;return r.EnumerateVertices(t=>{e.AddPoint(t)}),e.GetBox()}function rf(r){function e(s,o,a){let l=o.FindPoint(s);return l===null&&(l=a.AddVertex(),o.AddPoint(s,l)),l}let t=nf(r),n=new No(t),i=new Do;return r.EnumerateTriangleVertices((s,o,a)=>{let l=e(s,n,i),c=e(o,n,i),u=e(a,n,i);i.AddTriangle(l,c,u)}),i}function sf(r){function e(t,n,i){let s=t.triangles[n],o=t.triangleEdges[s.triEdge1],a=t.triangleEdges[s.triEdge2],l=t.triangleEdges[s.triEdge3];return o.edge===i?o.reversed:a.edge===i?a.reversed:l.edge===i?l.reversed:null}if(r instanceof fr){let t=!0;return r.EnumerateMeshInstances(n=>{t&&(t=sf(n))}),t}else{let t=rf(r);for(let n=0;n>8&255]+zn[r>>16&255]+zn[r>>24&255]+"-"+zn[e&255]+zn[e>>8&255]+"-"+zn[e>>16&15|64]+zn[e>>24&255]+"-"+zn[t&63|128]+zn[t>>8&255]+"-"+zn[t>>16&255]+zn[t>>24&255]+zn[n&255]+zn[n>>8&255]+zn[n>>16&255]+zn[n>>24&255]).toLowerCase()}function kn(r,e,t){return Math.max(e,Math.min(t,r))}function Nd(r,e){return(r%e+e)%e}function Xy(r,e,t,n,i){return n+(r-e)*(i-n)/(t-e)}function jy(r,e,t){return r!==e?(t-r)/(e-r):0}function Ll(r,e,t){return(1-t)*r+t*e}function qy(r,e,t,n){return Ll(r,e,1-Math.exp(-t*n))}function Yy(r,e=1){return e-Math.abs(Nd(r,e*2)-e)}function Ky(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*(3-2*r))}function Zy(r,e,t){return r<=e?0:r>=t?1:(r=(r-e)/(t-e),r*r*r*(r*(r*6-15)+10))}function Jy(r,e){return r+Math.floor(Math.random()*(e-r+1))}function $y(r,e){return r+Math.random()*(e-r)}function Qy(r){return r*(.5-Math.random())}function ex(r){r!==void 0&&(Km=r);let e=Km+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function tx(r){return r*sa}function nx(r){return r*fa}function ix(r){return(r&r-1)===0&&r!==0}function rx(r){return Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))}function sx(r){return Math.pow(2,Math.floor(Math.log(r)/Math.LN2))}function ox(r,e,t,n,i){let s=Math.cos,o=Math.sin,a=s(t/2),l=o(t/2),c=s((e+n)/2),u=o((e+n)/2),h=s((e-n)/2),f=o((e-n)/2),p=s((n-e)/2),g=o((n-e)/2);switch(i){case"XYX":r.set(a*u,l*h,l*f,a*c);break;case"YZY":r.set(l*f,a*u,l*h,a*c);break;case"ZXZ":r.set(l*h,l*f,a*u,a*c);break;case"XZX":r.set(a*u,l*g,l*p,a*c);break;case"YXY":r.set(l*p,a*u,l*g,a*c);break;case"ZYZ":r.set(l*g,l*p,a*u,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}}function ea(r,e){switch(e.constructor){case Float32Array:return r;case Uint32Array:return r/4294967295;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int32Array:return Math.max(r/2147483647,-1);case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function Zn(r,e){switch(e.constructor){case Float32Array:return r;case Uint32Array:return Math.round(r*4294967295);case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int32Array:return Math.round(r*2147483647);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}var pn={DEG2RAD:sa,RAD2DEG:fa,generateUUID:Wr,clamp:kn,euclideanModulo:Nd,mapLinear:Xy,inverseLerp:jy,lerp:Ll,damp:qy,pingpong:Yy,smoothstep:Ky,smootherstep:Zy,randInt:Jy,randFloat:$y,randFloatSpread:Qy,seededRandom:ex,degToRad:tx,radToDeg:nx,isPowerOfTwo:ix,ceilPowerOfTwo:rx,floorPowerOfTwo:sx,setQuaternionFromProperEuler:ox,normalize:Zn,denormalize:ea},Ce=class r{constructor(e=0,t=0){r.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,n=this.y,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6],this.y=i[1]*t+i[4]*n+i[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(kn(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let n=Math.cos(t),i=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*n-o*i+e.x,this.y=s*i+o*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},ft=class r{constructor(e,t,n,i,s,o,a,l,c){r.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,n,i,s,o,a,l,c)}set(e,t,n,i,s,o,a,l,c){let u=this.elements;return u[0]=e,u[1]=i,u[2]=a,u[3]=t,u[4]=s,u[5]=l,u[6]=n,u[7]=o,u[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,s=this.elements,o=n[0],a=n[3],l=n[6],c=n[1],u=n[4],h=n[7],f=n[2],p=n[5],g=n[8],v=i[0],d=i[3],m=i[6],_=i[1],y=i[4],x=i[7],w=i[2],I=i[5],C=i[8];return s[0]=o*v+a*_+l*w,s[3]=o*d+a*y+l*I,s[6]=o*m+a*x+l*C,s[1]=c*v+u*_+h*w,s[4]=c*d+u*y+h*I,s[7]=c*m+u*x+h*C,s[2]=f*v+p*_+g*w,s[5]=f*d+p*y+g*I,s[8]=f*m+p*x+g*C,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8];return t*o*u-t*a*c-n*s*u+n*a*l+i*s*c-i*o*l}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8],h=u*o-a*c,f=a*l-u*s,p=c*s-o*l,g=t*h+n*f+i*p;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);let v=1/g;return e[0]=h*v,e[1]=(i*c-u*n)*v,e[2]=(a*n-i*o)*v,e[3]=f*v,e[4]=(u*t-i*l)*v,e[5]=(i*s-a*t)*v,e[6]=p*v,e[7]=(n*l-c*t)*v,e[8]=(o*t-n*s)*v,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,i,s,o,a){let l=Math.cos(s),c=Math.sin(s);return this.set(n*l,n*c,-n*(l*o+c*a)+o+e,-i*c,i*l,-i*(-c*o+l*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(df.makeScale(e,t)),this}rotate(e){return this.premultiply(df.makeRotation(-e)),this}translate(e,t){return this.premultiply(df.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,n=e.elements;for(let i=0;i<9;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}},df=new ft;function v0(r){for(let e=r.length-1;e>=0;--e)if(r[e]>=65535)return!0;return!1}function Bl(r){return document.createElementNS("http://www.w3.org/1999/xhtml",r)}function ax(){let r=Bl("canvas");return r.style.display="block",r}var Zm={};function lx(r){r in Zm||(Zm[r]=!0,console.warn(r))}var Jm=new ft().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),$m=new ft().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),tu={[li]:{transfer:Uu,primaries:ku,toReference:r=>r,fromReference:r=>r},[jt]:{transfer:Qt,primaries:ku,toReference:r=>r.convertSRGBToLinear(),fromReference:r=>r.convertLinearToSRGB()},[hh]:{transfer:Uu,primaries:Bu,toReference:r=>r.applyMatrix3($m),fromReference:r=>r.applyMatrix3(Jm)},[Pd]:{transfer:Qt,primaries:Bu,toReference:r=>r.convertSRGBToLinear().applyMatrix3($m),fromReference:r=>r.applyMatrix3(Jm).convertLinearToSRGB()}},cx=new Set([li,hh]),Bt={enabled:!0,_workingColorSpace:li,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(r){if(!cx.has(r))throw new Error(`Unsupported working color space, "${r}".`);this._workingColorSpace=r},convert:function(r,e,t){if(this.enabled===!1||e===t||!e||!t)return r;let n=tu[e].toReference,i=tu[t].fromReference;return i(n(r))},fromWorkingColorSpace:function(r,e){return this.convert(r,this._workingColorSpace,e)},toWorkingColorSpace:function(r,e){return this.convert(r,e,this._workingColorSpace)},getPrimaries:function(r){return tu[r].primaries},getTransfer:function(r){return r===cs?Uu:tu[r].transfer}};function oa(r){return r<.04045?r*.0773993808:Math.pow(r*.9478672986+.0521327014,2.4)}function pf(r){return r<.0031308?r*12.92:1.055*Math.pow(r,.41666)-.055}var ko,da=class{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{ko===void 0&&(ko=Bl("canvas")),ko.width=e.width,ko.height=e.height;let n=ko.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=ko}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){let t=Bl("canvas");t.width=e.width,t.height=e.height;let n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);let i=n.getImageData(0,0,e.width,e.height),s=i.data;for(let o=0;o0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==a0)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case rn:e.x=e.x-Math.floor(e.x);break;case un:e.x=e.x<0?0:1;break;case ua:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case rn:e.y=e.y-Math.floor(e.y);break;case un:e.y=e.y<0?0:1;break;case ua:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}};Dn.DEFAULT_IMAGE=null;Dn.DEFAULT_MAPPING=a0;Dn.DEFAULT_ANISOTROPY=1;var Ct=class r{constructor(e=0,t=0,n=0,i=1){r.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=i}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,i){return this.x=e,this.y=t,this.z=n,this.w=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*n+o[8]*i+o[12]*s,this.y=o[1]*t+o[5]*n+o[9]*i+o[13]*s,this.z=o[2]*t+o[6]*n+o[10]*i+o[14]*s,this.w=o[3]*t+o[7]*n+o[11]*i+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,i,s,l=e.elements,c=l[0],u=l[4],h=l[8],f=l[1],p=l[5],g=l[9],v=l[2],d=l[6],m=l[10];if(Math.abs(u-f)<.01&&Math.abs(h-v)<.01&&Math.abs(g-d)<.01){if(Math.abs(u+f)<.1&&Math.abs(h+v)<.1&&Math.abs(g+d)<.1&&Math.abs(c+p+m-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let y=(c+1)/2,x=(p+1)/2,w=(m+1)/2,I=(u+f)/4,C=(h+v)/4,P=(g+d)/4;return y>x&&y>w?y<.01?(n=0,i=.707106781,s=.707106781):(n=Math.sqrt(y),i=I/n,s=C/n):x>w?x<.01?(n=.707106781,i=0,s=.707106781):(i=Math.sqrt(x),n=I/i,s=P/i):w<.01?(n=.707106781,i=.707106781,s=0):(s=Math.sqrt(w),n=C/s,i=P/s),this.set(n,i,s,t),this}let _=Math.sqrt((d-g)*(d-g)+(h-v)*(h-v)+(f-u)*(f-u));return Math.abs(_)<.001&&(_=1),this.x=(d-g)/_,this.y=(h-v)/_,this.z=(f-u)/_,this.w=Math.acos((c+p+m-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},Kf=class extends ps{constructor(e=1,t=1,n={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new Ct(0,0,e,t),this.scissorTest=!1,this.viewport=new Ct(0,0,e,t);let i={width:e,height:t,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:bn,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0,count:1},n);let s=new Dn(i,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);s.flipY=!1,s.generateMipmaps=n.generateMipmaps,s.internalFormat=n.internalFormat,this.textures=[];let o=n.count;for(let a=0;a=0?1:-1,y=1-m*m;if(y>Number.EPSILON){let w=Math.sqrt(y),I=Math.atan2(w,m*_);d=Math.sin(d*I)/w,a=Math.sin(a*I)/w}let x=a*_;if(l=l*d+f*x,c=c*d+p*x,u=u*d+g*x,h=h*d+v*x,d===1-a){let w=1/Math.sqrt(l*l+c*c+u*u+h*h);l*=w,c*=w,u*=w,h*=w}}e[t]=l,e[t+1]=c,e[t+2]=u,e[t+3]=h}static multiplyQuaternionsFlat(e,t,n,i,s,o){let a=n[i],l=n[i+1],c=n[i+2],u=n[i+3],h=s[o],f=s[o+1],p=s[o+2],g=s[o+3];return e[t]=a*g+u*h+l*p-c*f,e[t+1]=l*g+u*f+c*h-a*p,e[t+2]=c*g+u*p+a*f-l*h,e[t+3]=u*g-a*h-l*f-c*p,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,i){return this._x=e,this._y=t,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){let n=e._x,i=e._y,s=e._z,o=e._order,a=Math.cos,l=Math.sin,c=a(n/2),u=a(i/2),h=a(s/2),f=l(n/2),p=l(i/2),g=l(s/2);switch(o){case"XYZ":this._x=f*u*h+c*p*g,this._y=c*p*h-f*u*g,this._z=c*u*g+f*p*h,this._w=c*u*h-f*p*g;break;case"YXZ":this._x=f*u*h+c*p*g,this._y=c*p*h-f*u*g,this._z=c*u*g-f*p*h,this._w=c*u*h+f*p*g;break;case"ZXY":this._x=f*u*h-c*p*g,this._y=c*p*h+f*u*g,this._z=c*u*g+f*p*h,this._w=c*u*h-f*p*g;break;case"ZYX":this._x=f*u*h-c*p*g,this._y=c*p*h+f*u*g,this._z=c*u*g-f*p*h,this._w=c*u*h+f*p*g;break;case"YZX":this._x=f*u*h+c*p*g,this._y=c*p*h+f*u*g,this._z=c*u*g-f*p*h,this._w=c*u*h-f*p*g;break;case"XZY":this._x=f*u*h-c*p*g,this._y=c*p*h-f*u*g,this._z=c*u*g+f*p*h,this._w=c*u*h+f*p*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let n=t/2,i=Math.sin(n);return this._x=e.x*i,this._y=e.y*i,this._z=e.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,n=t[0],i=t[4],s=t[8],o=t[1],a=t[5],l=t[9],c=t[2],u=t[6],h=t[10],f=n+a+h;if(f>0){let p=.5/Math.sqrt(f+1);this._w=.25/p,this._x=(u-l)*p,this._y=(s-c)*p,this._z=(o-i)*p}else if(n>a&&n>h){let p=2*Math.sqrt(1+n-a-h);this._w=(u-l)/p,this._x=.25*p,this._y=(i+o)/p,this._z=(s+c)/p}else if(a>h){let p=2*Math.sqrt(1+a-n-h);this._w=(s-c)/p,this._x=(i+o)/p,this._y=.25*p,this._z=(l+u)/p}else{let p=2*Math.sqrt(1+h-n-a);this._w=(o-i)/p,this._x=(s+c)/p,this._y=(l+u)/p,this._z=.25*p}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(kn(this.dot(e),-1,1)))}rotateTowards(e,t){let n=this.angleTo(e);if(n===0)return this;let i=Math.min(1,t/n);return this.slerp(e,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let n=e._x,i=e._y,s=e._z,o=e._w,a=t._x,l=t._y,c=t._z,u=t._w;return this._x=n*u+o*a+i*c-s*l,this._y=i*u+o*l+s*a-n*c,this._z=s*u+o*c+n*l-i*a,this._w=o*u-n*a-i*l-s*c,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);let n=this._x,i=this._y,s=this._z,o=this._w,a=o*e._w+n*e._x+i*e._y+s*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=n,this._y=i,this._z=s,this;let l=1-a*a;if(l<=Number.EPSILON){let p=1-t;return this._w=p*o+t*this._w,this._x=p*n+t*this._x,this._y=p*i+t*this._y,this._z=p*s+t*this._z,this.normalize(),this}let c=Math.sqrt(l),u=Math.atan2(c,a),h=Math.sin((1-t)*u)/c,f=Math.sin(t*u)/c;return this._w=o*h+this._w*f,this._x=n*h+this._x*f,this._y=i*h+this._y*f,this._z=s*h+this._z*f,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){let e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),i=Math.sqrt(1-n),s=Math.sqrt(n);return this.set(i*Math.sin(e),i*Math.cos(e),s*Math.sin(t),s*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},oe=class r{constructor(e=0,t=0,n=0){r.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(Qm.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Qm.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,n=this.y,i=this.z,s=e.elements;return this.x=s[0]*t+s[3]*n+s[6]*i,this.y=s[1]*t+s[4]*n+s[7]*i,this.z=s[2]*t+s[5]*n+s[8]*i,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,n=this.y,i=this.z,s=e.elements,o=1/(s[3]*t+s[7]*n+s[11]*i+s[15]);return this.x=(s[0]*t+s[4]*n+s[8]*i+s[12])*o,this.y=(s[1]*t+s[5]*n+s[9]*i+s[13])*o,this.z=(s[2]*t+s[6]*n+s[10]*i+s[14])*o,this}applyQuaternion(e){let t=this.x,n=this.y,i=this.z,s=e.x,o=e.y,a=e.z,l=e.w,c=2*(o*i-a*n),u=2*(a*t-s*i),h=2*(s*n-o*t);return this.x=t+l*c+o*h-a*u,this.y=n+l*u+a*c-s*h,this.z=i+l*h+s*u-o*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,n=this.y,i=this.z,s=e.elements;return this.x=s[0]*t+s[4]*n+s[8]*i,this.y=s[1]*t+s[5]*n+s[9]*i,this.z=s[2]*t+s[6]*n+s[10]*i,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){let n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let n=e.x,i=e.y,s=e.z,o=t.x,a=t.y,l=t.z;return this.x=i*l-s*a,this.y=s*o-n*l,this.z=n*a-i*o,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return gf.copy(this).projectOnVector(e),this.sub(gf)}reflect(e){return this.sub(gf.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let n=this.dot(e)/t;return Math.acos(kn(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return t*t+n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){let i=Math.sin(t)*e;return this.x=i*Math.sin(n),this.y=Math.cos(t)*e,this.z=i*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),i=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=i,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=Math.random()*Math.PI*2,t=Math.random()*2-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},gf=new oe,Qm=new sn,ji=class{constructor(e=new oe(1/0,1/0,1/0),t=new oe(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,zi),zi.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(wl),iu.subVectors(this.max,wl),Bo.subVectors(e.a,wl),Go.subVectors(e.b,wl),Vo.subVectors(e.c,wl),is.subVectors(Go,Bo),rs.subVectors(Vo,Go),Bs.subVectors(Bo,Vo);let t=[0,-is.z,is.y,0,-rs.z,rs.y,0,-Bs.z,Bs.y,is.z,0,-is.x,rs.z,0,-rs.x,Bs.z,0,-Bs.x,-is.y,is.x,0,-rs.y,rs.x,0,-Bs.y,Bs.x,0];return!vf(t,Bo,Go,Vo,iu)||(t=[1,0,0,0,1,0,0,0,1],!vf(t,Bo,Go,Vo,iu))?!1:(ru.crossVectors(is,rs),t=[ru.x,ru.y,ru.z],vf(t,Bo,Go,Vo,iu))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,zi).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(zi).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Nr[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Nr[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Nr[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Nr[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Nr[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Nr[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Nr[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Nr[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Nr),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Nr=[new oe,new oe,new oe,new oe,new oe,new oe,new oe,new oe],zi=new oe,nu=new ji,Bo=new oe,Go=new oe,Vo=new oe,is=new oe,rs=new oe,Bs=new oe,wl=new oe,iu=new oe,ru=new oe,Gs=new oe;function vf(r,e,t,n,i){for(let s=0,o=r.length-3;s<=o;s+=3){Gs.fromArray(r,s);let a=i.x*Math.abs(Gs.x)+i.y*Math.abs(Gs.y)+i.z*Math.abs(Gs.z),l=e.dot(Gs),c=t.dot(Gs),u=n.dot(Gs);if(Math.max(-Math.max(l,c,u),Math.min(l,c,u))>a)return!1}return!0}var fx=new ji,Cl=new oe,yf=new oe,qi=class{constructor(e=new oe,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let n=this.center;t!==void 0?n.copy(t):fx.setFromPoints(e).getCenter(n);let i=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Cl.subVectors(e,this.center);let t=Cl.lengthSq();if(t>this.radius*this.radius){let n=Math.sqrt(t),i=(n-this.radius)*.5;this.center.addScaledVector(Cl,i/n),this.radius+=i}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(yf.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Cl.copy(e.center).add(yf)),this.expandByPoint(Cl.copy(e.center).sub(yf))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}},Lr=new oe,xf=new oe,su=new oe,ss=new oe,_f=new oe,ou=new oe,Tf=new oe,Ks=class{constructor(e=new oe,t=new oe(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Lr)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=Lr.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Lr.copy(this.origin).addScaledVector(this.direction,t),Lr.distanceToSquared(e))}distanceSqToSegment(e,t,n,i){xf.copy(e).add(t).multiplyScalar(.5),su.copy(t).sub(e).normalize(),ss.copy(this.origin).sub(xf);let s=e.distanceTo(t)*.5,o=-this.direction.dot(su),a=ss.dot(this.direction),l=-ss.dot(su),c=ss.lengthSq(),u=Math.abs(1-o*o),h,f,p,g;if(u>0)if(h=o*l-a,f=o*a-l,g=s*u,h>=0)if(f>=-g)if(f<=g){let v=1/u;h*=v,f*=v,p=h*(h+o*f+2*a)+f*(o*h+f+2*l)+c}else f=s,h=Math.max(0,-(o*f+a)),p=-h*h+f*(f+2*l)+c;else f=-s,h=Math.max(0,-(o*f+a)),p=-h*h+f*(f+2*l)+c;else f<=-g?(h=Math.max(0,-(-o*s+a)),f=h>0?-s:Math.min(Math.max(-s,-l),s),p=-h*h+f*(f+2*l)+c):f<=g?(h=0,f=Math.min(Math.max(-s,-l),s),p=f*(f+2*l)+c):(h=Math.max(0,-(o*s+a)),f=h>0?s:Math.min(Math.max(-s,-l),s),p=-h*h+f*(f+2*l)+c);else f=o>0?-s:s,h=Math.max(0,-(o*f+a)),p=-h*h+f*(f+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,h),i&&i.copy(xf).addScaledVector(su,f),p}intersectSphere(e,t){Lr.subVectors(e.center,this.origin);let n=Lr.dot(this.direction),i=Lr.dot(Lr)-n*n,s=e.radius*e.radius;if(i>s)return null;let o=Math.sqrt(s-i),a=n-o,l=n+o;return l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){let n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,i,s,o,a,l,c=1/this.direction.x,u=1/this.direction.y,h=1/this.direction.z,f=this.origin;return c>=0?(n=(e.min.x-f.x)*c,i=(e.max.x-f.x)*c):(n=(e.max.x-f.x)*c,i=(e.min.x-f.x)*c),u>=0?(s=(e.min.y-f.y)*u,o=(e.max.y-f.y)*u):(s=(e.max.y-f.y)*u,o=(e.min.y-f.y)*u),n>o||s>i||((s>n||isNaN(n))&&(n=s),(o=0?(a=(e.min.z-f.z)*h,l=(e.max.z-f.z)*h):(a=(e.max.z-f.z)*h,l=(e.min.z-f.z)*h),n>l||a>i)||((a>n||n!==n)&&(n=a),(l=0?n:i,t)}intersectsBox(e){return this.intersectBox(e,Lr)!==null}intersectTriangle(e,t,n,i,s){_f.subVectors(t,e),ou.subVectors(n,e),Tf.crossVectors(_f,ou);let o=this.direction.dot(Tf),a;if(o>0){if(i)return null;a=1}else if(o<0)a=-1,o=-o;else return null;ss.subVectors(this.origin,e);let l=a*this.direction.dot(ou.crossVectors(ss,ou));if(l<0)return null;let c=a*this.direction.dot(_f.cross(ss));if(c<0||l+c>o)return null;let u=-a*ss.dot(Tf);return u<0?null:this.at(u/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Ye=class r{constructor(e,t,n,i,s,o,a,l,c,u,h,f,p,g,v,d){r.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,n,i,s,o,a,l,c,u,h,f,p,g,v,d)}set(e,t,n,i,s,o,a,l,c,u,h,f,p,g,v,d){let m=this.elements;return m[0]=e,m[4]=t,m[8]=n,m[12]=i,m[1]=s,m[5]=o,m[9]=a,m[13]=l,m[2]=c,m[6]=u,m[10]=h,m[14]=f,m[3]=p,m[7]=g,m[11]=v,m[15]=d,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new r().fromArray(this.elements)}copy(e){let t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){let t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,n=e.elements,i=1/zo.setFromMatrixColumn(e,0).length(),s=1/zo.setFromMatrixColumn(e,1).length(),o=1/zo.setFromMatrixColumn(e,2).length();return t[0]=n[0]*i,t[1]=n[1]*i,t[2]=n[2]*i,t[3]=0,t[4]=n[4]*s,t[5]=n[5]*s,t[6]=n[6]*s,t[7]=0,t[8]=n[8]*o,t[9]=n[9]*o,t[10]=n[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,n=e.x,i=e.y,s=e.z,o=Math.cos(n),a=Math.sin(n),l=Math.cos(i),c=Math.sin(i),u=Math.cos(s),h=Math.sin(s);if(e.order==="XYZ"){let f=o*u,p=o*h,g=a*u,v=a*h;t[0]=l*u,t[4]=-l*h,t[8]=c,t[1]=p+g*c,t[5]=f-v*c,t[9]=-a*l,t[2]=v-f*c,t[6]=g+p*c,t[10]=o*l}else if(e.order==="YXZ"){let f=l*u,p=l*h,g=c*u,v=c*h;t[0]=f+v*a,t[4]=g*a-p,t[8]=o*c,t[1]=o*h,t[5]=o*u,t[9]=-a,t[2]=p*a-g,t[6]=v+f*a,t[10]=o*l}else if(e.order==="ZXY"){let f=l*u,p=l*h,g=c*u,v=c*h;t[0]=f-v*a,t[4]=-o*h,t[8]=g+p*a,t[1]=p+g*a,t[5]=o*u,t[9]=v-f*a,t[2]=-o*c,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){let f=o*u,p=o*h,g=a*u,v=a*h;t[0]=l*u,t[4]=g*c-p,t[8]=f*c+v,t[1]=l*h,t[5]=v*c+f,t[9]=p*c-g,t[2]=-c,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){let f=o*l,p=o*c,g=a*l,v=a*c;t[0]=l*u,t[4]=v-f*h,t[8]=g*h+p,t[1]=h,t[5]=o*u,t[9]=-a*u,t[2]=-c*u,t[6]=p*h+g,t[10]=f-v*h}else if(e.order==="XZY"){let f=o*l,p=o*c,g=a*l,v=a*c;t[0]=l*u,t[4]=-h,t[8]=c*u,t[1]=f*h+v,t[5]=o*u,t[9]=p*h-g,t[2]=g*h-p,t[6]=a*u,t[10]=v*h+f}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(dx,e,px)}lookAt(e,t,n){let i=this.elements;return mi.subVectors(e,t),mi.lengthSq()===0&&(mi.z=1),mi.normalize(),os.crossVectors(n,mi),os.lengthSq()===0&&(Math.abs(n.z)===1?mi.x+=1e-4:mi.z+=1e-4,mi.normalize(),os.crossVectors(n,mi)),os.normalize(),au.crossVectors(mi,os),i[0]=os.x,i[4]=au.x,i[8]=mi.x,i[1]=os.y,i[5]=au.y,i[9]=mi.y,i[2]=os.z,i[6]=au.z,i[10]=mi.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let n=e.elements,i=t.elements,s=this.elements,o=n[0],a=n[4],l=n[8],c=n[12],u=n[1],h=n[5],f=n[9],p=n[13],g=n[2],v=n[6],d=n[10],m=n[14],_=n[3],y=n[7],x=n[11],w=n[15],I=i[0],C=i[4],P=i[8],E=i[12],M=i[1],L=i[5],N=i[9],O=i[13],B=i[2],ie=i[6],$=i[10],te=i[14],W=i[3],ae=i[7],de=i[11],ye=i[15];return s[0]=o*I+a*M+l*B+c*W,s[4]=o*C+a*L+l*ie+c*ae,s[8]=o*P+a*N+l*$+c*de,s[12]=o*E+a*O+l*te+c*ye,s[1]=u*I+h*M+f*B+p*W,s[5]=u*C+h*L+f*ie+p*ae,s[9]=u*P+h*N+f*$+p*de,s[13]=u*E+h*O+f*te+p*ye,s[2]=g*I+v*M+d*B+m*W,s[6]=g*C+v*L+d*ie+m*ae,s[10]=g*P+v*N+d*$+m*de,s[14]=g*E+v*O+d*te+m*ye,s[3]=_*I+y*M+x*B+w*W,s[7]=_*C+y*L+x*ie+w*ae,s[11]=_*P+y*N+x*$+w*de,s[15]=_*E+y*O+x*te+w*ye,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],n=e[4],i=e[8],s=e[12],o=e[1],a=e[5],l=e[9],c=e[13],u=e[2],h=e[6],f=e[10],p=e[14],g=e[3],v=e[7],d=e[11],m=e[15];return g*(+s*l*h-i*c*h-s*a*f+n*c*f+i*a*p-n*l*p)+v*(+t*l*p-t*c*f+s*o*f-i*o*p+i*c*u-s*l*u)+d*(+t*c*h-t*a*p-s*o*h+n*o*p+s*a*u-n*c*u)+m*(-i*a*u-t*l*h+t*a*f+i*o*h-n*o*f+n*l*u)}transpose(){let e=this.elements,t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,n){let i=this.elements;return e.isVector3?(i[12]=e.x,i[13]=e.y,i[14]=e.z):(i[12]=e,i[13]=t,i[14]=n),this}invert(){let e=this.elements,t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],u=e[8],h=e[9],f=e[10],p=e[11],g=e[12],v=e[13],d=e[14],m=e[15],_=h*d*c-v*f*c+v*l*p-a*d*p-h*l*m+a*f*m,y=g*f*c-u*d*c-g*l*p+o*d*p+u*l*m-o*f*m,x=u*v*c-g*h*c+g*a*p-o*v*p-u*a*m+o*h*m,w=g*h*l-u*v*l-g*a*f+o*v*f+u*a*d-o*h*d,I=t*_+n*y+i*x+s*w;if(I===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let C=1/I;return e[0]=_*C,e[1]=(v*f*s-h*d*s-v*i*p+n*d*p+h*i*m-n*f*m)*C,e[2]=(a*d*s-v*l*s+v*i*c-n*d*c-a*i*m+n*l*m)*C,e[3]=(h*l*s-a*f*s-h*i*c+n*f*c+a*i*p-n*l*p)*C,e[4]=y*C,e[5]=(u*d*s-g*f*s+g*i*p-t*d*p-u*i*m+t*f*m)*C,e[6]=(g*l*s-o*d*s-g*i*c+t*d*c+o*i*m-t*l*m)*C,e[7]=(o*f*s-u*l*s+u*i*c-t*f*c-o*i*p+t*l*p)*C,e[8]=x*C,e[9]=(g*h*s-u*v*s-g*n*p+t*v*p+u*n*m-t*h*m)*C,e[10]=(o*v*s-g*a*s+g*n*c-t*v*c-o*n*m+t*a*m)*C,e[11]=(u*a*s-o*h*s-u*n*c+t*h*c+o*n*p-t*a*p)*C,e[12]=w*C,e[13]=(u*v*i-g*h*i+g*n*f-t*v*f-u*n*d+t*h*d)*C,e[14]=(g*a*i-o*v*i-g*n*l+t*v*l+o*n*d-t*a*d)*C,e[15]=(o*h*i-u*a*i+u*n*l-t*h*l-o*n*f+t*a*f)*C,this}scale(e){let t=this.elements,n=e.x,i=e.y,s=e.z;return t[0]*=n,t[4]*=i,t[8]*=s,t[1]*=n,t[5]*=i,t[9]*=s,t[2]*=n,t[6]*=i,t[10]*=s,t[3]*=n,t[7]*=i,t[11]*=s,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],i=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,i))}makeTranslation(e,t,n){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let n=Math.cos(t),i=Math.sin(t),s=1-n,o=e.x,a=e.y,l=e.z,c=s*o,u=s*a;return this.set(c*o+n,c*a-i*l,c*l+i*a,0,c*a+i*l,u*a+n,u*l-i*o,0,c*l-i*a,u*l+i*o,s*l*l+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,i,s,o){return this.set(1,n,s,0,e,1,o,0,t,i,1,0,0,0,0,1),this}compose(e,t,n){let i=this.elements,s=t._x,o=t._y,a=t._z,l=t._w,c=s+s,u=o+o,h=a+a,f=s*c,p=s*u,g=s*h,v=o*u,d=o*h,m=a*h,_=l*c,y=l*u,x=l*h,w=n.x,I=n.y,C=n.z;return i[0]=(1-(v+m))*w,i[1]=(p+x)*w,i[2]=(g-y)*w,i[3]=0,i[4]=(p-x)*I,i[5]=(1-(f+m))*I,i[6]=(d+_)*I,i[7]=0,i[8]=(g+y)*C,i[9]=(d-_)*C,i[10]=(1-(f+v))*C,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this}decompose(e,t,n){let i=this.elements,s=zo.set(i[0],i[1],i[2]).length(),o=zo.set(i[4],i[5],i[6]).length(),a=zo.set(i[8],i[9],i[10]).length();this.determinant()<0&&(s=-s),e.x=i[12],e.y=i[13],e.z=i[14],Hi.copy(this);let c=1/s,u=1/o,h=1/a;return Hi.elements[0]*=c,Hi.elements[1]*=c,Hi.elements[2]*=c,Hi.elements[4]*=u,Hi.elements[5]*=u,Hi.elements[6]*=u,Hi.elements[8]*=h,Hi.elements[9]*=h,Hi.elements[10]*=h,t.setFromRotationMatrix(Hi),n.x=s,n.y=o,n.z=a,this}makePerspective(e,t,n,i,s,o,a=Vr){let l=this.elements,c=2*s/(t-e),u=2*s/(n-i),h=(t+e)/(t-e),f=(n+i)/(n-i),p,g;if(a===Vr)p=-(o+s)/(o-s),g=-2*o*s/(o-s);else if(a===Gu)p=-o/(o-s),g=-o*s/(o-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=c,l[4]=0,l[8]=h,l[12]=0,l[1]=0,l[5]=u,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=p,l[14]=g,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,n,i,s,o,a=Vr){let l=this.elements,c=1/(t-e),u=1/(n-i),h=1/(o-s),f=(t+e)*c,p=(n+i)*u,g,v;if(a===Vr)g=(o+s)*h,v=-2*h;else if(a===Gu)g=s*h,v=-1*h;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-f,l[1]=0,l[5]=2*u,l[9]=0,l[13]=-p,l[2]=0,l[6]=0,l[10]=v,l[14]=-g,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){let t=this.elements,n=e.elements;for(let i=0;i<16;i++)if(t[i]!==n[i])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){let n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}},zo=new oe,Hi=new Ye,dx=new oe(0,0,0),px=new oe(1,1,1),os=new oe,au=new oe,mi=new oe,eg=new Ye,tg=new sn,hn=class r{constructor(e=0,t=0,n=0,i=r.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=i}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,i=this._order){return this._x=e,this._y=t,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){let i=e.elements,s=i[0],o=i[4],a=i[8],l=i[1],c=i[5],u=i[9],h=i[2],f=i[6],p=i[10];switch(t){case"XYZ":this._y=Math.asin(kn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-u,p),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(f,c),this._z=0);break;case"YXZ":this._x=Math.asin(-kn(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(a,p),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-h,s),this._z=0);break;case"ZXY":this._x=Math.asin(kn(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-h,p),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-kn(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(f,p),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-o,c));break;case"YZX":this._z=Math.asin(kn(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,c),this._y=Math.atan2(-h,s)):(this._x=0,this._y=Math.atan2(a,p));break;case"XZY":this._z=Math.asin(-kn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(f,c),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-u,p),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,n===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return eg.makeRotationFromQuaternion(e),this.setFromRotationMatrix(eg,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return tg.setFromEuler(this),this.setFromQuaternion(tg,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};hn.DEFAULT_ORDER="XYZ";var Gl=class{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let n=0;n0&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),i.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(i.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(i.type="BatchedMesh",i.perObjectFrustumCulled=this.perObjectFrustumCulled,i.sortObjects=this.sortObjects,i.drawRanges=this._drawRanges,i.reservedRanges=this._reservedRanges,i.visibility=this._visibility,i.active=this._active,i.bounds=this._bounds.map(a=>({boxInitialized:a.boxInitialized,boxMin:a.box.min.toArray(),boxMax:a.box.max.toArray(),sphereInitialized:a.sphereInitialized,sphereRadius:a.sphere.radius,sphereCenter:a.sphere.center.toArray()})),i.maxGeometryCount=this._maxGeometryCount,i.maxVertexCount=this._maxVertexCount,i.maxIndexCount=this._maxIndexCount,i.geometryInitialized=this._geometryInitialized,i.geometryCount=this._geometryCount,i.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(i.boundingSphere={center:i.boundingSphere.center.toArray(),radius:i.boundingSphere.radius}),this.boundingBox!==null&&(i.boundingBox={min:i.boundingBox.min.toArray(),max:i.boundingBox.max.toArray()}));function s(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(i.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=s(e.geometries,this.geometry);let a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){let l=a.shapes;if(Array.isArray(l))for(let c=0,u=l.length;c0){i.children=[];for(let a=0;a0){i.animations=[];for(let a=0;a0&&(n.geometries=a),l.length>0&&(n.materials=l),c.length>0&&(n.textures=c),u.length>0&&(n.images=u),h.length>0&&(n.shapes=h),f.length>0&&(n.skeletons=f),p.length>0&&(n.animations=p),g.length>0&&(n.nodes=g)}return n.object=i,n;function o(a){let l=[];for(let c in a){let u=a[c];delete u.metadata,l.push(u)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(s)):i.set(0,0,0)}static getBarycoord(e,t,n,i,s){Wi.subVectors(i,t),Dr.subVectors(n,t),Ef.subVectors(e,t);let o=Wi.dot(Wi),a=Wi.dot(Dr),l=Wi.dot(Ef),c=Dr.dot(Dr),u=Dr.dot(Ef),h=o*c-a*a;if(h===0)return s.set(0,0,0),null;let f=1/h,p=(c*l-a*u)*f,g=(o*u-a*l)*f;return s.set(1-p-g,g,p)}static containsPoint(e,t,n,i){return this.getBarycoord(e,t,n,i,Fr)===null?!1:Fr.x>=0&&Fr.y>=0&&Fr.x+Fr.y<=1}static getInterpolation(e,t,n,i,s,o,a,l){return this.getBarycoord(e,t,n,i,Fr)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,Fr.x),l.addScaledVector(o,Fr.y),l.addScaledVector(a,Fr.z),l)}static isFrontFacing(e,t,n,i){return Wi.subVectors(n,t),Dr.subVectors(e,t),Wi.cross(Dr).dot(i)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,i){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[i]),this}setFromAttributeAndIndices(e,t,n,i){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,i),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Wi.subVectors(this.c,this.b),Dr.subVectors(this.a,this.b),Wi.cross(Dr).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return r.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return r.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,n,i,s){return r.getInterpolation(e,this.a,this.b,this.c,t,n,i,s)}containsPoint(e){return r.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return r.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let n=this.a,i=this.b,s=this.c,o,a;Xo.subVectors(i,n),jo.subVectors(s,n),bf.subVectors(e,n);let l=Xo.dot(bf),c=jo.dot(bf);if(l<=0&&c<=0)return t.copy(n);Sf.subVectors(e,i);let u=Xo.dot(Sf),h=jo.dot(Sf);if(u>=0&&h<=u)return t.copy(i);let f=l*h-u*c;if(f<=0&&l>=0&&u<=0)return o=l/(l-u),t.copy(n).addScaledVector(Xo,o);Af.subVectors(e,s);let p=Xo.dot(Af),g=jo.dot(Af);if(g>=0&&p<=g)return t.copy(s);let v=p*c-l*g;if(v<=0&&c>=0&&g<=0)return a=c/(c-g),t.copy(n).addScaledVector(jo,a);let d=u*g-p*h;if(d<=0&&h-u>=0&&p-g>=0)return ag.subVectors(s,i),a=(h-u)/(h-u+(p-g)),t.copy(i).addScaledVector(ag,a);let m=1/(d+v+f);return o=v*m,a=f*m,t.copy(n).addScaledVector(Xo,o).addScaledVector(jo,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},y0={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},as={h:0,s:0,l:0},cu={h:0,s:0,l:0};function wf(r,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+(e-r)*6*t:t<1/2?e:t<2/3?r+(e-r)*6*(2/3-t):r}var Ve=class{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){if(t===void 0&&n===void 0){let i=e;i&&i.isColor?this.copy(i):typeof i=="number"?this.setHex(i):typeof i=="string"&&this.setStyle(i)}else this.setRGB(e,t,n);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=jt){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Bt.toWorkingColorSpace(this,t),this}setRGB(e,t,n,i=Bt.workingColorSpace){return this.r=e,this.g=t,this.b=n,Bt.toWorkingColorSpace(this,i),this}setHSL(e,t,n,i=Bt.workingColorSpace){if(e=Nd(e,1),t=kn(t,0,1),n=kn(n,0,1),t===0)this.r=this.g=this.b=n;else{let s=n<=.5?n*(1+t):n+t-n*t,o=2*n-s;this.r=wf(o,s,e+1/3),this.g=wf(o,s,e),this.b=wf(o,s,e-1/3)}return Bt.toWorkingColorSpace(this,i),this}setStyle(e,t=jt){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let i;if(i=/^(\w+)\(([^\)]*)\)/.exec(e)){let s,o=i[1],a=i[2];switch(o){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(e)){let s=i[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=jt){let n=y0[e.toLowerCase()];return n!==void 0?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=oa(e.r),this.g=oa(e.g),this.b=oa(e.b),this}copyLinearToSRGB(e){return this.r=pf(e.r),this.g=pf(e.g),this.b=pf(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=jt){return Bt.fromWorkingColorSpace(Hn.copy(this),e),Math.round(kn(Hn.r*255,0,255))*65536+Math.round(kn(Hn.g*255,0,255))*256+Math.round(kn(Hn.b*255,0,255))}getHexString(e=jt){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Bt.workingColorSpace){Bt.fromWorkingColorSpace(Hn.copy(this),t);let n=Hn.r,i=Hn.g,s=Hn.b,o=Math.max(n,i,s),a=Math.min(n,i,s),l,c,u=(a+o)/2;if(a===o)l=0,c=0;else{let h=o-a;switch(c=u<=.5?h/(o+a):h/(2-o-a),o){case n:l=(i-s)/h+(i0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let n=e[t];if(n===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}let i=this[t];if(i===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[t]=n}}toJSON(e){let t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});let n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==ia&&(n.blending=this.blending),this.side!==wi&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==jf&&(n.blendSrc=this.blendSrc),this.blendDst!==qf&&(n.blendDst=this.blendDst),this.blendEquation!==js&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==Lu&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==jm&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==Uo&&(n.stencilFail=this.stencilFail),this.stencilZFail!==Uo&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==Uo&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function i(s){let o=[];for(let a in s){let l=s[a];delete l.metadata,o.push(l)}return o}if(t){let s=i(e.textures),o=i(e.images);s.length>0&&(n.textures=s),o.length>0&&(n.images=o)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,n=null;if(t!==null){let i=t.length;n=new Array(i);for(let s=0;s!==i;++s)n[s]=t[s].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},Ci=class extends Yi{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ve(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new hn,this.combine=lh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}};var _n=new oe,uu=new Ce,Gn=class{constructor(e,t,n=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n,this.usage=qm,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Gr,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return lx("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let i=0,s=this.itemSize;i0&&(e.userData=this.userData),this.parameters!==void 0){let l=this.parameters;for(let c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let n=this.attributes;for(let l in n){let c=n[l];e.data.attributes[l]=c.toJSON(e.data)}let i={},s=!1;for(let l in this.morphAttributes){let c=this.morphAttributes[l],u=[];for(let h=0,f=c.length;h0&&(i[l]=u,s=!0)}s&&(e.data.morphAttributes=i,e.data.morphTargetsRelative=this.morphTargetsRelative);let o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));let a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let n=e.index;n!==null&&this.setIndex(n.clone(t));let i=e.attributes;for(let c in i){let u=i[c];this.setAttribute(c,u.clone(t))}let s=e.morphAttributes;for(let c in s){let u=[],h=s[c];for(let f=0,p=h.length;f0){let i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;s(e.far-e.near)**2))&&(lg.copy(s).invert(),Vs.copy(e.ray).applyMatrix4(lg),!(n.boundingBox!==null&&Vs.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(e,t,Vs)))}_computeIntersections(e,t,n){let i,s=this.geometry,o=this.material,a=s.index,l=s.attributes.position,c=s.attributes.uv,u=s.attributes.uv1,h=s.attributes.normal,f=s.groups,p=s.drawRange;if(a!==null)if(Array.isArray(o))for(let g=0,v=f.length;gt.far?null:{distance:c,point:vu.clone(),object:r}}function yu(r,e,t,n,i,s,o,a,l,c){r.getVertexPosition(a,Yo),r.getVertexPosition(l,Ko),r.getVertexPosition(c,Zo);let u=Tx(r,e,t,n,Yo,Ko,Zo,gu);if(u){i&&(du.fromBufferAttribute(i,a),pu.fromBufferAttribute(i,l),mu.fromBufferAttribute(i,c),u.uv=Ys.getInterpolation(gu,Yo,Ko,Zo,du,pu,mu,new Ce)),s&&(du.fromBufferAttribute(s,a),pu.fromBufferAttribute(s,l),mu.fromBufferAttribute(s,c),u.uv1=Ys.getInterpolation(gu,Yo,Ko,Zo,du,pu,mu,new Ce)),o&&(ug.fromBufferAttribute(o,a),hg.fromBufferAttribute(o,l),fg.fromBufferAttribute(o,c),u.normal=Ys.getInterpolation(gu,Yo,Ko,Zo,ug,hg,fg,new oe),u.normal.dot(n.direction)>0&&u.normal.multiplyScalar(-1));let h={a,b:l,c,normal:new oe,materialIndex:0};Ys.getNormal(Yo,Ko,Zo,h.normal),u.face=h}return u}var Zs=class r extends St{constructor(e=1,t=1,n=1,i=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:i,heightSegments:s,depthSegments:o};let a=this;i=Math.floor(i),s=Math.floor(s),o=Math.floor(o);let l=[],c=[],u=[],h=[],f=0,p=0;g("z","y","x",-1,-1,n,t,e,o,s,0),g("z","y","x",1,-1,n,t,-e,o,s,1),g("x","z","y",1,1,e,n,t,i,o,2),g("x","z","y",1,-1,e,n,-t,i,o,3),g("x","y","z",1,-1,e,t,n,i,s,4),g("x","y","z",-1,-1,e,t,-n,i,s,5),this.setIndex(l),this.setAttribute("position",new ze(c,3)),this.setAttribute("normal",new ze(u,3)),this.setAttribute("uv",new ze(h,2));function g(v,d,m,_,y,x,w,I,C,P,E){let M=x/C,L=w/P,N=x/2,O=w/2,B=I/2,ie=C+1,$=P+1,te=0,W=0,ae=new oe;for(let de=0;de<$;de++){let ye=de*L-O;for(let Me=0;Me0?1:-1,u.push(ae.x,ae.y,ae.z),h.push(Me/C),h.push(1-de/P),te+=1}}for(let de=0;de0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let n={};for(let i in this.extensions)this.extensions[i]===!0&&(n[i]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}},Wu=class extends Rt{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Ye,this.projectionMatrix=new Ye,this.projectionMatrixInverse=new Ye,this.coordinateSystem=Vr}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},ls=new oe,dg=new Ce,pg=new Ce,en=class extends Wu{constructor(e=50,t=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=fa*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(sa*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return fa*2*Math.atan(Math.tan(sa*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,n){ls.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(ls.x,ls.y).multiplyScalar(-e/ls.z),ls.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(ls.x,ls.y).multiplyScalar(-e/ls.z)}getViewSize(e,t){return this.getViewBounds(e,dg,pg),t.subVectors(pg,dg)}setViewOffset(e,t,n,i,s,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(sa*.5*this.fov)/this.zoom,n=2*t,i=this.aspect*n,s=-.5*i,o=this.view;if(this.view!==null&&this.view.enabled){let l=o.fullWidth,c=o.fullHeight;s+=o.offsetX*i/l,t-=o.offsetY*n/c,i*=o.width/l,n*=o.height/c}let a=this.filmOffset;a!==0&&(s+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+i,t,t-n,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}},Jo=-90,$o=1,Jf=class extends Rt{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;let i=new en(Jo,$o,e,t);i.layers=this.layers,this.add(i);let s=new en(Jo,$o,e,t);s.layers=this.layers,this.add(s);let o=new en(Jo,$o,e,t);o.layers=this.layers,this.add(o);let a=new en(Jo,$o,e,t);a.layers=this.layers,this.add(a);let l=new en(Jo,$o,e,t);l.layers=this.layers,this.add(l);let c=new en(Jo,$o,e,t);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[n,i,s,o,a,l]=t;for(let c of t)this.remove(c);if(e===Vr)n.up.set(0,1,0),n.lookAt(1,0,0),i.up.set(0,1,0),i.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===Gu)n.up.set(0,-1,0),n.lookAt(-1,0,0),i.up.set(0,-1,0),i.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(let c of t)this.add(c),c.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();let{renderTarget:n,activeMipmapLevel:i}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[s,o,a,l,c,u]=this.children,h=e.getRenderTarget(),f=e.getActiveCubeFace(),p=e.getActiveMipmapLevel(),g=e.xr.enabled;e.xr.enabled=!1;let v=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0,i),e.render(t,s),e.setRenderTarget(n,1,i),e.render(t,o),e.setRenderTarget(n,2,i),e.render(t,a),e.setRenderTarget(n,3,i),e.render(t,l),e.setRenderTarget(n,4,i),e.render(t,c),n.texture.generateMipmaps=v,e.setRenderTarget(n,5,i),e.render(t,u),e.setRenderTarget(h,f,p),e.xr.enabled=g,n.texture.needsPMREMUpdate=!0}},Vl=class extends Dn{constructor(e,t,n,i,s,o,a,l,c,u){e=e!==void 0?e:[],t=t!==void 0?t:la,super(e,t,n,i,s,o,a,l,c,u),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},$f=class extends zr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let n={width:e,height:e,depth:1},i=[n,n,n,n,n,n];this.texture=new Vl(i,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:bn}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let n={uniforms:{tEquirect:{value:null}},vertexShader:`
+
+				varying vec3 vWorldDirection;
+
+				vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
+
+					return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
+
+				}
+
+				void main() {
+
+					vWorldDirection = transformDirection( position, modelMatrix );
+
+					#include 
+					#include 
+
+				}
+			`,fragmentShader:`
+
+				uniform sampler2D tEquirect;
+
+				varying vec3 vWorldDirection;
+
+				#include 
+
+				void main() {
+
+					vec3 direction = normalize( vWorldDirection );
+
+					vec2 sampleUV = equirectUv( direction );
+
+					gl_FragColor = texture2D( tEquirect, sampleUV );
+
+				}
+			`},i=new Zs(5,5,5),s=new pr({name:"CubemapFromEquirect",uniforms:ma(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Tn,blending:us});s.uniforms.tEquirect.value=t;let o=new Pt(i,s),a=t.minFilter;return t.minFilter===vi&&(t.minFilter=bn),new Jf(1,10,this).update(e,o),t.minFilter=a,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,n,i){let s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,n,i);e.setRenderTarget(s)}},If=new oe,Ax=new oe,wx=new ft,Br=class{constructor(e=new oe(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,i){return this.normal.set(e,t,n),this.constant=i,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){let i=If.subVectors(n,t).cross(Ax.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(i,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){let e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){let n=e.delta(If),i=this.normal.dot(n);if(i===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;let s=-(e.start.dot(this.normal)+this.constant)/i;return s<0||s>1?null:t.copy(e.start).addScaledVector(n,s)}intersectsLine(e){let t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){let n=t||wx.getNormalMatrix(e),i=this.coplanarPoint(If).applyMatrix4(e),s=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}},zs=new qi,xu=new oe,zl=class{constructor(e=new Br,t=new Br,n=new Br,i=new Br,s=new Br,o=new Br){this.planes=[e,t,n,i,s,o]}set(e,t,n,i,s,o){let a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(i),a[4].copy(s),a[5].copy(o),this}copy(e){let t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=Vr){let n=this.planes,i=e.elements,s=i[0],o=i[1],a=i[2],l=i[3],c=i[4],u=i[5],h=i[6],f=i[7],p=i[8],g=i[9],v=i[10],d=i[11],m=i[12],_=i[13],y=i[14],x=i[15];if(n[0].setComponents(l-s,f-c,d-p,x-m).normalize(),n[1].setComponents(l+s,f+c,d+p,x+m).normalize(),n[2].setComponents(l+o,f+u,d+g,x+_).normalize(),n[3].setComponents(l-o,f-u,d-g,x-_).normalize(),n[4].setComponents(l-a,f-h,d-v,x-y).normalize(),t===Vr)n[5].setComponents(l+a,f+h,d+v,x+y).normalize();else if(t===Gu)n[5].setComponents(a,h,v,y).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),zs.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{let t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),zs.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(zs)}intersectsSprite(e){return zs.center.set(0,0,0),zs.radius=.7071067811865476,zs.applyMatrix4(e.matrixWorld),this.intersectsSphere(zs)}intersectsSphere(e){let t=this.planes,n=e.center,i=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(n)0?e.max.x:e.min.x,xu.y=i.normal.y>0?e.max.y:e.min.y,xu.z=i.normal.z>0?e.max.z:e.min.z,i.distanceToPoint(xu)<0)return!1}return!0}containsPoint(e){let t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}};function _0(){let r=null,e=!1,t=null,n=null;function i(s,o){t(s,o),n=r.requestAnimationFrame(i)}return{start:function(){e!==!0&&t!==null&&(n=r.requestAnimationFrame(i),e=!0)},stop:function(){r.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){r=s}}}function Cx(r){let e=new WeakMap;function t(a,l){let c=a.array,u=a.usage,h=c.byteLength,f=r.createBuffer();r.bindBuffer(l,f),r.bufferData(l,c,u),a.onUploadCallback();let p;if(c instanceof Float32Array)p=r.FLOAT;else if(c instanceof Uint16Array)a.isFloat16BufferAttribute?p=r.HALF_FLOAT:p=r.UNSIGNED_SHORT;else if(c instanceof Int16Array)p=r.SHORT;else if(c instanceof Uint32Array)p=r.UNSIGNED_INT;else if(c instanceof Int32Array)p=r.INT;else if(c instanceof Int8Array)p=r.BYTE;else if(c instanceof Uint8Array)p=r.UNSIGNED_BYTE;else if(c instanceof Uint8ClampedArray)p=r.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+c);return{buffer:f,type:p,bytesPerElement:c.BYTES_PER_ELEMENT,version:a.version,size:h}}function n(a,l,c){let u=l.array,h=l._updateRange,f=l.updateRanges;if(r.bindBuffer(c,a),h.count===-1&&f.length===0&&r.bufferSubData(c,0,u),f.length!==0){for(let p=0,g=f.length;p 0
+	vec4 plane;
+	#ifdef ALPHA_TO_COVERAGE
+		float distanceToPlane, distanceGradient;
+		float clipOpacity = 1.0;
+		#pragma unroll_loop_start
+		for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
+			plane = clippingPlanes[ i ];
+			distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
+			distanceGradient = fwidth( distanceToPlane ) / 2.0;
+			clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
+			if ( clipOpacity == 0.0 ) discard;
+		}
+		#pragma unroll_loop_end
+		#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
+			float unionClipOpacity = 1.0;
+			#pragma unroll_loop_start
+			for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
+				plane = clippingPlanes[ i ];
+				distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
+				distanceGradient = fwidth( distanceToPlane ) / 2.0;
+				unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
+			}
+			#pragma unroll_loop_end
+			clipOpacity *= 1.0 - unionClipOpacity;
+		#endif
+		diffuseColor.a *= clipOpacity;
+		if ( diffuseColor.a == 0.0 ) discard;
+	#else
+		#pragma unroll_loop_start
+		for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
+			plane = clippingPlanes[ i ];
+			if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;
+		}
+		#pragma unroll_loop_end
+		#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
+			bool clipped = true;
+			#pragma unroll_loop_start
+			for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
+				plane = clippingPlanes[ i ];
+				clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;
+			}
+			#pragma unroll_loop_end
+			if ( clipped ) discard;
+		#endif
+	#endif
+#endif`,Xx=`#if NUM_CLIPPING_PLANES > 0
+	varying vec3 vClipPosition;
+	uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];
+#endif`,jx=`#if NUM_CLIPPING_PLANES > 0
+	varying vec3 vClipPosition;
+#endif`,qx=`#if NUM_CLIPPING_PLANES > 0
+	vClipPosition = - mvPosition.xyz;
+#endif`,Yx=`#if defined( USE_COLOR_ALPHA )
+	diffuseColor *= vColor;
+#elif defined( USE_COLOR )
+	diffuseColor.rgb *= vColor;
+#endif`,Kx=`#if defined( USE_COLOR_ALPHA )
+	varying vec4 vColor;
+#elif defined( USE_COLOR )
+	varying vec3 vColor;
+#endif`,Zx=`#if defined( USE_COLOR_ALPHA )
+	varying vec4 vColor;
+#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )
+	varying vec3 vColor;
+#endif`,Jx=`#if defined( USE_COLOR_ALPHA )
+	vColor = vec4( 1.0 );
+#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )
+	vColor = vec3( 1.0 );
+#endif
+#ifdef USE_COLOR
+	vColor *= color;
+#endif
+#ifdef USE_INSTANCING_COLOR
+	vColor.xyz *= instanceColor.xyz;
+#endif`,$x=`#define PI 3.141592653589793
+#define PI2 6.283185307179586
+#define PI_HALF 1.5707963267948966
+#define RECIPROCAL_PI 0.3183098861837907
+#define RECIPROCAL_PI2 0.15915494309189535
+#define EPSILON 1e-6
+#ifndef saturate
+#define saturate( a ) clamp( a, 0.0, 1.0 )
+#endif
+#define whiteComplement( a ) ( 1.0 - saturate( a ) )
+float pow2( const in float x ) { return x*x; }
+vec3 pow2( const in vec3 x ) { return x*x; }
+float pow3( const in float x ) { return x*x*x; }
+float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
+float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }
+float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }
+highp float rand( const in vec2 uv ) {
+	const highp float a = 12.9898, b = 78.233, c = 43758.5453;
+	highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
+	return fract( sin( sn ) * c );
+}
+#ifdef HIGH_PRECISION
+	float precisionSafeLength( vec3 v ) { return length( v ); }
+#else
+	float precisionSafeLength( vec3 v ) {
+		float maxComponent = max3( abs( v ) );
+		return length( v / maxComponent ) * maxComponent;
+	}
+#endif
+struct IncidentLight {
+	vec3 color;
+	vec3 direction;
+	bool visible;
+};
+struct ReflectedLight {
+	vec3 directDiffuse;
+	vec3 directSpecular;
+	vec3 indirectDiffuse;
+	vec3 indirectSpecular;
+};
+#ifdef USE_ALPHAHASH
+	varying vec3 vPosition;
+#endif
+vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
+	return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
+}
+vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {
+	return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );
+}
+mat3 transposeMat3( const in mat3 m ) {
+	mat3 tmp;
+	tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );
+	tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );
+	tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );
+	return tmp;
+}
+float luminance( const in vec3 rgb ) {
+	const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );
+	return dot( weights, rgb );
+}
+bool isPerspectiveMatrix( mat4 m ) {
+	return m[ 2 ][ 3 ] == - 1.0;
+}
+vec2 equirectUv( in vec3 dir ) {
+	float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
+	float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
+	return vec2( u, v );
+}
+vec3 BRDF_Lambert( const in vec3 diffuseColor ) {
+	return RECIPROCAL_PI * diffuseColor;
+}
+vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {
+	float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
+	return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
+}
+float F_Schlick( const in float f0, const in float f90, const in float dotVH ) {
+	float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
+	return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
+} // validated`,Qx=`#ifdef ENVMAP_TYPE_CUBE_UV
+	#define cubeUV_minMipLevel 4.0
+	#define cubeUV_minTileSize 16.0
+	float getFace( vec3 direction ) {
+		vec3 absDirection = abs( direction );
+		float face = - 1.0;
+		if ( absDirection.x > absDirection.z ) {
+			if ( absDirection.x > absDirection.y )
+				face = direction.x > 0.0 ? 0.0 : 3.0;
+			else
+				face = direction.y > 0.0 ? 1.0 : 4.0;
+		} else {
+			if ( absDirection.z > absDirection.y )
+				face = direction.z > 0.0 ? 2.0 : 5.0;
+			else
+				face = direction.y > 0.0 ? 1.0 : 4.0;
+		}
+		return face;
+	}
+	vec2 getUV( vec3 direction, float face ) {
+		vec2 uv;
+		if ( face == 0.0 ) {
+			uv = vec2( direction.z, direction.y ) / abs( direction.x );
+		} else if ( face == 1.0 ) {
+			uv = vec2( - direction.x, - direction.z ) / abs( direction.y );
+		} else if ( face == 2.0 ) {
+			uv = vec2( - direction.x, direction.y ) / abs( direction.z );
+		} else if ( face == 3.0 ) {
+			uv = vec2( - direction.z, direction.y ) / abs( direction.x );
+		} else if ( face == 4.0 ) {
+			uv = vec2( - direction.x, direction.z ) / abs( direction.y );
+		} else {
+			uv = vec2( direction.x, direction.y ) / abs( direction.z );
+		}
+		return 0.5 * ( uv + 1.0 );
+	}
+	vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {
+		float face = getFace( direction );
+		float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );
+		mipInt = max( mipInt, cubeUV_minMipLevel );
+		float faceSize = exp2( mipInt );
+		highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;
+		if ( face > 2.0 ) {
+			uv.y += faceSize;
+			face -= 3.0;
+		}
+		uv.x += face * faceSize;
+		uv.x += filterInt * 3.0 * cubeUV_minTileSize;
+		uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );
+		uv.x *= CUBEUV_TEXEL_WIDTH;
+		uv.y *= CUBEUV_TEXEL_HEIGHT;
+		#ifdef texture2DGradEXT
+			return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;
+		#else
+			return texture2D( envMap, uv ).rgb;
+		#endif
+	}
+	#define cubeUV_r0 1.0
+	#define cubeUV_m0 - 2.0
+	#define cubeUV_r1 0.8
+	#define cubeUV_m1 - 1.0
+	#define cubeUV_r4 0.4
+	#define cubeUV_m4 2.0
+	#define cubeUV_r5 0.305
+	#define cubeUV_m5 3.0
+	#define cubeUV_r6 0.21
+	#define cubeUV_m6 4.0
+	float roughnessToMip( float roughness ) {
+		float mip = 0.0;
+		if ( roughness >= cubeUV_r1 ) {
+			mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;
+		} else if ( roughness >= cubeUV_r4 ) {
+			mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;
+		} else if ( roughness >= cubeUV_r5 ) {
+			mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;
+		} else if ( roughness >= cubeUV_r6 ) {
+			mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;
+		} else {
+			mip = - 2.0 * log2( 1.16 * roughness );		}
+		return mip;
+	}
+	vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
+		float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );
+		float mipF = fract( mip );
+		float mipInt = floor( mip );
+		vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );
+		if ( mipF == 0.0 ) {
+			return vec4( color0, 1.0 );
+		} else {
+			vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );
+			return vec4( mix( color0, color1, mipF ), 1.0 );
+		}
+	}
+#endif`,e_=`vec3 transformedNormal = objectNormal;
+#ifdef USE_TANGENT
+	vec3 transformedTangent = objectTangent;
+#endif
+#ifdef USE_BATCHING
+	mat3 bm = mat3( batchingMatrix );
+	transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );
+	transformedNormal = bm * transformedNormal;
+	#ifdef USE_TANGENT
+		transformedTangent = bm * transformedTangent;
+	#endif
+#endif
+#ifdef USE_INSTANCING
+	mat3 im = mat3( instanceMatrix );
+	transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );
+	transformedNormal = im * transformedNormal;
+	#ifdef USE_TANGENT
+		transformedTangent = im * transformedTangent;
+	#endif
+#endif
+transformedNormal = normalMatrix * transformedNormal;
+#ifdef FLIP_SIDED
+	transformedNormal = - transformedNormal;
+#endif
+#ifdef USE_TANGENT
+	transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;
+	#ifdef FLIP_SIDED
+		transformedTangent = - transformedTangent;
+	#endif
+#endif`,t_=`#ifdef USE_DISPLACEMENTMAP
+	uniform sampler2D displacementMap;
+	uniform float displacementScale;
+	uniform float displacementBias;
+#endif`,n_=`#ifdef USE_DISPLACEMENTMAP
+	transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );
+#endif`,i_=`#ifdef USE_EMISSIVEMAP
+	vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );
+	totalEmissiveRadiance *= emissiveColor.rgb;
+#endif`,r_=`#ifdef USE_EMISSIVEMAP
+	uniform sampler2D emissiveMap;
+#endif`,s_="gl_FragColor = linearToOutputTexel( gl_FragColor );",o_=`
+const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(
+	vec3( 0.8224621, 0.177538, 0.0 ),
+	vec3( 0.0331941, 0.9668058, 0.0 ),
+	vec3( 0.0170827, 0.0723974, 0.9105199 )
+);
+const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(
+	vec3( 1.2249401, - 0.2249404, 0.0 ),
+	vec3( - 0.0420569, 1.0420571, 0.0 ),
+	vec3( - 0.0196376, - 0.0786361, 1.0982735 )
+);
+vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {
+	return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );
+}
+vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {
+	return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );
+}
+vec4 LinearTransferOETF( in vec4 value ) {
+	return value;
+}
+vec4 sRGBTransferOETF( in vec4 value ) {
+	return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
+}
+vec4 LinearToLinear( in vec4 value ) {
+	return value;
+}
+vec4 LinearTosRGB( in vec4 value ) {
+	return sRGBTransferOETF( value );
+}`,a_=`#ifdef USE_ENVMAP
+	#ifdef ENV_WORLDPOS
+		vec3 cameraToFrag;
+		if ( isOrthographic ) {
+			cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
+		} else {
+			cameraToFrag = normalize( vWorldPosition - cameraPosition );
+		}
+		vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
+		#ifdef ENVMAP_MODE_REFLECTION
+			vec3 reflectVec = reflect( cameraToFrag, worldNormal );
+		#else
+			vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );
+		#endif
+	#else
+		vec3 reflectVec = vReflect;
+	#endif
+	#ifdef ENVMAP_TYPE_CUBE
+		vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
+	#else
+		vec4 envColor = vec4( 0.0 );
+	#endif
+	#ifdef ENVMAP_BLENDING_MULTIPLY
+		outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
+	#elif defined( ENVMAP_BLENDING_MIX )
+		outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
+	#elif defined( ENVMAP_BLENDING_ADD )
+		outgoingLight += envColor.xyz * specularStrength * reflectivity;
+	#endif
+#endif`,l_=`#ifdef USE_ENVMAP
+	uniform float envMapIntensity;
+	uniform float flipEnvMap;
+	uniform mat3 envMapRotation;
+	#ifdef ENVMAP_TYPE_CUBE
+		uniform samplerCube envMap;
+	#else
+		uniform sampler2D envMap;
+	#endif
+	
+#endif`,c_=`#ifdef USE_ENVMAP
+	uniform float reflectivity;
+	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
+		#define ENV_WORLDPOS
+	#endif
+	#ifdef ENV_WORLDPOS
+		varying vec3 vWorldPosition;
+		uniform float refractionRatio;
+	#else
+		varying vec3 vReflect;
+	#endif
+#endif`,u_=`#ifdef USE_ENVMAP
+	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
+		#define ENV_WORLDPOS
+	#endif
+	#ifdef ENV_WORLDPOS
+		
+		varying vec3 vWorldPosition;
+	#else
+		varying vec3 vReflect;
+		uniform float refractionRatio;
+	#endif
+#endif`,h_=`#ifdef USE_ENVMAP
+	#ifdef ENV_WORLDPOS
+		vWorldPosition = worldPosition.xyz;
+	#else
+		vec3 cameraToVertex;
+		if ( isOrthographic ) {
+			cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
+		} else {
+			cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
+		}
+		vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
+		#ifdef ENVMAP_MODE_REFLECTION
+			vReflect = reflect( cameraToVertex, worldNormal );
+		#else
+			vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
+		#endif
+	#endif
+#endif`,f_=`#ifdef USE_FOG
+	vFogDepth = - mvPosition.z;
+#endif`,d_=`#ifdef USE_FOG
+	varying float vFogDepth;
+#endif`,p_=`#ifdef USE_FOG
+	#ifdef FOG_EXP2
+		float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );
+	#else
+		float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );
+	#endif
+	gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );
+#endif`,m_=`#ifdef USE_FOG
+	uniform vec3 fogColor;
+	varying float vFogDepth;
+	#ifdef FOG_EXP2
+		uniform float fogDensity;
+	#else
+		uniform float fogNear;
+		uniform float fogFar;
+	#endif
+#endif`,g_=`#ifdef USE_GRADIENTMAP
+	uniform sampler2D gradientMap;
+#endif
+vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {
+	float dotNL = dot( normal, lightDirection );
+	vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );
+	#ifdef USE_GRADIENTMAP
+		return vec3( texture2D( gradientMap, coord ).r );
+	#else
+		vec2 fw = fwidth( coord ) * 0.5;
+		return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );
+	#endif
+}`,v_=`#ifdef USE_LIGHTMAP
+	vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
+	vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
+	reflectedLight.indirectDiffuse += lightMapIrradiance;
+#endif`,y_=`#ifdef USE_LIGHTMAP
+	uniform sampler2D lightMap;
+	uniform float lightMapIntensity;
+#endif`,x_=`LambertMaterial material;
+material.diffuseColor = diffuseColor.rgb;
+material.specularStrength = specularStrength;`,__=`varying vec3 vViewPosition;
+struct LambertMaterial {
+	vec3 diffuseColor;
+	float specularStrength;
+};
+void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
+	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
+	vec3 irradiance = dotNL * directLight.color;
+	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
+}
+void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
+	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
+}
+#define RE_Direct				RE_Direct_Lambert
+#define RE_IndirectDiffuse		RE_IndirectDiffuse_Lambert`,T_=`uniform bool receiveShadow;
+uniform vec3 ambientLightColor;
+#if defined( USE_LIGHT_PROBES )
+	uniform vec3 lightProbe[ 9 ];
+#endif
+vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
+	float x = normal.x, y = normal.y, z = normal.z;
+	vec3 result = shCoefficients[ 0 ] * 0.886227;
+	result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
+	result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
+	result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
+	result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
+	result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
+	result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
+	result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
+	result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
+	return result;
+}
+vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
+	vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
+	vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
+	return irradiance;
+}
+vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
+	vec3 irradiance = ambientLightColor;
+	return irradiance;
+}
+float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
+	#if defined ( LEGACY_LIGHTS )
+		if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {
+			return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );
+		}
+		return 1.0;
+	#else
+		float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );
+		if ( cutoffDistance > 0.0 ) {
+			distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );
+		}
+		return distanceFalloff;
+	#endif
+}
+float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {
+	return smoothstep( coneCosine, penumbraCosine, angleCosine );
+}
+#if NUM_DIR_LIGHTS > 0
+	struct DirectionalLight {
+		vec3 direction;
+		vec3 color;
+	};
+	uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
+	void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {
+		light.color = directionalLight.color;
+		light.direction = directionalLight.direction;
+		light.visible = true;
+	}
+#endif
+#if NUM_POINT_LIGHTS > 0
+	struct PointLight {
+		vec3 position;
+		vec3 color;
+		float distance;
+		float decay;
+	};
+	uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
+	void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {
+		vec3 lVector = pointLight.position - geometryPosition;
+		light.direction = normalize( lVector );
+		float lightDistance = length( lVector );
+		light.color = pointLight.color;
+		light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );
+		light.visible = ( light.color != vec3( 0.0 ) );
+	}
+#endif
+#if NUM_SPOT_LIGHTS > 0
+	struct SpotLight {
+		vec3 position;
+		vec3 direction;
+		vec3 color;
+		float distance;
+		float decay;
+		float coneCos;
+		float penumbraCos;
+	};
+	uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
+	void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {
+		vec3 lVector = spotLight.position - geometryPosition;
+		light.direction = normalize( lVector );
+		float angleCos = dot( light.direction, spotLight.direction );
+		float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );
+		if ( spotAttenuation > 0.0 ) {
+			float lightDistance = length( lVector );
+			light.color = spotLight.color * spotAttenuation;
+			light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );
+			light.visible = ( light.color != vec3( 0.0 ) );
+		} else {
+			light.color = vec3( 0.0 );
+			light.visible = false;
+		}
+	}
+#endif
+#if NUM_RECT_AREA_LIGHTS > 0
+	struct RectAreaLight {
+		vec3 color;
+		vec3 position;
+		vec3 halfWidth;
+		vec3 halfHeight;
+	};
+	uniform sampler2D ltc_1;	uniform sampler2D ltc_2;
+	uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];
+#endif
+#if NUM_HEMI_LIGHTS > 0
+	struct HemisphereLight {
+		vec3 direction;
+		vec3 skyColor;
+		vec3 groundColor;
+	};
+	uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
+	vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {
+		float dotNL = dot( normal, hemiLight.direction );
+		float hemiDiffuseWeight = 0.5 * dotNL + 0.5;
+		vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );
+		return irradiance;
+	}
+#endif`,M_=`#ifdef USE_ENVMAP
+	vec3 getIBLIrradiance( const in vec3 normal ) {
+		#ifdef ENVMAP_TYPE_CUBE_UV
+			vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
+			vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );
+			return PI * envMapColor.rgb * envMapIntensity;
+		#else
+			return vec3( 0.0 );
+		#endif
+	}
+	vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {
+		#ifdef ENVMAP_TYPE_CUBE_UV
+			vec3 reflectVec = reflect( - viewDir, normal );
+			reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );
+			reflectVec = inverseTransformDirection( reflectVec, viewMatrix );
+			vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );
+			return envMapColor.rgb * envMapIntensity;
+		#else
+			return vec3( 0.0 );
+		#endif
+	}
+	#ifdef USE_ANISOTROPY
+		vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {
+			#ifdef ENVMAP_TYPE_CUBE_UV
+				vec3 bentNormal = cross( bitangent, viewDir );
+				bentNormal = normalize( cross( bentNormal, bitangent ) );
+				bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );
+				return getIBLRadiance( viewDir, bentNormal, roughness );
+			#else
+				return vec3( 0.0 );
+			#endif
+		}
+	#endif
+#endif`,E_=`ToonMaterial material;
+material.diffuseColor = diffuseColor.rgb;`,b_=`varying vec3 vViewPosition;
+struct ToonMaterial {
+	vec3 diffuseColor;
+};
+void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
+	vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;
+	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
+}
+void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
+	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
+}
+#define RE_Direct				RE_Direct_Toon
+#define RE_IndirectDiffuse		RE_IndirectDiffuse_Toon`,S_=`BlinnPhongMaterial material;
+material.diffuseColor = diffuseColor.rgb;
+material.specularColor = specular;
+material.specularShininess = shininess;
+material.specularStrength = specularStrength;`,A_=`varying vec3 vViewPosition;
+struct BlinnPhongMaterial {
+	vec3 diffuseColor;
+	vec3 specularColor;
+	float specularShininess;
+	float specularStrength;
+};
+void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
+	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
+	vec3 irradiance = dotNL * directLight.color;
+	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
+	reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;
+}
+void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
+	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
+}
+#define RE_Direct				RE_Direct_BlinnPhong
+#define RE_IndirectDiffuse		RE_IndirectDiffuse_BlinnPhong`,w_=`PhysicalMaterial material;
+material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );
+vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );
+float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
+material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;
+material.roughness = min( material.roughness, 1.0 );
+#ifdef IOR
+	material.ior = ior;
+	#ifdef USE_SPECULAR
+		float specularIntensityFactor = specularIntensity;
+		vec3 specularColorFactor = specularColor;
+		#ifdef USE_SPECULAR_COLORMAP
+			specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;
+		#endif
+		#ifdef USE_SPECULAR_INTENSITYMAP
+			specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;
+		#endif
+		material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );
+	#else
+		float specularIntensityFactor = 1.0;
+		vec3 specularColorFactor = vec3( 1.0 );
+		material.specularF90 = 1.0;
+	#endif
+	material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );
+#else
+	material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );
+	material.specularF90 = 1.0;
+#endif
+#ifdef USE_CLEARCOAT
+	material.clearcoat = clearcoat;
+	material.clearcoatRoughness = clearcoatRoughness;
+	material.clearcoatF0 = vec3( 0.04 );
+	material.clearcoatF90 = 1.0;
+	#ifdef USE_CLEARCOATMAP
+		material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;
+	#endif
+	#ifdef USE_CLEARCOAT_ROUGHNESSMAP
+		material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;
+	#endif
+	material.clearcoat = saturate( material.clearcoat );	material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );
+	material.clearcoatRoughness += geometryRoughness;
+	material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );
+#endif
+#ifdef USE_IRIDESCENCE
+	material.iridescence = iridescence;
+	material.iridescenceIOR = iridescenceIOR;
+	#ifdef USE_IRIDESCENCEMAP
+		material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;
+	#endif
+	#ifdef USE_IRIDESCENCE_THICKNESSMAP
+		material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;
+	#else
+		material.iridescenceThickness = iridescenceThicknessMaximum;
+	#endif
+#endif
+#ifdef USE_SHEEN
+	material.sheenColor = sheenColor;
+	#ifdef USE_SHEEN_COLORMAP
+		material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;
+	#endif
+	material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );
+	#ifdef USE_SHEEN_ROUGHNESSMAP
+		material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;
+	#endif
+#endif
+#ifdef USE_ANISOTROPY
+	#ifdef USE_ANISOTROPYMAP
+		mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );
+		vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;
+		vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;
+	#else
+		vec2 anisotropyV = anisotropyVector;
+	#endif
+	material.anisotropy = length( anisotropyV );
+	if( material.anisotropy == 0.0 ) {
+		anisotropyV = vec2( 1.0, 0.0 );
+	} else {
+		anisotropyV /= material.anisotropy;
+		material.anisotropy = saturate( material.anisotropy );
+	}
+	material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );
+	material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;
+	material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;
+#endif`,C_=`struct PhysicalMaterial {
+	vec3 diffuseColor;
+	float roughness;
+	vec3 specularColor;
+	float specularF90;
+	#ifdef USE_CLEARCOAT
+		float clearcoat;
+		float clearcoatRoughness;
+		vec3 clearcoatF0;
+		float clearcoatF90;
+	#endif
+	#ifdef USE_IRIDESCENCE
+		float iridescence;
+		float iridescenceIOR;
+		float iridescenceThickness;
+		vec3 iridescenceFresnel;
+		vec3 iridescenceF0;
+	#endif
+	#ifdef USE_SHEEN
+		vec3 sheenColor;
+		float sheenRoughness;
+	#endif
+	#ifdef IOR
+		float ior;
+	#endif
+	#ifdef USE_TRANSMISSION
+		float transmission;
+		float transmissionAlpha;
+		float thickness;
+		float attenuationDistance;
+		vec3 attenuationColor;
+	#endif
+	#ifdef USE_ANISOTROPY
+		float anisotropy;
+		float alphaT;
+		vec3 anisotropyT;
+		vec3 anisotropyB;
+	#endif
+};
+vec3 clearcoatSpecularDirect = vec3( 0.0 );
+vec3 clearcoatSpecularIndirect = vec3( 0.0 );
+vec3 sheenSpecularDirect = vec3( 0.0 );
+vec3 sheenSpecularIndirect = vec3(0.0 );
+vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {
+    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );
+    float x2 = x * x;
+    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );
+    return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );
+}
+float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
+	float a2 = pow2( alpha );
+	float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
+	float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
+	return 0.5 / max( gv + gl, EPSILON );
+}
+float D_GGX( const in float alpha, const in float dotNH ) {
+	float a2 = pow2( alpha );
+	float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;
+	return RECIPROCAL_PI * a2 / pow2( denom );
+}
+#ifdef USE_ANISOTROPY
+	float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {
+		float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );
+		float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );
+		float v = 0.5 / ( gv + gl );
+		return saturate(v);
+	}
+	float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {
+		float a2 = alphaT * alphaB;
+		highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );
+		highp float v2 = dot( v, v );
+		float w2 = a2 / v2;
+		return RECIPROCAL_PI * a2 * pow2 ( w2 );
+	}
+#endif
+#ifdef USE_CLEARCOAT
+	vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {
+		vec3 f0 = material.clearcoatF0;
+		float f90 = material.clearcoatF90;
+		float roughness = material.clearcoatRoughness;
+		float alpha = pow2( roughness );
+		vec3 halfDir = normalize( lightDir + viewDir );
+		float dotNL = saturate( dot( normal, lightDir ) );
+		float dotNV = saturate( dot( normal, viewDir ) );
+		float dotNH = saturate( dot( normal, halfDir ) );
+		float dotVH = saturate( dot( viewDir, halfDir ) );
+		vec3 F = F_Schlick( f0, f90, dotVH );
+		float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
+		float D = D_GGX( alpha, dotNH );
+		return F * ( V * D );
+	}
+#endif
+vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {
+	vec3 f0 = material.specularColor;
+	float f90 = material.specularF90;
+	float roughness = material.roughness;
+	float alpha = pow2( roughness );
+	vec3 halfDir = normalize( lightDir + viewDir );
+	float dotNL = saturate( dot( normal, lightDir ) );
+	float dotNV = saturate( dot( normal, viewDir ) );
+	float dotNH = saturate( dot( normal, halfDir ) );
+	float dotVH = saturate( dot( viewDir, halfDir ) );
+	vec3 F = F_Schlick( f0, f90, dotVH );
+	#ifdef USE_IRIDESCENCE
+		F = mix( F, material.iridescenceFresnel, material.iridescence );
+	#endif
+	#ifdef USE_ANISOTROPY
+		float dotTL = dot( material.anisotropyT, lightDir );
+		float dotTV = dot( material.anisotropyT, viewDir );
+		float dotTH = dot( material.anisotropyT, halfDir );
+		float dotBL = dot( material.anisotropyB, lightDir );
+		float dotBV = dot( material.anisotropyB, viewDir );
+		float dotBH = dot( material.anisotropyB, halfDir );
+		float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );
+		float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );
+	#else
+		float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
+		float D = D_GGX( alpha, dotNH );
+	#endif
+	return F * ( V * D );
+}
+vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {
+	const float LUT_SIZE = 64.0;
+	const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;
+	const float LUT_BIAS = 0.5 / LUT_SIZE;
+	float dotNV = saturate( dot( N, V ) );
+	vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );
+	uv = uv * LUT_SCALE + LUT_BIAS;
+	return uv;
+}
+float LTC_ClippedSphereFormFactor( const in vec3 f ) {
+	float l = length( f );
+	return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );
+}
+vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {
+	float x = dot( v1, v2 );
+	float y = abs( x );
+	float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;
+	float b = 3.4175940 + ( 4.1616724 + y ) * y;
+	float v = a / b;
+	float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;
+	return cross( v1, v2 ) * theta_sintheta;
+}
+vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {
+	vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];
+	vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];
+	vec3 lightNormal = cross( v1, v2 );
+	if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );
+	vec3 T1, T2;
+	T1 = normalize( V - N * dot( V, N ) );
+	T2 = - cross( N, T1 );
+	mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );
+	vec3 coords[ 4 ];
+	coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );
+	coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );
+	coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );
+	coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );
+	coords[ 0 ] = normalize( coords[ 0 ] );
+	coords[ 1 ] = normalize( coords[ 1 ] );
+	coords[ 2 ] = normalize( coords[ 2 ] );
+	coords[ 3 ] = normalize( coords[ 3 ] );
+	vec3 vectorFormFactor = vec3( 0.0 );
+	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );
+	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );
+	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );
+	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );
+	float result = LTC_ClippedSphereFormFactor( vectorFormFactor );
+	return vec3( result );
+}
+#if defined( USE_SHEEN )
+float D_Charlie( float roughness, float dotNH ) {
+	float alpha = pow2( roughness );
+	float invAlpha = 1.0 / alpha;
+	float cos2h = dotNH * dotNH;
+	float sin2h = max( 1.0 - cos2h, 0.0078125 );
+	return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );
+}
+float V_Neubelt( float dotNV, float dotNL ) {
+	return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );
+}
+vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {
+	vec3 halfDir = normalize( lightDir + viewDir );
+	float dotNL = saturate( dot( normal, lightDir ) );
+	float dotNV = saturate( dot( normal, viewDir ) );
+	float dotNH = saturate( dot( normal, halfDir ) );
+	float D = D_Charlie( sheenRoughness, dotNH );
+	float V = V_Neubelt( dotNV, dotNL );
+	return sheenColor * ( D * V );
+}
+#endif
+float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
+	float dotNV = saturate( dot( normal, viewDir ) );
+	float r2 = roughness * roughness;
+	float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;
+	float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;
+	float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );
+	return saturate( DG * RECIPROCAL_PI );
+}
+vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
+	float dotNV = saturate( dot( normal, viewDir ) );
+	const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );
+	const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );
+	vec4 r = roughness * c0 + c1;
+	float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;
+	vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;
+	return fab;
+}
+vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {
+	vec2 fab = DFGApprox( normal, viewDir, roughness );
+	return specularColor * fab.x + specularF90 * fab.y;
+}
+#ifdef USE_IRIDESCENCE
+void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
+#else
+void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
+#endif
+	vec2 fab = DFGApprox( normal, viewDir, roughness );
+	#ifdef USE_IRIDESCENCE
+		vec3 Fr = mix( specularColor, iridescenceF0, iridescence );
+	#else
+		vec3 Fr = specularColor;
+	#endif
+	vec3 FssEss = Fr * fab.x + specularF90 * fab.y;
+	float Ess = fab.x + fab.y;
+	float Ems = 1.0 - Ess;
+	vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;	vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );
+	singleScatter += FssEss;
+	multiScatter += Fms * Ems;
+}
+#if NUM_RECT_AREA_LIGHTS > 0
+	void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
+		vec3 normal = geometryNormal;
+		vec3 viewDir = geometryViewDir;
+		vec3 position = geometryPosition;
+		vec3 lightPos = rectAreaLight.position;
+		vec3 halfWidth = rectAreaLight.halfWidth;
+		vec3 halfHeight = rectAreaLight.halfHeight;
+		vec3 lightColor = rectAreaLight.color;
+		float roughness = material.roughness;
+		vec3 rectCoords[ 4 ];
+		rectCoords[ 0 ] = lightPos + halfWidth - halfHeight;		rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;
+		rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;
+		rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;
+		vec2 uv = LTC_Uv( normal, viewDir, roughness );
+		vec4 t1 = texture2D( ltc_1, uv );
+		vec4 t2 = texture2D( ltc_2, uv );
+		mat3 mInv = mat3(
+			vec3( t1.x, 0, t1.y ),
+			vec3(    0, 1,    0 ),
+			vec3( t1.z, 0, t1.w )
+		);
+		vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );
+		reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );
+		reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );
+	}
+#endif
+void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
+	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
+	vec3 irradiance = dotNL * directLight.color;
+	#ifdef USE_CLEARCOAT
+		float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );
+		vec3 ccIrradiance = dotNLcc * directLight.color;
+		clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );
+	#endif
+	#ifdef USE_SHEEN
+		sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );
+	#endif
+	reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );
+	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
+}
+void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
+	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
+}
+void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
+	#ifdef USE_CLEARCOAT
+		clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );
+	#endif
+	#ifdef USE_SHEEN
+		sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
+	#endif
+	vec3 singleScattering = vec3( 0.0 );
+	vec3 multiScattering = vec3( 0.0 );
+	vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
+	#ifdef USE_IRIDESCENCE
+		computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );
+	#else
+		computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );
+	#endif
+	vec3 totalScattering = singleScattering + multiScattering;
+	vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );
+	reflectedLight.indirectSpecular += radiance * singleScattering;
+	reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;
+	reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;
+}
+#define RE_Direct				RE_Direct_Physical
+#define RE_Direct_RectArea		RE_Direct_RectArea_Physical
+#define RE_IndirectDiffuse		RE_IndirectDiffuse_Physical
+#define RE_IndirectSpecular		RE_IndirectSpecular_Physical
+float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {
+	return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );
+}`,R_=`
+vec3 geometryPosition = - vViewPosition;
+vec3 geometryNormal = normal;
+vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
+vec3 geometryClearcoatNormal = vec3( 0.0 );
+#ifdef USE_CLEARCOAT
+	geometryClearcoatNormal = clearcoatNormal;
+#endif
+#ifdef USE_IRIDESCENCE
+	float dotNVi = saturate( dot( normal, geometryViewDir ) );
+	if ( material.iridescenceThickness == 0.0 ) {
+		material.iridescence = 0.0;
+	} else {
+		material.iridescence = saturate( material.iridescence );
+	}
+	if ( material.iridescence > 0.0 ) {
+		material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );
+		material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );
+	}
+#endif
+IncidentLight directLight;
+#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )
+	PointLight pointLight;
+	#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0
+	PointLightShadow pointLightShadow;
+	#endif
+	#pragma unroll_loop_start
+	for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
+		pointLight = pointLights[ i ];
+		getPointLightInfo( pointLight, geometryPosition, directLight );
+		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )
+		pointLightShadow = pointLightShadows[ i ];
+		directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
+		#endif
+		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
+	}
+	#pragma unroll_loop_end
+#endif
+#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )
+	SpotLight spotLight;
+	vec4 spotColor;
+	vec3 spotLightCoord;
+	bool inSpotLightMap;
+	#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0
+	SpotLightShadow spotLightShadow;
+	#endif
+	#pragma unroll_loop_start
+	for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
+		spotLight = spotLights[ i ];
+		getSpotLightInfo( spotLight, geometryPosition, directLight );
+		#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
+		#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX
+		#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
+		#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS
+		#else
+		#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
+		#endif
+		#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )
+			spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;
+			inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );
+			spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );
+			directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;
+		#endif
+		#undef SPOT_LIGHT_MAP_INDEX
+		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
+		spotLightShadow = spotLightShadows[ i ];
+		directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
+		#endif
+		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
+	}
+	#pragma unroll_loop_end
+#endif
+#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )
+	DirectionalLight directionalLight;
+	#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0
+	DirectionalLightShadow directionalLightShadow;
+	#endif
+	#pragma unroll_loop_start
+	for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
+		directionalLight = directionalLights[ i ];
+		getDirectionalLightInfo( directionalLight, directLight );
+		#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )
+		directionalLightShadow = directionalLightShadows[ i ];
+		directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
+		#endif
+		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
+	}
+	#pragma unroll_loop_end
+#endif
+#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )
+	RectAreaLight rectAreaLight;
+	#pragma unroll_loop_start
+	for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {
+		rectAreaLight = rectAreaLights[ i ];
+		RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
+	}
+	#pragma unroll_loop_end
+#endif
+#if defined( RE_IndirectDiffuse )
+	vec3 iblIrradiance = vec3( 0.0 );
+	vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );
+	#if defined( USE_LIGHT_PROBES )
+		irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );
+	#endif
+	#if ( NUM_HEMI_LIGHTS > 0 )
+		#pragma unroll_loop_start
+		for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
+			irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );
+		}
+		#pragma unroll_loop_end
+	#endif
+#endif
+#if defined( RE_IndirectSpecular )
+	vec3 radiance = vec3( 0.0 );
+	vec3 clearcoatRadiance = vec3( 0.0 );
+#endif`,I_=`#if defined( RE_IndirectDiffuse )
+	#ifdef USE_LIGHTMAP
+		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
+		vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
+		irradiance += lightMapIrradiance;
+	#endif
+	#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )
+		iblIrradiance += getIBLIrradiance( geometryNormal );
+	#endif
+#endif
+#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )
+	#ifdef USE_ANISOTROPY
+		radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );
+	#else
+		radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );
+	#endif
+	#ifdef USE_CLEARCOAT
+		clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );
+	#endif
+#endif`,P_=`#if defined( RE_IndirectDiffuse )
+	RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
+#endif
+#if defined( RE_IndirectSpecular )
+	RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
+#endif`,N_=`#if defined( USE_LOGDEPTHBUF )
+	gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
+#endif`,L_=`#if defined( USE_LOGDEPTHBUF )
+	uniform float logDepthBufFC;
+	varying float vFragDepth;
+	varying float vIsPerspective;
+#endif`,O_=`#ifdef USE_LOGDEPTHBUF
+	varying float vFragDepth;
+	varying float vIsPerspective;
+#endif`,D_=`#ifdef USE_LOGDEPTHBUF
+	vFragDepth = 1.0 + gl_Position.w;
+	vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
+#endif`,F_=`#ifdef USE_MAP
+	vec4 sampledDiffuseColor = texture2D( map, vMapUv );
+	#ifdef DECODE_VIDEO_TEXTURE
+		sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );
+	
+	#endif
+	diffuseColor *= sampledDiffuseColor;
+#endif`,U_=`#ifdef USE_MAP
+	uniform sampler2D map;
+#endif`,k_=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
+	#if defined( USE_POINTS_UV )
+		vec2 uv = vUv;
+	#else
+		vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;
+	#endif
+#endif
+#ifdef USE_MAP
+	diffuseColor *= texture2D( map, uv );
+#endif
+#ifdef USE_ALPHAMAP
+	diffuseColor.a *= texture2D( alphaMap, uv ).g;
+#endif`,B_=`#if defined( USE_POINTS_UV )
+	varying vec2 vUv;
+#else
+	#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
+		uniform mat3 uvTransform;
+	#endif
+#endif
+#ifdef USE_MAP
+	uniform sampler2D map;
+#endif
+#ifdef USE_ALPHAMAP
+	uniform sampler2D alphaMap;
+#endif`,G_=`float metalnessFactor = metalness;
+#ifdef USE_METALNESSMAP
+	vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );
+	metalnessFactor *= texelMetalness.b;
+#endif`,V_=`#ifdef USE_METALNESSMAP
+	uniform sampler2D metalnessMap;
+#endif`,z_=`#ifdef USE_INSTANCING_MORPH
+	float morphTargetInfluences[MORPHTARGETS_COUNT];
+	float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;
+	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
+		morphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;
+	}
+#endif`,H_=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )
+	vColor *= morphTargetBaseInfluence;
+	for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
+		#if defined( USE_COLOR_ALPHA )
+			if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];
+		#elif defined( USE_COLOR )
+			if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];
+		#endif
+	}
+#endif`,W_=`#ifdef USE_MORPHNORMALS
+	objectNormal *= morphTargetBaseInfluence;
+	#ifdef MORPHTARGETS_TEXTURE
+		for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
+			if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];
+		}
+	#else
+		objectNormal += morphNormal0 * morphTargetInfluences[ 0 ];
+		objectNormal += morphNormal1 * morphTargetInfluences[ 1 ];
+		objectNormal += morphNormal2 * morphTargetInfluences[ 2 ];
+		objectNormal += morphNormal3 * morphTargetInfluences[ 3 ];
+	#endif
+#endif`,X_=`#ifdef USE_MORPHTARGETS
+	#ifndef USE_INSTANCING_MORPH
+		uniform float morphTargetBaseInfluence;
+	#endif
+	#ifdef MORPHTARGETS_TEXTURE
+		#ifndef USE_INSTANCING_MORPH
+			uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];
+		#endif
+		uniform sampler2DArray morphTargetsTexture;
+		uniform ivec2 morphTargetsTextureSize;
+		vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {
+			int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;
+			int y = texelIndex / morphTargetsTextureSize.x;
+			int x = texelIndex - y * morphTargetsTextureSize.x;
+			ivec3 morphUV = ivec3( x, y, morphTargetIndex );
+			return texelFetch( morphTargetsTexture, morphUV, 0 );
+		}
+	#else
+		#ifndef USE_MORPHNORMALS
+			uniform float morphTargetInfluences[ 8 ];
+		#else
+			uniform float morphTargetInfluences[ 4 ];
+		#endif
+	#endif
+#endif`,j_=`#ifdef USE_MORPHTARGETS
+	transformed *= morphTargetBaseInfluence;
+	#ifdef MORPHTARGETS_TEXTURE
+		for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
+			if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];
+		}
+	#else
+		transformed += morphTarget0 * morphTargetInfluences[ 0 ];
+		transformed += morphTarget1 * morphTargetInfluences[ 1 ];
+		transformed += morphTarget2 * morphTargetInfluences[ 2 ];
+		transformed += morphTarget3 * morphTargetInfluences[ 3 ];
+		#ifndef USE_MORPHNORMALS
+			transformed += morphTarget4 * morphTargetInfluences[ 4 ];
+			transformed += morphTarget5 * morphTargetInfluences[ 5 ];
+			transformed += morphTarget6 * morphTargetInfluences[ 6 ];
+			transformed += morphTarget7 * morphTargetInfluences[ 7 ];
+		#endif
+	#endif
+#endif`,q_=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
+#ifdef FLAT_SHADED
+	vec3 fdx = dFdx( vViewPosition );
+	vec3 fdy = dFdy( vViewPosition );
+	vec3 normal = normalize( cross( fdx, fdy ) );
+#else
+	vec3 normal = normalize( vNormal );
+	#ifdef DOUBLE_SIDED
+		normal *= faceDirection;
+	#endif
+#endif
+#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )
+	#ifdef USE_TANGENT
+		mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
+	#else
+		mat3 tbn = getTangentFrame( - vViewPosition, normal,
+		#if defined( USE_NORMALMAP )
+			vNormalMapUv
+		#elif defined( USE_CLEARCOAT_NORMALMAP )
+			vClearcoatNormalMapUv
+		#else
+			vUv
+		#endif
+		);
+	#endif
+	#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
+		tbn[0] *= faceDirection;
+		tbn[1] *= faceDirection;
+	#endif
+#endif
+#ifdef USE_CLEARCOAT_NORMALMAP
+	#ifdef USE_TANGENT
+		mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
+	#else
+		mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
+	#endif
+	#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
+		tbn2[0] *= faceDirection;
+		tbn2[1] *= faceDirection;
+	#endif
+#endif
+vec3 nonPerturbedNormal = normal;`,Y_=`#ifdef USE_NORMALMAP_OBJECTSPACE
+	normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
+	#ifdef FLIP_SIDED
+		normal = - normal;
+	#endif
+	#ifdef DOUBLE_SIDED
+		normal = normal * faceDirection;
+	#endif
+	normal = normalize( normalMatrix * normal );
+#elif defined( USE_NORMALMAP_TANGENTSPACE )
+	vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
+	mapN.xy *= normalScale;
+	normal = normalize( tbn * mapN );
+#elif defined( USE_BUMPMAP )
+	normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );
+#endif`,K_=`#ifndef FLAT_SHADED
+	varying vec3 vNormal;
+	#ifdef USE_TANGENT
+		varying vec3 vTangent;
+		varying vec3 vBitangent;
+	#endif
+#endif`,Z_=`#ifndef FLAT_SHADED
+	varying vec3 vNormal;
+	#ifdef USE_TANGENT
+		varying vec3 vTangent;
+		varying vec3 vBitangent;
+	#endif
+#endif`,J_=`#ifndef FLAT_SHADED
+	vNormal = normalize( transformedNormal );
+	#ifdef USE_TANGENT
+		vTangent = normalize( transformedTangent );
+		vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );
+	#endif
+#endif`,$_=`#ifdef USE_NORMALMAP
+	uniform sampler2D normalMap;
+	uniform vec2 normalScale;
+#endif
+#ifdef USE_NORMALMAP_OBJECTSPACE
+	uniform mat3 normalMatrix;
+#endif
+#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )
+	mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {
+		vec3 q0 = dFdx( eye_pos.xyz );
+		vec3 q1 = dFdy( eye_pos.xyz );
+		vec2 st0 = dFdx( uv.st );
+		vec2 st1 = dFdy( uv.st );
+		vec3 N = surf_norm;
+		vec3 q1perp = cross( q1, N );
+		vec3 q0perp = cross( N, q0 );
+		vec3 T = q1perp * st0.x + q0perp * st1.x;
+		vec3 B = q1perp * st0.y + q0perp * st1.y;
+		float det = max( dot( T, T ), dot( B, B ) );
+		float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );
+		return mat3( T * scale, B * scale, N );
+	}
+#endif`,Q_=`#ifdef USE_CLEARCOAT
+	vec3 clearcoatNormal = nonPerturbedNormal;
+#endif`,eT=`#ifdef USE_CLEARCOAT_NORMALMAP
+	vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;
+	clearcoatMapN.xy *= clearcoatNormalScale;
+	clearcoatNormal = normalize( tbn2 * clearcoatMapN );
+#endif`,tT=`#ifdef USE_CLEARCOATMAP
+	uniform sampler2D clearcoatMap;
+#endif
+#ifdef USE_CLEARCOAT_NORMALMAP
+	uniform sampler2D clearcoatNormalMap;
+	uniform vec2 clearcoatNormalScale;
+#endif
+#ifdef USE_CLEARCOAT_ROUGHNESSMAP
+	uniform sampler2D clearcoatRoughnessMap;
+#endif`,nT=`#ifdef USE_IRIDESCENCEMAP
+	uniform sampler2D iridescenceMap;
+#endif
+#ifdef USE_IRIDESCENCE_THICKNESSMAP
+	uniform sampler2D iridescenceThicknessMap;
+#endif`,iT=`#ifdef OPAQUE
+diffuseColor.a = 1.0;
+#endif
+#ifdef USE_TRANSMISSION
+diffuseColor.a *= material.transmissionAlpha;
+#endif
+gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,rT=`vec3 packNormalToRGB( const in vec3 normal ) {
+	return normalize( normal ) * 0.5 + 0.5;
+}
+vec3 unpackRGBToNormal( const in vec3 rgb ) {
+	return 2.0 * rgb.xyz - 1.0;
+}
+const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;
+const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );
+const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );
+const float ShiftRight8 = 1. / 256.;
+vec4 packDepthToRGBA( const in float v ) {
+	vec4 r = vec4( fract( v * PackFactors ), v );
+	r.yzw -= r.xyz * ShiftRight8;	return r * PackUpscale;
+}
+float unpackRGBAToDepth( const in vec4 v ) {
+	return dot( v, UnpackFactors );
+}
+vec2 packDepthToRG( in highp float v ) {
+	return packDepthToRGBA( v ).yx;
+}
+float unpackRGToDepth( const in highp vec2 v ) {
+	return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );
+}
+vec4 pack2HalfToRGBA( vec2 v ) {
+	vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );
+	return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );
+}
+vec2 unpackRGBATo2Half( vec4 v ) {
+	return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );
+}
+float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
+	return ( viewZ + near ) / ( near - far );
+}
+float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {
+	return depth * ( near - far ) - near;
+}
+float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {
+	return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );
+}
+float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {
+	return ( near * far ) / ( ( far - near ) * depth - far );
+}`,sT=`#ifdef PREMULTIPLIED_ALPHA
+	gl_FragColor.rgb *= gl_FragColor.a;
+#endif`,oT=`vec4 mvPosition = vec4( transformed, 1.0 );
+#ifdef USE_BATCHING
+	mvPosition = batchingMatrix * mvPosition;
+#endif
+#ifdef USE_INSTANCING
+	mvPosition = instanceMatrix * mvPosition;
+#endif
+mvPosition = modelViewMatrix * mvPosition;
+gl_Position = projectionMatrix * mvPosition;`,aT=`#ifdef DITHERING
+	gl_FragColor.rgb = dithering( gl_FragColor.rgb );
+#endif`,lT=`#ifdef DITHERING
+	vec3 dithering( vec3 color ) {
+		float grid_position = rand( gl_FragCoord.xy );
+		vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
+		dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
+		return color + dither_shift_RGB;
+	}
+#endif`,cT=`float roughnessFactor = roughness;
+#ifdef USE_ROUGHNESSMAP
+	vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );
+	roughnessFactor *= texelRoughness.g;
+#endif`,uT=`#ifdef USE_ROUGHNESSMAP
+	uniform sampler2D roughnessMap;
+#endif`,hT=`#if NUM_SPOT_LIGHT_COORDS > 0
+	varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
+#endif
+#if NUM_SPOT_LIGHT_MAPS > 0
+	uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];
+#endif
+#ifdef USE_SHADOWMAP
+	#if NUM_DIR_LIGHT_SHADOWS > 0
+		uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
+		varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
+		struct DirectionalLightShadow {
+			float shadowBias;
+			float shadowNormalBias;
+			float shadowRadius;
+			vec2 shadowMapSize;
+		};
+		uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
+	#endif
+	#if NUM_SPOT_LIGHT_SHADOWS > 0
+		uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
+		struct SpotLightShadow {
+			float shadowBias;
+			float shadowNormalBias;
+			float shadowRadius;
+			vec2 shadowMapSize;
+		};
+		uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
+	#endif
+	#if NUM_POINT_LIGHT_SHADOWS > 0
+		uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
+		varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
+		struct PointLightShadow {
+			float shadowBias;
+			float shadowNormalBias;
+			float shadowRadius;
+			vec2 shadowMapSize;
+			float shadowCameraNear;
+			float shadowCameraFar;
+		};
+		uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
+	#endif
+	float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {
+		return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );
+	}
+	vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {
+		return unpackRGBATo2Half( texture2D( shadow, uv ) );
+	}
+	float VSMShadow (sampler2D shadow, vec2 uv, float compare ){
+		float occlusion = 1.0;
+		vec2 distribution = texture2DDistribution( shadow, uv );
+		float hard_shadow = step( compare , distribution.x );
+		if (hard_shadow != 1.0 ) {
+			float distance = compare - distribution.x ;
+			float variance = max( 0.00000, distribution.y * distribution.y );
+			float softness_probability = variance / (variance + distance * distance );			softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );			occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );
+		}
+		return occlusion;
+	}
+	float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
+		float shadow = 1.0;
+		shadowCoord.xyz /= shadowCoord.w;
+		shadowCoord.z += shadowBias;
+		bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;
+		bool frustumTest = inFrustum && shadowCoord.z <= 1.0;
+		if ( frustumTest ) {
+		#if defined( SHADOWMAP_TYPE_PCF )
+			vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
+			float dx0 = - texelSize.x * shadowRadius;
+			float dy0 = - texelSize.y * shadowRadius;
+			float dx1 = + texelSize.x * shadowRadius;
+			float dy1 = + texelSize.y * shadowRadius;
+			float dx2 = dx0 / 2.0;
+			float dy2 = dy0 / 2.0;
+			float dx3 = dx1 / 2.0;
+			float dy3 = dy1 / 2.0;
+			shadow = (
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )
+			) * ( 1.0 / 17.0 );
+		#elif defined( SHADOWMAP_TYPE_PCF_SOFT )
+			vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
+			float dx = texelSize.x;
+			float dy = texelSize.y;
+			vec2 uv = shadowCoord.xy;
+			vec2 f = fract( uv * shadowMapSize + 0.5 );
+			uv -= f * texelSize;
+			shadow = (
+				texture2DCompare( shadowMap, uv, shadowCoord.z ) +
+				texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +
+				texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +
+				mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),
+					 texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),
+					 f.x ) +
+				mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),
+					 texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),
+					 f.x ) +
+				mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),
+					 texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),
+					 f.y ) +
+				mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),
+					 texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),
+					 f.y ) +
+				mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),
+						  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),
+						  f.x ),
+					 mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),
+						  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),
+						  f.x ),
+					 f.y )
+			) * ( 1.0 / 9.0 );
+		#elif defined( SHADOWMAP_TYPE_VSM )
+			shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );
+		#else
+			shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );
+		#endif
+		}
+		return shadow;
+	}
+	vec2 cubeToUV( vec3 v, float texelSizeY ) {
+		vec3 absV = abs( v );
+		float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );
+		absV *= scaleToCube;
+		v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );
+		vec2 planar = v.xy;
+		float almostATexel = 1.5 * texelSizeY;
+		float almostOne = 1.0 - almostATexel;
+		if ( absV.z >= almostOne ) {
+			if ( v.z > 0.0 )
+				planar.x = 4.0 - v.x;
+		} else if ( absV.x >= almostOne ) {
+			float signX = sign( v.x );
+			planar.x = v.z * signX + 2.0 * signX;
+		} else if ( absV.y >= almostOne ) {
+			float signY = sign( v.y );
+			planar.x = v.x + 2.0 * signY + 2.0;
+			planar.y = v.z * signY - 2.0;
+		}
+		return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );
+	}
+	float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
+		float shadow = 1.0;
+		vec3 lightToPosition = shadowCoord.xyz;
+		
+		float lightToPositionLength = length( lightToPosition );
+		if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {
+			float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );			dp += shadowBias;
+			vec3 bd3D = normalize( lightToPosition );
+			vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );
+			#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )
+				vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;
+				shadow = (
+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +
+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +
+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +
+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +
+					texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +
+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +
+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +
+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +
+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )
+				) * ( 1.0 / 9.0 );
+			#else
+				shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );
+			#endif
+		}
+		return shadow;
+	}
+#endif`,fT=`#if NUM_SPOT_LIGHT_COORDS > 0
+	uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];
+	varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
+#endif
+#ifdef USE_SHADOWMAP
+	#if NUM_DIR_LIGHT_SHADOWS > 0
+		uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];
+		varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
+		struct DirectionalLightShadow {
+			float shadowBias;
+			float shadowNormalBias;
+			float shadowRadius;
+			vec2 shadowMapSize;
+		};
+		uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
+	#endif
+	#if NUM_SPOT_LIGHT_SHADOWS > 0
+		struct SpotLightShadow {
+			float shadowBias;
+			float shadowNormalBias;
+			float shadowRadius;
+			vec2 shadowMapSize;
+		};
+		uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
+	#endif
+	#if NUM_POINT_LIGHT_SHADOWS > 0
+		uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];
+		varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
+		struct PointLightShadow {
+			float shadowBias;
+			float shadowNormalBias;
+			float shadowRadius;
+			vec2 shadowMapSize;
+			float shadowCameraNear;
+			float shadowCameraFar;
+		};
+		uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
+	#endif
+#endif`,dT=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )
+	vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
+	vec4 shadowWorldPosition;
+#endif
+#if defined( USE_SHADOWMAP )
+	#if NUM_DIR_LIGHT_SHADOWS > 0
+		#pragma unroll_loop_start
+		for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
+			shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );
+			vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;
+		}
+		#pragma unroll_loop_end
+	#endif
+	#if NUM_POINT_LIGHT_SHADOWS > 0
+		#pragma unroll_loop_start
+		for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
+			shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );
+			vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;
+		}
+		#pragma unroll_loop_end
+	#endif
+#endif
+#if NUM_SPOT_LIGHT_COORDS > 0
+	#pragma unroll_loop_start
+	for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {
+		shadowWorldPosition = worldPosition;
+		#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
+			shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;
+		#endif
+		vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;
+	}
+	#pragma unroll_loop_end
+#endif`,pT=`float getShadowMask() {
+	float shadow = 1.0;
+	#ifdef USE_SHADOWMAP
+	#if NUM_DIR_LIGHT_SHADOWS > 0
+	DirectionalLightShadow directionalLight;
+	#pragma unroll_loop_start
+	for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
+		directionalLight = directionalLightShadows[ i ];
+		shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
+	}
+	#pragma unroll_loop_end
+	#endif
+	#if NUM_SPOT_LIGHT_SHADOWS > 0
+	SpotLightShadow spotLight;
+	#pragma unroll_loop_start
+	for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
+		spotLight = spotLightShadows[ i ];
+		shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
+	}
+	#pragma unroll_loop_end
+	#endif
+	#if NUM_POINT_LIGHT_SHADOWS > 0
+	PointLightShadow pointLight;
+	#pragma unroll_loop_start
+	for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
+		pointLight = pointLightShadows[ i ];
+		shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
+	}
+	#pragma unroll_loop_end
+	#endif
+	#endif
+	return shadow;
+}`,mT=`#ifdef USE_SKINNING
+	mat4 boneMatX = getBoneMatrix( skinIndex.x );
+	mat4 boneMatY = getBoneMatrix( skinIndex.y );
+	mat4 boneMatZ = getBoneMatrix( skinIndex.z );
+	mat4 boneMatW = getBoneMatrix( skinIndex.w );
+#endif`,gT=`#ifdef USE_SKINNING
+	uniform mat4 bindMatrix;
+	uniform mat4 bindMatrixInverse;
+	uniform highp sampler2D boneTexture;
+	mat4 getBoneMatrix( const in float i ) {
+		int size = textureSize( boneTexture, 0 ).x;
+		int j = int( i ) * 4;
+		int x = j % size;
+		int y = j / size;
+		vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );
+		vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );
+		vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );
+		vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );
+		return mat4( v1, v2, v3, v4 );
+	}
+#endif`,vT=`#ifdef USE_SKINNING
+	vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
+	vec4 skinned = vec4( 0.0 );
+	skinned += boneMatX * skinVertex * skinWeight.x;
+	skinned += boneMatY * skinVertex * skinWeight.y;
+	skinned += boneMatZ * skinVertex * skinWeight.z;
+	skinned += boneMatW * skinVertex * skinWeight.w;
+	transformed = ( bindMatrixInverse * skinned ).xyz;
+#endif`,yT=`#ifdef USE_SKINNING
+	mat4 skinMatrix = mat4( 0.0 );
+	skinMatrix += skinWeight.x * boneMatX;
+	skinMatrix += skinWeight.y * boneMatY;
+	skinMatrix += skinWeight.z * boneMatZ;
+	skinMatrix += skinWeight.w * boneMatW;
+	skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
+	objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
+	#ifdef USE_TANGENT
+		objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
+	#endif
+#endif`,xT=`float specularStrength;
+#ifdef USE_SPECULARMAP
+	vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );
+	specularStrength = texelSpecular.r;
+#else
+	specularStrength = 1.0;
+#endif`,_T=`#ifdef USE_SPECULARMAP
+	uniform sampler2D specularMap;
+#endif`,TT=`#if defined( TONE_MAPPING )
+	gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );
+#endif`,MT=`#ifndef saturate
+#define saturate( a ) clamp( a, 0.0, 1.0 )
+#endif
+uniform float toneMappingExposure;
+vec3 LinearToneMapping( vec3 color ) {
+	return saturate( toneMappingExposure * color );
+}
+vec3 ReinhardToneMapping( vec3 color ) {
+	color *= toneMappingExposure;
+	return saturate( color / ( vec3( 1.0 ) + color ) );
+}
+vec3 OptimizedCineonToneMapping( vec3 color ) {
+	color *= toneMappingExposure;
+	color = max( vec3( 0.0 ), color - 0.004 );
+	return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );
+}
+vec3 RRTAndODTFit( vec3 v ) {
+	vec3 a = v * ( v + 0.0245786 ) - 0.000090537;
+	vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;
+	return a / b;
+}
+vec3 ACESFilmicToneMapping( vec3 color ) {
+	const mat3 ACESInputMat = mat3(
+		vec3( 0.59719, 0.07600, 0.02840 ),		vec3( 0.35458, 0.90834, 0.13383 ),
+		vec3( 0.04823, 0.01566, 0.83777 )
+	);
+	const mat3 ACESOutputMat = mat3(
+		vec3(  1.60475, -0.10208, -0.00327 ),		vec3( -0.53108,  1.10813, -0.07276 ),
+		vec3( -0.07367, -0.00605,  1.07602 )
+	);
+	color *= toneMappingExposure / 0.6;
+	color = ACESInputMat * color;
+	color = RRTAndODTFit( color );
+	color = ACESOutputMat * color;
+	return saturate( color );
+}
+const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(
+	vec3( 1.6605, - 0.1246, - 0.0182 ),
+	vec3( - 0.5876, 1.1329, - 0.1006 ),
+	vec3( - 0.0728, - 0.0083, 1.1187 )
+);
+const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(
+	vec3( 0.6274, 0.0691, 0.0164 ),
+	vec3( 0.3293, 0.9195, 0.0880 ),
+	vec3( 0.0433, 0.0113, 0.8956 )
+);
+vec3 agxDefaultContrastApprox( vec3 x ) {
+	vec3 x2 = x * x;
+	vec3 x4 = x2 * x2;
+	return + 15.5 * x4 * x2
+		- 40.14 * x4 * x
+		+ 31.96 * x4
+		- 6.868 * x2 * x
+		+ 0.4298 * x2
+		+ 0.1191 * x
+		- 0.00232;
+}
+vec3 AgXToneMapping( vec3 color ) {
+	const mat3 AgXInsetMatrix = mat3(
+		vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),
+		vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),
+		vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )
+	);
+	const mat3 AgXOutsetMatrix = mat3(
+		vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),
+		vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),
+		vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )
+	);
+	const float AgxMinEv = - 12.47393;	const float AgxMaxEv = 4.026069;
+	color *= toneMappingExposure;
+	color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;
+	color = AgXInsetMatrix * color;
+	color = max( color, 1e-10 );	color = log2( color );
+	color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
+	color = clamp( color, 0.0, 1.0 );
+	color = agxDefaultContrastApprox( color );
+	color = AgXOutsetMatrix * color;
+	color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );
+	color = LINEAR_REC2020_TO_LINEAR_SRGB * color;
+	color = clamp( color, 0.0, 1.0 );
+	return color;
+}
+vec3 NeutralToneMapping( vec3 color ) {
+	float startCompression = 0.8 - 0.04;
+	float desaturation = 0.15;
+	color *= toneMappingExposure;
+	float x = min(color.r, min(color.g, color.b));
+	float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;
+	color -= offset;
+	float peak = max(color.r, max(color.g, color.b));
+	if (peak < startCompression) return color;
+	float d = 1. - startCompression;
+	float newPeak = 1. - d * d / (peak + d - startCompression);
+	color *= newPeak / peak;
+	float g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);
+	return mix(color, newPeak * vec3(1, 1, 1), g);
+}
+vec3 CustomToneMapping( vec3 color ) { return color; }`,ET=`#ifdef USE_TRANSMISSION
+	material.transmission = transmission;
+	material.transmissionAlpha = 1.0;
+	material.thickness = thickness;
+	material.attenuationDistance = attenuationDistance;
+	material.attenuationColor = attenuationColor;
+	#ifdef USE_TRANSMISSIONMAP
+		material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;
+	#endif
+	#ifdef USE_THICKNESSMAP
+		material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;
+	#endif
+	vec3 pos = vWorldPosition;
+	vec3 v = normalize( cameraPosition - pos );
+	vec3 n = inverseTransformDirection( normal, viewMatrix );
+	vec4 transmitted = getIBLVolumeRefraction(
+		n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
+		pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,
+		material.attenuationColor, material.attenuationDistance );
+	material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );
+	totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );
+#endif`,bT=`#ifdef USE_TRANSMISSION
+	uniform float transmission;
+	uniform float thickness;
+	uniform float attenuationDistance;
+	uniform vec3 attenuationColor;
+	#ifdef USE_TRANSMISSIONMAP
+		uniform sampler2D transmissionMap;
+	#endif
+	#ifdef USE_THICKNESSMAP
+		uniform sampler2D thicknessMap;
+	#endif
+	uniform vec2 transmissionSamplerSize;
+	uniform sampler2D transmissionSamplerMap;
+	uniform mat4 modelMatrix;
+	uniform mat4 projectionMatrix;
+	varying vec3 vWorldPosition;
+	float w0( float a ) {
+		return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );
+	}
+	float w1( float a ) {
+		return ( 1.0 / 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );
+	}
+	float w2( float a ){
+		return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );
+	}
+	float w3( float a ) {
+		return ( 1.0 / 6.0 ) * ( a * a * a );
+	}
+	float g0( float a ) {
+		return w0( a ) + w1( a );
+	}
+	float g1( float a ) {
+		return w2( a ) + w3( a );
+	}
+	float h0( float a ) {
+		return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );
+	}
+	float h1( float a ) {
+		return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );
+	}
+	vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {
+		uv = uv * texelSize.zw + 0.5;
+		vec2 iuv = floor( uv );
+		vec2 fuv = fract( uv );
+		float g0x = g0( fuv.x );
+		float g1x = g1( fuv.x );
+		float h0x = h0( fuv.x );
+		float h1x = h1( fuv.x );
+		float h0y = h0( fuv.y );
+		float h1y = h1( fuv.y );
+		vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
+		vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
+		vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
+		vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
+		return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +
+			g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
+	}
+	vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
+		vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
+		vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
+		vec2 fLodSizeInv = 1.0 / fLodSize;
+		vec2 cLodSizeInv = 1.0 / cLodSize;
+		vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
+		vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
+		return mix( fSample, cSample, fract( lod ) );
+	}
+	vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
+		vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
+		vec3 modelScale;
+		modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
+		modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
+		modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
+		return normalize( refractionVector ) * thickness * modelScale;
+	}
+	float applyIorToRoughness( const in float roughness, const in float ior ) {
+		return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
+	}
+	vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
+		float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
+		return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
+	}
+	vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
+		if ( isinf( attenuationDistance ) ) {
+			return vec3( 1.0 );
+		} else {
+			vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
+			vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );			return transmittance;
+		}
+	}
+	vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
+		const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
+		const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,
+		const in vec3 attenuationColor, const in float attenuationDistance ) {
+		vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
+		vec3 refractedRayExit = position + transmissionRay;
+		vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
+		vec2 refractionCoords = ndcPos.xy / ndcPos.w;
+		refractionCoords += 1.0;
+		refractionCoords /= 2.0;
+		vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
+		vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
+		vec3 attenuatedColor = transmittance * transmittedLight.rgb;
+		vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
+		float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
+		return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
+	}
+#endif`,ST=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
+	varying vec2 vUv;
+#endif
+#ifdef USE_MAP
+	varying vec2 vMapUv;
+#endif
+#ifdef USE_ALPHAMAP
+	varying vec2 vAlphaMapUv;
+#endif
+#ifdef USE_LIGHTMAP
+	varying vec2 vLightMapUv;
+#endif
+#ifdef USE_AOMAP
+	varying vec2 vAoMapUv;
+#endif
+#ifdef USE_BUMPMAP
+	varying vec2 vBumpMapUv;
+#endif
+#ifdef USE_NORMALMAP
+	varying vec2 vNormalMapUv;
+#endif
+#ifdef USE_EMISSIVEMAP
+	varying vec2 vEmissiveMapUv;
+#endif
+#ifdef USE_METALNESSMAP
+	varying vec2 vMetalnessMapUv;
+#endif
+#ifdef USE_ROUGHNESSMAP
+	varying vec2 vRoughnessMapUv;
+#endif
+#ifdef USE_ANISOTROPYMAP
+	varying vec2 vAnisotropyMapUv;
+#endif
+#ifdef USE_CLEARCOATMAP
+	varying vec2 vClearcoatMapUv;
+#endif
+#ifdef USE_CLEARCOAT_NORMALMAP
+	varying vec2 vClearcoatNormalMapUv;
+#endif
+#ifdef USE_CLEARCOAT_ROUGHNESSMAP
+	varying vec2 vClearcoatRoughnessMapUv;
+#endif
+#ifdef USE_IRIDESCENCEMAP
+	varying vec2 vIridescenceMapUv;
+#endif
+#ifdef USE_IRIDESCENCE_THICKNESSMAP
+	varying vec2 vIridescenceThicknessMapUv;
+#endif
+#ifdef USE_SHEEN_COLORMAP
+	varying vec2 vSheenColorMapUv;
+#endif
+#ifdef USE_SHEEN_ROUGHNESSMAP
+	varying vec2 vSheenRoughnessMapUv;
+#endif
+#ifdef USE_SPECULARMAP
+	varying vec2 vSpecularMapUv;
+#endif
+#ifdef USE_SPECULAR_COLORMAP
+	varying vec2 vSpecularColorMapUv;
+#endif
+#ifdef USE_SPECULAR_INTENSITYMAP
+	varying vec2 vSpecularIntensityMapUv;
+#endif
+#ifdef USE_TRANSMISSIONMAP
+	uniform mat3 transmissionMapTransform;
+	varying vec2 vTransmissionMapUv;
+#endif
+#ifdef USE_THICKNESSMAP
+	uniform mat3 thicknessMapTransform;
+	varying vec2 vThicknessMapUv;
+#endif`,AT=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
+	varying vec2 vUv;
+#endif
+#ifdef USE_MAP
+	uniform mat3 mapTransform;
+	varying vec2 vMapUv;
+#endif
+#ifdef USE_ALPHAMAP
+	uniform mat3 alphaMapTransform;
+	varying vec2 vAlphaMapUv;
+#endif
+#ifdef USE_LIGHTMAP
+	uniform mat3 lightMapTransform;
+	varying vec2 vLightMapUv;
+#endif
+#ifdef USE_AOMAP
+	uniform mat3 aoMapTransform;
+	varying vec2 vAoMapUv;
+#endif
+#ifdef USE_BUMPMAP
+	uniform mat3 bumpMapTransform;
+	varying vec2 vBumpMapUv;
+#endif
+#ifdef USE_NORMALMAP
+	uniform mat3 normalMapTransform;
+	varying vec2 vNormalMapUv;
+#endif
+#ifdef USE_DISPLACEMENTMAP
+	uniform mat3 displacementMapTransform;
+	varying vec2 vDisplacementMapUv;
+#endif
+#ifdef USE_EMISSIVEMAP
+	uniform mat3 emissiveMapTransform;
+	varying vec2 vEmissiveMapUv;
+#endif
+#ifdef USE_METALNESSMAP
+	uniform mat3 metalnessMapTransform;
+	varying vec2 vMetalnessMapUv;
+#endif
+#ifdef USE_ROUGHNESSMAP
+	uniform mat3 roughnessMapTransform;
+	varying vec2 vRoughnessMapUv;
+#endif
+#ifdef USE_ANISOTROPYMAP
+	uniform mat3 anisotropyMapTransform;
+	varying vec2 vAnisotropyMapUv;
+#endif
+#ifdef USE_CLEARCOATMAP
+	uniform mat3 clearcoatMapTransform;
+	varying vec2 vClearcoatMapUv;
+#endif
+#ifdef USE_CLEARCOAT_NORMALMAP
+	uniform mat3 clearcoatNormalMapTransform;
+	varying vec2 vClearcoatNormalMapUv;
+#endif
+#ifdef USE_CLEARCOAT_ROUGHNESSMAP
+	uniform mat3 clearcoatRoughnessMapTransform;
+	varying vec2 vClearcoatRoughnessMapUv;
+#endif
+#ifdef USE_SHEEN_COLORMAP
+	uniform mat3 sheenColorMapTransform;
+	varying vec2 vSheenColorMapUv;
+#endif
+#ifdef USE_SHEEN_ROUGHNESSMAP
+	uniform mat3 sheenRoughnessMapTransform;
+	varying vec2 vSheenRoughnessMapUv;
+#endif
+#ifdef USE_IRIDESCENCEMAP
+	uniform mat3 iridescenceMapTransform;
+	varying vec2 vIridescenceMapUv;
+#endif
+#ifdef USE_IRIDESCENCE_THICKNESSMAP
+	uniform mat3 iridescenceThicknessMapTransform;
+	varying vec2 vIridescenceThicknessMapUv;
+#endif
+#ifdef USE_SPECULARMAP
+	uniform mat3 specularMapTransform;
+	varying vec2 vSpecularMapUv;
+#endif
+#ifdef USE_SPECULAR_COLORMAP
+	uniform mat3 specularColorMapTransform;
+	varying vec2 vSpecularColorMapUv;
+#endif
+#ifdef USE_SPECULAR_INTENSITYMAP
+	uniform mat3 specularIntensityMapTransform;
+	varying vec2 vSpecularIntensityMapUv;
+#endif
+#ifdef USE_TRANSMISSIONMAP
+	uniform mat3 transmissionMapTransform;
+	varying vec2 vTransmissionMapUv;
+#endif
+#ifdef USE_THICKNESSMAP
+	uniform mat3 thicknessMapTransform;
+	varying vec2 vThicknessMapUv;
+#endif`,wT=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
+	vUv = vec3( uv, 1 ).xy;
+#endif
+#ifdef USE_MAP
+	vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_ALPHAMAP
+	vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_LIGHTMAP
+	vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_AOMAP
+	vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_BUMPMAP
+	vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_NORMALMAP
+	vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_DISPLACEMENTMAP
+	vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_EMISSIVEMAP
+	vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_METALNESSMAP
+	vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_ROUGHNESSMAP
+	vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_ANISOTROPYMAP
+	vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_CLEARCOATMAP
+	vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_CLEARCOAT_NORMALMAP
+	vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_CLEARCOAT_ROUGHNESSMAP
+	vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_IRIDESCENCEMAP
+	vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_IRIDESCENCE_THICKNESSMAP
+	vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_SHEEN_COLORMAP
+	vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_SHEEN_ROUGHNESSMAP
+	vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_SPECULARMAP
+	vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_SPECULAR_COLORMAP
+	vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_SPECULAR_INTENSITYMAP
+	vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_TRANSMISSIONMAP
+	vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;
+#endif
+#ifdef USE_THICKNESSMAP
+	vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;
+#endif`,CT=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0
+	vec4 worldPosition = vec4( transformed, 1.0 );
+	#ifdef USE_BATCHING
+		worldPosition = batchingMatrix * worldPosition;
+	#endif
+	#ifdef USE_INSTANCING
+		worldPosition = instanceMatrix * worldPosition;
+	#endif
+	worldPosition = modelMatrix * worldPosition;
+#endif`,RT=`varying vec2 vUv;
+uniform mat3 uvTransform;
+void main() {
+	vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
+	gl_Position = vec4( position.xy, 1.0, 1.0 );
+}`,IT=`uniform sampler2D t2D;
+uniform float backgroundIntensity;
+varying vec2 vUv;
+void main() {
+	vec4 texColor = texture2D( t2D, vUv );
+	#ifdef DECODE_VIDEO_TEXTURE
+		texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );
+	#endif
+	texColor.rgb *= backgroundIntensity;
+	gl_FragColor = texColor;
+	#include 
+	#include 
+}`,PT=`varying vec3 vWorldDirection;
+#include 
+void main() {
+	vWorldDirection = transformDirection( position, modelMatrix );
+	#include 
+	#include 
+	gl_Position.z = gl_Position.w;
+}`,NT=`#ifdef ENVMAP_TYPE_CUBE
+	uniform samplerCube envMap;
+#elif defined( ENVMAP_TYPE_CUBE_UV )
+	uniform sampler2D envMap;
+#endif
+uniform float flipEnvMap;
+uniform float backgroundBlurriness;
+uniform float backgroundIntensity;
+uniform mat3 backgroundRotation;
+varying vec3 vWorldDirection;
+#include 
+void main() {
+	#ifdef ENVMAP_TYPE_CUBE
+		vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );
+	#elif defined( ENVMAP_TYPE_CUBE_UV )
+		vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );
+	#else
+		vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
+	#endif
+	texColor.rgb *= backgroundIntensity;
+	gl_FragColor = texColor;
+	#include 
+	#include 
+}`,LT=`varying vec3 vWorldDirection;
+#include 
+void main() {
+	vWorldDirection = transformDirection( position, modelMatrix );
+	#include 
+	#include 
+	gl_Position.z = gl_Position.w;
+}`,OT=`uniform samplerCube tCube;
+uniform float tFlip;
+uniform float opacity;
+varying vec3 vWorldDirection;
+void main() {
+	vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );
+	gl_FragColor = texColor;
+	gl_FragColor.a *= opacity;
+	#include 
+	#include 
+}`,DT=`#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+varying vec2 vHighPrecisionZW;
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#ifdef USE_DISPLACEMENTMAP
+		#include 
+		#include 
+		#include 
+	#endif
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vHighPrecisionZW = gl_Position.zw;
+}`,FT=`#if DEPTH_PACKING == 3200
+	uniform float opacity;
+#endif
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+varying vec2 vHighPrecisionZW;
+void main() {
+	vec4 diffuseColor = vec4( 1.0 );
+	#include 
+	#if DEPTH_PACKING == 3200
+		diffuseColor.a = opacity;
+	#endif
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;
+	#if DEPTH_PACKING == 3200
+		gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
+	#elif DEPTH_PACKING == 3201
+		gl_FragColor = packDepthToRGBA( fragCoordZ );
+	#endif
+}`,UT=`#define DISTANCE
+varying vec3 vWorldPosition;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#ifdef USE_DISPLACEMENTMAP
+		#include 
+		#include 
+		#include 
+	#endif
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vWorldPosition = worldPosition.xyz;
+}`,kT=`#define DISTANCE
+uniform vec3 referencePosition;
+uniform float nearDistance;
+uniform float farDistance;
+varying vec3 vWorldPosition;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main () {
+	vec4 diffuseColor = vec4( 1.0 );
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	float dist = length( vWorldPosition - referencePosition );
+	dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
+	dist = saturate( dist );
+	gl_FragColor = packDepthToRGBA( dist );
+}`,BT=`varying vec3 vWorldDirection;
+#include 
+void main() {
+	vWorldDirection = transformDirection( position, modelMatrix );
+	#include 
+	#include 
+}`,GT=`uniform sampler2D tEquirect;
+varying vec3 vWorldDirection;
+#include 
+void main() {
+	vec3 direction = normalize( vWorldDirection );
+	vec2 sampleUV = equirectUv( direction );
+	gl_FragColor = texture2D( tEquirect, sampleUV );
+	#include 
+	#include 
+}`,VT=`uniform float scale;
+attribute float lineDistance;
+varying float vLineDistance;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vLineDistance = scale * lineDistance;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,zT=`uniform vec3 diffuse;
+uniform float opacity;
+uniform float dashSize;
+uniform float totalSize;
+varying float vLineDistance;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	if ( mod( vLineDistance, totalSize ) > dashSize ) {
+		discard;
+	}
+	vec3 outgoingLight = vec3( 0.0 );
+	#include 
+	#include 
+	#include 
+	outgoingLight = diffuseColor.rgb;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,HT=`#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )
+		#include 
+		#include 
+		#include 
+		#include 
+		#include 
+	#endif
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,WT=`uniform vec3 diffuse;
+uniform float opacity;
+#ifndef FLAT_SHADED
+	varying vec3 vNormal;
+#endif
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
+	#ifdef USE_LIGHTMAP
+		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
+		reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;
+	#else
+		reflectedLight.indirectDiffuse += vec3( 1.0 );
+	#endif
+	#include 
+	reflectedLight.indirectDiffuse *= diffuseColor.rgb;
+	vec3 outgoingLight = reflectedLight.indirectDiffuse;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,XT=`#define LAMBERT
+varying vec3 vViewPosition;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vViewPosition = - mvPosition.xyz;
+	#include 
+	#include 
+	#include 
+	#include 
+}`,jT=`#define LAMBERT
+uniform vec3 diffuse;
+uniform vec3 emissive;
+uniform float opacity;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
+	vec3 totalEmissiveRadiance = emissive;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,qT=`#define MATCAP
+varying vec3 vViewPosition;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vViewPosition = - mvPosition.xyz;
+}`,YT=`#define MATCAP
+uniform vec3 diffuse;
+uniform float opacity;
+uniform sampler2D matcap;
+varying vec3 vViewPosition;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vec3 viewDir = normalize( vViewPosition );
+	vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
+	vec3 y = cross( viewDir, x );
+	vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
+	#ifdef USE_MATCAP
+		vec4 matcapColor = texture2D( matcap, uv );
+	#else
+		vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );
+	#endif
+	vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,KT=`#define NORMAL
+#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
+	varying vec3 vViewPosition;
+#endif
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
+	vViewPosition = - mvPosition.xyz;
+#endif
+}`,ZT=`#define NORMAL
+uniform float opacity;
+#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
+	varying vec3 vViewPosition;
+#endif
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );
+	#include 
+	#include 
+	#include 
+	#include 
+	gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );
+	#ifdef OPAQUE
+		gl_FragColor.a = 1.0;
+	#endif
+}`,JT=`#define PHONG
+varying vec3 vViewPosition;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vViewPosition = - mvPosition.xyz;
+	#include 
+	#include 
+	#include 
+	#include 
+}`,$T=`#define PHONG
+uniform vec3 diffuse;
+uniform vec3 emissive;
+uniform vec3 specular;
+uniform float shininess;
+uniform float opacity;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
+	vec3 totalEmissiveRadiance = emissive;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,QT=`#define STANDARD
+varying vec3 vViewPosition;
+#ifdef USE_TRANSMISSION
+	varying vec3 vWorldPosition;
+#endif
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vViewPosition = - mvPosition.xyz;
+	#include 
+	#include 
+	#include 
+#ifdef USE_TRANSMISSION
+	vWorldPosition = worldPosition.xyz;
+#endif
+}`,eM=`#define STANDARD
+#ifdef PHYSICAL
+	#define IOR
+	#define USE_SPECULAR
+#endif
+uniform vec3 diffuse;
+uniform vec3 emissive;
+uniform float roughness;
+uniform float metalness;
+uniform float opacity;
+#ifdef IOR
+	uniform float ior;
+#endif
+#ifdef USE_SPECULAR
+	uniform float specularIntensity;
+	uniform vec3 specularColor;
+	#ifdef USE_SPECULAR_COLORMAP
+		uniform sampler2D specularColorMap;
+	#endif
+	#ifdef USE_SPECULAR_INTENSITYMAP
+		uniform sampler2D specularIntensityMap;
+	#endif
+#endif
+#ifdef USE_CLEARCOAT
+	uniform float clearcoat;
+	uniform float clearcoatRoughness;
+#endif
+#ifdef USE_IRIDESCENCE
+	uniform float iridescence;
+	uniform float iridescenceIOR;
+	uniform float iridescenceThicknessMinimum;
+	uniform float iridescenceThicknessMaximum;
+#endif
+#ifdef USE_SHEEN
+	uniform vec3 sheenColor;
+	uniform float sheenRoughness;
+	#ifdef USE_SHEEN_COLORMAP
+		uniform sampler2D sheenColorMap;
+	#endif
+	#ifdef USE_SHEEN_ROUGHNESSMAP
+		uniform sampler2D sheenRoughnessMap;
+	#endif
+#endif
+#ifdef USE_ANISOTROPY
+	uniform vec2 anisotropyVector;
+	#ifdef USE_ANISOTROPYMAP
+		uniform sampler2D anisotropyMap;
+	#endif
+#endif
+varying vec3 vViewPosition;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
+	vec3 totalEmissiveRadiance = emissive;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;
+	vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;
+	#include 
+	vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
+	#ifdef USE_SHEEN
+		float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
+		outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;
+	#endif
+	#ifdef USE_CLEARCOAT
+		float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );
+		vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
+		outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;
+	#endif
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,tM=`#define TOON
+varying vec3 vViewPosition;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vViewPosition = - mvPosition.xyz;
+	#include 
+	#include 
+	#include 
+}`,nM=`#define TOON
+uniform vec3 diffuse;
+uniform vec3 emissive;
+uniform float opacity;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
+	vec3 totalEmissiveRadiance = emissive;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,iM=`uniform float size;
+uniform float scale;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#ifdef USE_POINTS_UV
+	varying vec2 vUv;
+	uniform mat3 uvTransform;
+#endif
+void main() {
+	#ifdef USE_POINTS_UV
+		vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
+	#endif
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	gl_PointSize = size;
+	#ifdef USE_SIZEATTENUATION
+		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
+		if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );
+	#endif
+	#include 
+	#include 
+	#include 
+	#include 
+}`,rM=`uniform vec3 diffuse;
+uniform float opacity;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	vec3 outgoingLight = vec3( 0.0 );
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	outgoingLight = diffuseColor.rgb;
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,sM=`#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+}`,oM=`uniform vec3 color;
+uniform float opacity;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
+	#include 
+	#include 
+	#include 
+}`,aM=`uniform float rotation;
+uniform vec2 center;
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	#include 
+	vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );
+	vec2 scale;
+	scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );
+	scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );
+	#ifndef USE_SIZEATTENUATION
+		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
+		if ( isPerspective ) scale *= - mvPosition.z;
+	#endif
+	vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;
+	vec2 rotatedPosition;
+	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
+	rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
+	mvPosition.xy += rotatedPosition;
+	gl_Position = projectionMatrix * mvPosition;
+	#include 
+	#include 
+	#include 
+}`,lM=`uniform vec3 diffuse;
+uniform float opacity;
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+void main() {
+	vec4 diffuseColor = vec4( diffuse, opacity );
+	#include 
+	vec3 outgoingLight = vec3( 0.0 );
+	#include 
+	#include 
+	#include 
+	#include 
+	#include 
+	outgoingLight = diffuseColor.rgb;
+	#include 
+	#include 
+	#include 
+	#include 
+}`,Et={alphahash_fragment:Rx,alphahash_pars_fragment:Ix,alphamap_fragment:Px,alphamap_pars_fragment:Nx,alphatest_fragment:Lx,alphatest_pars_fragment:Ox,aomap_fragment:Dx,aomap_pars_fragment:Fx,batching_pars_vertex:Ux,batching_vertex:kx,begin_vertex:Bx,beginnormal_vertex:Gx,bsdfs:Vx,iridescence_fragment:zx,bumpmap_pars_fragment:Hx,clipping_planes_fragment:Wx,clipping_planes_pars_fragment:Xx,clipping_planes_pars_vertex:jx,clipping_planes_vertex:qx,color_fragment:Yx,color_pars_fragment:Kx,color_pars_vertex:Zx,color_vertex:Jx,common:$x,cube_uv_reflection_fragment:Qx,defaultnormal_vertex:e_,displacementmap_pars_vertex:t_,displacementmap_vertex:n_,emissivemap_fragment:i_,emissivemap_pars_fragment:r_,colorspace_fragment:s_,colorspace_pars_fragment:o_,envmap_fragment:a_,envmap_common_pars_fragment:l_,envmap_pars_fragment:c_,envmap_pars_vertex:u_,envmap_physical_pars_fragment:M_,envmap_vertex:h_,fog_vertex:f_,fog_pars_vertex:d_,fog_fragment:p_,fog_pars_fragment:m_,gradientmap_pars_fragment:g_,lightmap_fragment:v_,lightmap_pars_fragment:y_,lights_lambert_fragment:x_,lights_lambert_pars_fragment:__,lights_pars_begin:T_,lights_toon_fragment:E_,lights_toon_pars_fragment:b_,lights_phong_fragment:S_,lights_phong_pars_fragment:A_,lights_physical_fragment:w_,lights_physical_pars_fragment:C_,lights_fragment_begin:R_,lights_fragment_maps:I_,lights_fragment_end:P_,logdepthbuf_fragment:N_,logdepthbuf_pars_fragment:L_,logdepthbuf_pars_vertex:O_,logdepthbuf_vertex:D_,map_fragment:F_,map_pars_fragment:U_,map_particle_fragment:k_,map_particle_pars_fragment:B_,metalnessmap_fragment:G_,metalnessmap_pars_fragment:V_,morphinstance_vertex:z_,morphcolor_vertex:H_,morphnormal_vertex:W_,morphtarget_pars_vertex:X_,morphtarget_vertex:j_,normal_fragment_begin:q_,normal_fragment_maps:Y_,normal_pars_fragment:K_,normal_pars_vertex:Z_,normal_vertex:J_,normalmap_pars_fragment:$_,clearcoat_normal_fragment_begin:Q_,clearcoat_normal_fragment_maps:eT,clearcoat_pars_fragment:tT,iridescence_pars_fragment:nT,opaque_fragment:iT,packing:rT,premultiplied_alpha_fragment:sT,project_vertex:oT,dithering_fragment:aT,dithering_pars_fragment:lT,roughnessmap_fragment:cT,roughnessmap_pars_fragment:uT,shadowmap_pars_fragment:hT,shadowmap_pars_vertex:fT,shadowmap_vertex:dT,shadowmask_pars_fragment:pT,skinbase_vertex:mT,skinning_pars_vertex:gT,skinning_vertex:vT,skinnormal_vertex:yT,specularmap_fragment:xT,specularmap_pars_fragment:_T,tonemapping_fragment:TT,tonemapping_pars_fragment:MT,transmission_fragment:ET,transmission_pars_fragment:bT,uv_pars_fragment:ST,uv_pars_vertex:AT,uv_vertex:wT,worldpos_vertex:CT,background_vert:RT,background_frag:IT,backgroundCube_vert:PT,backgroundCube_frag:NT,cube_vert:LT,cube_frag:OT,depth_vert:DT,depth_frag:FT,distanceRGBA_vert:UT,distanceRGBA_frag:kT,equirect_vert:BT,equirect_frag:GT,linedashed_vert:VT,linedashed_frag:zT,meshbasic_vert:HT,meshbasic_frag:WT,meshlambert_vert:XT,meshlambert_frag:jT,meshmatcap_vert:qT,meshmatcap_frag:YT,meshnormal_vert:KT,meshnormal_frag:ZT,meshphong_vert:JT,meshphong_frag:$T,meshphysical_vert:QT,meshphysical_frag:eM,meshtoon_vert:tM,meshtoon_frag:nM,points_vert:iM,points_frag:rM,shadow_vert:sM,shadow_frag:oM,sprite_vert:aM,sprite_frag:lM},Ge={common:{diffuse:{value:new Ve(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new ft},alphaMap:{value:null},alphaMapTransform:{value:new ft},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new ft}},envmap:{envMap:{value:null},envMapRotation:{value:new ft},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new ft}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new ft}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new ft},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new ft},normalScale:{value:new Ce(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new ft},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new ft}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new ft}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new ft}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ve(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ve(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new ft},alphaTest:{value:0},uvTransform:{value:new ft}},sprite:{diffuse:{value:new Ve(16777215)},opacity:{value:1},center:{value:new Ce(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new ft},alphaMap:{value:null},alphaMapTransform:{value:new ft},alphaTest:{value:0}}},dr={basic:{uniforms:Jn([Ge.common,Ge.specularmap,Ge.envmap,Ge.aomap,Ge.lightmap,Ge.fog]),vertexShader:Et.meshbasic_vert,fragmentShader:Et.meshbasic_frag},lambert:{uniforms:Jn([Ge.common,Ge.specularmap,Ge.envmap,Ge.aomap,Ge.lightmap,Ge.emissivemap,Ge.bumpmap,Ge.normalmap,Ge.displacementmap,Ge.fog,Ge.lights,{emissive:{value:new Ve(0)}}]),vertexShader:Et.meshlambert_vert,fragmentShader:Et.meshlambert_frag},phong:{uniforms:Jn([Ge.common,Ge.specularmap,Ge.envmap,Ge.aomap,Ge.lightmap,Ge.emissivemap,Ge.bumpmap,Ge.normalmap,Ge.displacementmap,Ge.fog,Ge.lights,{emissive:{value:new Ve(0)},specular:{value:new Ve(1118481)},shininess:{value:30}}]),vertexShader:Et.meshphong_vert,fragmentShader:Et.meshphong_frag},standard:{uniforms:Jn([Ge.common,Ge.envmap,Ge.aomap,Ge.lightmap,Ge.emissivemap,Ge.bumpmap,Ge.normalmap,Ge.displacementmap,Ge.roughnessmap,Ge.metalnessmap,Ge.fog,Ge.lights,{emissive:{value:new Ve(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Et.meshphysical_vert,fragmentShader:Et.meshphysical_frag},toon:{uniforms:Jn([Ge.common,Ge.aomap,Ge.lightmap,Ge.emissivemap,Ge.bumpmap,Ge.normalmap,Ge.displacementmap,Ge.gradientmap,Ge.fog,Ge.lights,{emissive:{value:new Ve(0)}}]),vertexShader:Et.meshtoon_vert,fragmentShader:Et.meshtoon_frag},matcap:{uniforms:Jn([Ge.common,Ge.bumpmap,Ge.normalmap,Ge.displacementmap,Ge.fog,{matcap:{value:null}}]),vertexShader:Et.meshmatcap_vert,fragmentShader:Et.meshmatcap_frag},points:{uniforms:Jn([Ge.points,Ge.fog]),vertexShader:Et.points_vert,fragmentShader:Et.points_frag},dashed:{uniforms:Jn([Ge.common,Ge.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Et.linedashed_vert,fragmentShader:Et.linedashed_frag},depth:{uniforms:Jn([Ge.common,Ge.displacementmap]),vertexShader:Et.depth_vert,fragmentShader:Et.depth_frag},normal:{uniforms:Jn([Ge.common,Ge.bumpmap,Ge.normalmap,Ge.displacementmap,{opacity:{value:1}}]),vertexShader:Et.meshnormal_vert,fragmentShader:Et.meshnormal_frag},sprite:{uniforms:Jn([Ge.sprite,Ge.fog]),vertexShader:Et.sprite_vert,fragmentShader:Et.sprite_frag},background:{uniforms:{uvTransform:{value:new ft},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Et.background_vert,fragmentShader:Et.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new ft}},vertexShader:Et.backgroundCube_vert,fragmentShader:Et.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Et.cube_vert,fragmentShader:Et.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Et.equirect_vert,fragmentShader:Et.equirect_frag},distanceRGBA:{uniforms:Jn([Ge.common,Ge.displacementmap,{referencePosition:{value:new oe},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Et.distanceRGBA_vert,fragmentShader:Et.distanceRGBA_frag},shadow:{uniforms:Jn([Ge.lights,Ge.fog,{color:{value:new Ve(0)},opacity:{value:1}}]),vertexShader:Et.shadow_vert,fragmentShader:Et.shadow_frag}};dr.physical={uniforms:Jn([dr.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new ft},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new ft},clearcoatNormalScale:{value:new Ce(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new ft},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new ft},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new ft},sheen:{value:0},sheenColor:{value:new Ve(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new ft},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new ft},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new ft},transmissionSamplerSize:{value:new Ce},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new ft},attenuationDistance:{value:0},attenuationColor:{value:new Ve(0)},specularColor:{value:new Ve(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new ft},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new ft},anisotropyVector:{value:new Ce},anisotropyMap:{value:null},anisotropyMapTransform:{value:new ft}}]),vertexShader:Et.meshphysical_vert,fragmentShader:Et.meshphysical_frag};var _u={r:0,b:0,g:0},Hs=new hn,cM=new Ye;function uM(r,e,t,n,i,s,o){let a=new Ve(0),l=s===!0?0:1,c,u,h=null,f=0,p=null;function g(d,m){let _=!1,y=m.isScene===!0?m.background:null;y&&y.isTexture&&(y=(m.backgroundBlurriness>0?t:e).get(y)),y===null?v(a,l):y&&y.isColor&&(v(y,1),_=!0);let x=r.xr.getEnvironmentBlendMode();x==="additive"?n.buffers.color.setClear(0,0,0,1,o):x==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,o),(r.autoClear||_)&&r.clear(r.autoClearColor,r.autoClearDepth,r.autoClearStencil),y&&(y.isCubeTexture||y.mapping===ch)?(u===void 0&&(u=new Pt(new Zs(1,1,1),new pr({name:"BackgroundCubeMaterial",uniforms:ma(dr.backgroundCube.uniforms),vertexShader:dr.backgroundCube.vertexShader,fragmentShader:dr.backgroundCube.fragmentShader,side:Tn,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(w,I,C){this.matrixWorld.copyPosition(C.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(u)),Hs.copy(m.backgroundRotation),Hs.x*=-1,Hs.y*=-1,Hs.z*=-1,y.isCubeTexture&&y.isRenderTargetTexture===!1&&(Hs.y*=-1,Hs.z*=-1),u.material.uniforms.envMap.value=y,u.material.uniforms.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,u.material.uniforms.backgroundBlurriness.value=m.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=m.backgroundIntensity,u.material.uniforms.backgroundRotation.value.setFromMatrix4(cM.makeRotationFromEuler(Hs)),u.material.toneMapped=Bt.getTransfer(y.colorSpace)!==Qt,(h!==y||f!==y.version||p!==r.toneMapping)&&(u.material.needsUpdate=!0,h=y,f=y.version,p=r.toneMapping),u.layers.enableAll(),d.unshift(u,u.geometry,u.material,0,0,null)):y&&y.isTexture&&(c===void 0&&(c=new Pt(new ga(2,2),new pr({name:"BackgroundMaterial",uniforms:ma(dr.background.uniforms),vertexShader:dr.background.vertexShader,fragmentShader:dr.background.fragmentShader,side:wi,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(c)),c.material.uniforms.t2D.value=y,c.material.uniforms.backgroundIntensity.value=m.backgroundIntensity,c.material.toneMapped=Bt.getTransfer(y.colorSpace)!==Qt,y.matrixAutoUpdate===!0&&y.updateMatrix(),c.material.uniforms.uvTransform.value.copy(y.matrix),(h!==y||f!==y.version||p!==r.toneMapping)&&(c.material.needsUpdate=!0,h=y,f=y.version,p=r.toneMapping),c.layers.enableAll(),d.unshift(c,c.geometry,c.material,0,0,null))}function v(d,m){d.getRGB(_u,x0(r)),n.buffers.color.setClear(_u.r,_u.g,_u.b,m,o)}return{getClearColor:function(){return a},setClearColor:function(d,m=1){a.set(d),l=m,v(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(d){l=d,v(a,l)},render:g}}function hM(r,e){let t=r.getParameter(r.MAX_VERTEX_ATTRIBS),n={},i=f(null),s=i,o=!1;function a(M,L,N,O,B){let ie=!1,$=h(O,N,L);s!==$&&(s=$,c(s.object)),ie=p(M,O,N,B),ie&&g(M,O,N,B),B!==null&&e.update(B,r.ELEMENT_ARRAY_BUFFER),(ie||o)&&(o=!1,x(M,L,N,O),B!==null&&r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e.get(B).buffer))}function l(){return r.createVertexArray()}function c(M){return r.bindVertexArray(M)}function u(M){return r.deleteVertexArray(M)}function h(M,L,N){let O=N.wireframe===!0,B=n[M.id];B===void 0&&(B={},n[M.id]=B);let ie=B[L.id];ie===void 0&&(ie={},B[L.id]=ie);let $=ie[O];return $===void 0&&($=f(l()),ie[O]=$),$}function f(M){let L=[],N=[],O=[];for(let B=0;B=0){let de=B[W],ye=ie[W];if(ye===void 0&&(W==="instanceMatrix"&&M.instanceMatrix&&(ye=M.instanceMatrix),W==="instanceColor"&&M.instanceColor&&(ye=M.instanceColor)),de===void 0||de.attribute!==ye||ye&&de.data!==ye.data)return!0;$++}return s.attributesNum!==$||s.index!==O}function g(M,L,N,O){let B={},ie=L.attributes,$=0,te=N.getAttributes();for(let W in te)if(te[W].location>=0){let de=ie[W];de===void 0&&(W==="instanceMatrix"&&M.instanceMatrix&&(de=M.instanceMatrix),W==="instanceColor"&&M.instanceColor&&(de=M.instanceColor));let ye={};ye.attribute=de,de&&de.data&&(ye.data=de.data),B[W]=ye,$++}s.attributes=B,s.attributesNum=$,s.index=O}function v(){let M=s.newAttributes;for(let L=0,N=M.length;L=0){let ae=B[te];if(ae===void 0&&(te==="instanceMatrix"&&M.instanceMatrix&&(ae=M.instanceMatrix),te==="instanceColor"&&M.instanceColor&&(ae=M.instanceColor)),ae!==void 0){let de=ae.normalized,ye=ae.itemSize,Me=e.get(ae);if(Me===void 0)continue;let ve=Me.buffer,R=Me.type,T=Me.bytesPerElement,S=R===r.INT||R===r.UNSIGNED_INT||ae.gpuType===c0;if(ae.isInterleavedBufferAttribute){let b=ae.data,V=b.stride,q=ae.offset;if(b.isInstancedInterleavedBuffer){for(let Y=0;Y0&&r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.HIGH_FLOAT).precision>0)return"highp";y="mediump"}return y==="mediump"&&r.getShaderPrecisionFormat(r.VERTEX_SHADER,r.MEDIUM_FLOAT).precision>0&&r.getShaderPrecisionFormat(r.FRAGMENT_SHADER,r.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let o=t.precision!==void 0?t.precision:"highp",a=s(o);a!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",a,"instead."),o=a);let l=t.logarithmicDepthBuffer===!0,c=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS),u=r.getParameter(r.MAX_VERTEX_TEXTURE_IMAGE_UNITS),h=r.getParameter(r.MAX_TEXTURE_SIZE),f=r.getParameter(r.MAX_CUBE_MAP_TEXTURE_SIZE),p=r.getParameter(r.MAX_VERTEX_ATTRIBS),g=r.getParameter(r.MAX_VERTEX_UNIFORM_VECTORS),v=r.getParameter(r.MAX_VARYING_VECTORS),d=r.getParameter(r.MAX_FRAGMENT_UNIFORM_VECTORS),m=u>0,_=r.getParameter(r.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:i,getMaxPrecision:s,precision:o,logarithmicDepthBuffer:l,maxTextures:c,maxVertexTextures:u,maxTextureSize:h,maxCubemapSize:f,maxAttributes:p,maxVertexUniforms:g,maxVaryings:v,maxFragmentUniforms:d,vertexTextures:m,maxSamples:_}}function pM(r){let e=this,t=null,n=0,i=!1,s=!1,o=new Br,a=new ft,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(h,f){let p=h.length!==0||f||n!==0||i;return i=f,n=h.length,p},this.beginShadows=function(){s=!0,u(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(h,f){t=u(h,f,0)},this.setState=function(h,f,p){let g=h.clippingPlanes,v=h.clipIntersection,d=h.clipShadows,m=r.get(h);if(!i||g===null||g.length===0||s&&!d)s?u(null):c();else{let _=s?0:n,y=_*4,x=m.clippingState||null;l.value=x,x=u(g,f,y,p);for(let w=0;w!==y;++w)x[w]=t[w];m.clippingState=x,this.numIntersection=v?this.numPlanes:0,this.numPlanes+=_}};function c(){l.value!==t&&(l.value=t,l.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function u(h,f,p,g){let v=h!==null?h.length:0,d=null;if(v!==0){if(d=l.value,g!==!0||d===null){let m=p+v*4,_=f.matrixWorldInverse;a.getNormalMatrix(_),(d===null||d.length0){let c=new $f(l.height);return c.fromEquirectangularTexture(r,o),e.set(o,c),o.addEventListener("dispose",i),t(c.texture,o.mapping)}else return null}}return o}function i(o){let a=o.target;a.removeEventListener("dispose",i);let l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function s(){e=new WeakMap}return{get:n,dispose:s}}var mr=class extends Wu{constructor(e=-1,t=1,n=1,i=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=i,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,n,i,s,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=i,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2,s=n-e,o=n+e,a=i+t,l=i-t;if(this.view!==null&&this.view.enabled){let c=(this.right-this.left)/this.view.fullWidth/this.zoom,u=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=c*this.view.offsetX,o=s+c*this.view.width,a-=u*this.view.offsetY,l=a-u*this.view.height}this.projectionMatrix.makeOrthographic(s,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}},ta=4,mg=[.125,.215,.35,.446,.526,.582],qs=20,Pf=new mr,gg=new Ve,Nf=null,Lf=0,Of=0,Df=!1,Xs=(1+Math.sqrt(5))/2,Qo=1/Xs,vg=[new oe(1,1,1),new oe(-1,1,1),new oe(1,1,-1),new oe(-1,1,-1),new oe(0,Xs,Qo),new oe(0,Xs,-Qo),new oe(Qo,0,Xs),new oe(-Qo,0,Xs),new oe(Xs,Qo,0),new oe(-Xs,Qo,0)],Xu=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,i=100){Nf=this._renderer.getRenderTarget(),Lf=this._renderer.getActiveCubeFace(),Of=this._renderer.getActiveMipmapLevel(),Df=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);let s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,n,i,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=_g(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=xg(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?y:0,y,y),u.setRenderTarget(i),v&&u.render(g,a),u.render(e,a)}g.geometry.dispose(),g.material.dispose(),u.toneMapping=f,u.autoClear=h,e.background=d}_textureToCubeUV(e,t){let n=this._renderer,i=e.mapping===la||e.mapping===ca;i?(this._cubemapMaterial===null&&(this._cubemapMaterial=_g()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=xg());let s=i?this._cubemapMaterial:this._equirectMaterial,o=new Pt(this._lodPlanes[0],s),a=s.uniforms;a.envMap.value=e;let l=this._cubeSize;Tu(t,0,0,3*l,2*l),n.setRenderTarget(t),n.render(o,Pf)}_applyPMREM(e){let t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let i=1;iqs&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${d} samples when the maximum is set to ${qs}`);let m=[],_=0;for(let C=0;Cy-ta?i-y+ta:0),I=4*(this._cubeSize-x);Tu(t,w,I,3*x,2*x),l.setRenderTarget(t),l.render(h,Pf)}};function gM(r){let e=[],t=[],n=[],i=r,s=r-ta+1+mg.length;for(let o=0;or-ta?l=mg[o-r+ta-1]:o===0&&(l=0),n.push(l);let c=1/(a-2),u=-c,h=1+c,f=[u,u,h,u,h,h,u,u,h,h,u,h],p=6,g=6,v=3,d=2,m=1,_=new Float32Array(v*g*p),y=new Float32Array(d*g*p),x=new Float32Array(m*g*p);for(let I=0;I2?0:-1,E=[C,P,0,C+2/3,P,0,C+2/3,P+1,0,C,P,0,C+2/3,P+1,0,C,P+1,0];_.set(E,v*g*I),y.set(f,d*g*I);let M=[I,I,I,I,I,I];x.set(M,m*g*I)}let w=new St;w.setAttribute("position",new Gn(_,v)),w.setAttribute("uv",new Gn(y,d)),w.setAttribute("faceIndex",new Gn(x,m)),e.push(w),i>ta&&i--}return{lodPlanes:e,sizeLods:t,sigmas:n}}function yg(r,e,t){let n=new zr(r,e,t);return n.texture.mapping=ch,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function Tu(r,e,t,n,i){r.viewport.set(e,t,n,i),r.scissor.set(e,t,n,i)}function vM(r,e,t){let n=new Float32Array(qs),i=new oe(0,1,0);return new pr({name:"SphericalGaussianBlur",defines:{n:qs,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${r}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:Ld(),fragmentShader:`
+
+			precision mediump float;
+			precision mediump int;
+
+			varying vec3 vOutputDirection;
+
+			uniform sampler2D envMap;
+			uniform int samples;
+			uniform float weights[ n ];
+			uniform bool latitudinal;
+			uniform float dTheta;
+			uniform float mipInt;
+			uniform vec3 poleAxis;
+
+			#define ENVMAP_TYPE_CUBE_UV
+			#include 
+
+			vec3 getSample( float theta, vec3 axis ) {
+
+				float cosTheta = cos( theta );
+				// Rodrigues' axis-angle rotation
+				vec3 sampleDirection = vOutputDirection * cosTheta
+					+ cross( axis, vOutputDirection ) * sin( theta )
+					+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );
+
+				return bilinearCubeUV( envMap, sampleDirection, mipInt );
+
+			}
+
+			void main() {
+
+				vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );
+
+				if ( all( equal( axis, vec3( 0.0 ) ) ) ) {
+
+					axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );
+
+				}
+
+				axis = normalize( axis );
+
+				gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
+				gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );
+
+				for ( int i = 1; i < n; i++ ) {
+
+					if ( i >= samples ) {
+
+						break;
+
+					}
+
+					float theta = dTheta * float( i );
+					gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );
+					gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );
+
+				}
+
+			}
+		`,blending:us,depthTest:!1,depthWrite:!1})}function xg(){return new pr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Ld(),fragmentShader:`
+
+			precision mediump float;
+			precision mediump int;
+
+			varying vec3 vOutputDirection;
+
+			uniform sampler2D envMap;
+
+			#include 
+
+			void main() {
+
+				vec3 outputDirection = normalize( vOutputDirection );
+				vec2 uv = equirectUv( outputDirection );
+
+				gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );
+
+			}
+		`,blending:us,depthTest:!1,depthWrite:!1})}function _g(){return new pr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Ld(),fragmentShader:`
+
+			precision mediump float;
+			precision mediump int;
+
+			uniform float flipEnvMap;
+
+			varying vec3 vOutputDirection;
+
+			uniform samplerCube envMap;
+
+			void main() {
+
+				gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );
+
+			}
+		`,blending:us,depthTest:!1,depthWrite:!1})}function Ld(){return`
+
+		precision mediump float;
+		precision mediump int;
+
+		attribute float faceIndex;
+
+		varying vec3 vOutputDirection;
+
+		// RH coordinate system; PMREM face-indexing convention
+		vec3 getDirection( vec2 uv, float face ) {
+
+			uv = 2.0 * uv - 1.0;
+
+			vec3 direction = vec3( uv, 1.0 );
+
+			if ( face == 0.0 ) {
+
+				direction = direction.zyx; // ( 1, v, u ) pos x
+
+			} else if ( face == 1.0 ) {
+
+				direction = direction.xzy;
+				direction.xz *= -1.0; // ( -u, 1, -v ) pos y
+
+			} else if ( face == 2.0 ) {
+
+				direction.x *= -1.0; // ( -u, v, 1 ) pos z
+
+			} else if ( face == 3.0 ) {
+
+				direction = direction.zyx;
+				direction.xz *= -1.0; // ( -1, v, -u ) neg x
+
+			} else if ( face == 4.0 ) {
+
+				direction = direction.xzy;
+				direction.xy *= -1.0; // ( -u, -1, v ) neg y
+
+			} else if ( face == 5.0 ) {
+
+				direction.z *= -1.0; // ( u, v, -1 ) neg z
+
+			}
+
+			return direction;
+
+		}
+
+		void main() {
+
+			vOutputDirection = getDirection( uv, faceIndex );
+			gl_Position = vec4( position, 1.0 );
+
+		}
+	`}function yM(r){let e=new WeakMap,t=null;function n(a){if(a&&a.isTexture){let l=a.mapping,c=l===Ul||l===Yf,u=l===la||l===ca;if(c||u){let h=e.get(a),f=h!==void 0?h.texture.pmremVersion:0;if(a.isRenderTargetTexture&&a.pmremVersion!==f)return t===null&&(t=new Xu(r)),h=c?t.fromEquirectangular(a,h):t.fromCubemap(a,h),h.texture.pmremVersion=a.pmremVersion,e.set(a,h),h.texture;if(h!==void 0)return h.texture;{let p=a.image;return c&&p&&p.height>0||u&&p&&i(p)?(t===null&&(t=new Xu(r)),h=c?t.fromEquirectangular(a):t.fromCubemap(a),h.texture.pmremVersion=a.pmremVersion,e.set(a,h),a.addEventListener("dispose",s),h.texture):null}}}return a}function i(a){let l=0,c=6;for(let u=0;ue.maxTextureSize&&(w=Math.ceil(x/e.maxTextureSize),x=e.maxTextureSize);let I=new Float32Array(x*w*4*h),C=new zu(I,x,w,h);C.type=Gr,C.needsUpdate=!0;let P=y*4;for(let M=0;M0)return r;let i=e*t,s=Tg[i];if(s===void 0&&(s=new Float32Array(i),Tg[i]=s),e!==0){n.toArray(s,0);for(let o=1,a=0;o!==e;++o)a+=t,r[o].toArray(s,a)}return s}function Sn(r,e){if(r.length!==e.length)return!1;for(let t=0,n=r.length;t":" "} ${a}: ${t[o]}`)}return n.join(`
+`)}function mE(r){let e=Bt.getPrimaries(Bt.workingColorSpace),t=Bt.getPrimaries(r),n;switch(e===t?n="":e===Bu&&t===ku?n="LinearDisplayP3ToLinearSRGB":e===ku&&t===Bu&&(n="LinearSRGBToLinearDisplayP3"),r){case li:case hh:return[n,"LinearTransferOETF"];case jt:case Pd:return[n,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",r),[n,"LinearTransferOETF"]}}function Cg(r,e,t){let n=r.getShaderParameter(e,r.COMPILE_STATUS),i=r.getShaderInfoLog(e).trim();if(n&&i==="")return"";let s=/ERROR: 0:(\d+)/.exec(i);if(s){let o=parseInt(s[1]);return t.toUpperCase()+`
+
+`+i+`
+
+`+pE(r.getShaderSource(e),o)}else return i}function gE(r,e){let t=mE(e);return`vec4 ${r}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function vE(r,e){let t;switch(e){case my:t="Linear";break;case gy:t="Reinhard";break;case vy:t="OptimizedCineon";break;case yy:t="ACESFilmic";break;case _y:t="AgX";break;case Ty:t="Neutral";break;case xy:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+r+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function yE(r){return[r.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",r.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(Nl).join(`
+`)}function xE(r){let e=[];for(let t in r){let n=r[t];n!==!1&&e.push("#define "+t+" "+n)}return e.join(`
+`)}function _E(r,e){let t={},n=r.getProgramParameter(e,r.ACTIVE_ATTRIBUTES);for(let i=0;i/gm;function nd(r){return r.replace(TE,EE)}var ME=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function EE(r,e){let t=Et[e];if(t===void 0){let n=ME.get(e);if(n!==void 0)t=Et[n],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,n);else throw new Error("Can not resolve #include <"+e+">")}return nd(t)}var bE=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function Pg(r){return r.replace(bE,SE)}function SE(r,e,t,n){let i="";for(let s=parseInt(e);s0&&(d+=`
+`),m=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,g].filter(Nl).join(`
+`),m.length>0&&(m+=`
+`)):(d=[Ng(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,g,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+u:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","	attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","	attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","	uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","	attribute vec2 uv1;","#endif","#ifdef USE_UV2","	attribute vec2 uv2;","#endif","#ifdef USE_UV3","	attribute vec2 uv3;","#endif","#ifdef USE_TANGENT","	attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","	attribute vec4 color;","#elif defined( USE_COLOR )","	attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","	attribute vec3 morphTarget0;","	attribute vec3 morphTarget1;","	attribute vec3 morphTarget2;","	attribute vec3 morphTarget3;","	#ifdef USE_MORPHNORMALS","		attribute vec3 morphNormal0;","		attribute vec3 morphNormal1;","		attribute vec3 morphNormal2;","		attribute vec3 morphNormal3;","	#else","		attribute vec3 morphTarget4;","		attribute vec3 morphTarget5;","		attribute vec3 morphTarget6;","		attribute vec3 morphTarget7;","	#endif","#endif","#ifdef USE_SKINNING","	attribute vec4 skinIndex;","	attribute vec4 skinWeight;","#endif",`
+`].filter(Nl).join(`
+`),m=[Ng(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,g,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+c:"",t.envMap?"#define "+u:"",t.envMap?"#define "+h:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==hs?"#define TONE_MAPPING":"",t.toneMapping!==hs?Et.tonemapping_pars_fragment:"",t.toneMapping!==hs?vE("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Et.colorspace_pars_fragment,gE("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",`
+`].filter(Nl).join(`
+`)),o=nd(o),o=Rg(o,t),o=Ig(o,t),a=nd(a),a=Rg(a,t),a=Ig(a,t),o=Pg(o),a=Pg(a),t.isRawShaderMaterial!==!0&&(_=`#version 300 es
+`,d=[p,"#define attribute in","#define varying out","#define texture2D texture"].join(`
+`)+`
+`+d,m=["#define varying in",t.glslVersion===Ym?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===Ym?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`
+`)+`
+`+m);let y=_+d+o,x=_+m+a,w=wg(i,i.VERTEX_SHADER,y),I=wg(i,i.FRAGMENT_SHADER,x);i.attachShader(v,w),i.attachShader(v,I),t.index0AttributeName!==void 0?i.bindAttribLocation(v,0,t.index0AttributeName):t.morphTargets===!0&&i.bindAttribLocation(v,0,"position"),i.linkProgram(v);function C(L){if(r.debug.checkShaderErrors){let N=i.getProgramInfoLog(v).trim(),O=i.getShaderInfoLog(w).trim(),B=i.getShaderInfoLog(I).trim(),ie=!0,$=!0;if(i.getProgramParameter(v,i.LINK_STATUS)===!1)if(ie=!1,typeof r.debug.onShaderError=="function")r.debug.onShaderError(i,v,w,I);else{let te=Cg(i,w,"vertex"),W=Cg(i,I,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(v,i.VALIDATE_STATUS)+`
+
+Material Name: `+L.name+`
+Material Type: `+L.type+`
+
+Program Info Log: `+N+`
+`+te+`
+`+W)}else N!==""?console.warn("THREE.WebGLProgram: Program Info Log:",N):(O===""||B==="")&&($=!1);$&&(L.diagnostics={runnable:ie,programLog:N,vertexShader:{log:O,prefix:d},fragmentShader:{log:B,prefix:m}})}i.deleteShader(w),i.deleteShader(I),P=new aa(i,v),E=_E(i,v)}let P;this.getUniforms=function(){return P===void 0&&C(this),P};let E;this.getAttributes=function(){return E===void 0&&C(this),E};let M=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return M===!1&&(M=i.getProgramParameter(v,fE)),M},this.destroy=function(){n.releaseStatesOfProgram(this),i.deleteProgram(v),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=dE++,this.cacheKey=e,this.usedTimes=1,this.program=v,this.vertexShader=w,this.fragmentShader=I,this}var NE=0,id=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){let t=e.vertexShader,n=e.fragmentShader,i=this._getShaderStage(t),s=this._getShaderStage(n),o=this._getShaderCacheForMaterial(e);return o.has(i)===!1&&(o.add(i),i.usedTimes++),o.has(s)===!1&&(o.add(s),s.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,n=t.get(e);return n===void 0&&(n=new Set,t.set(e,n)),n}_getShaderStage(e){let t=this.shaderCache,n=t.get(e);return n===void 0&&(n=new rd(e),t.set(e,n)),n}},rd=class{constructor(e){this.id=NE++,this.code=e,this.usedTimes=0}};function LE(r,e,t,n,i,s,o){let a=new Gl,l=new id,c=new Set,u=[],h=i.logarithmicDepthBuffer,f=i.vertexTextures,p=i.precision,g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function v(E){return c.add(E),E===0?"uv":`uv${E}`}function d(E,M,L,N,O){let B=N.fog,ie=O.geometry,$=E.isMeshStandardMaterial?N.environment:null,te=(E.isMeshStandardMaterial?t:e).get(E.envMap||$),W=te&&te.mapping===ch?te.image.height:null,ae=g[E.type];E.precision!==null&&(p=i.getMaxPrecision(E.precision),p!==E.precision&&console.warn("THREE.WebGLProgram.getParameters:",E.precision,"not supported, using",p,"instead."));let de=ie.morphAttributes.position||ie.morphAttributes.normal||ie.morphAttributes.color,ye=de!==void 0?de.length:0,Me=0;ie.morphAttributes.position!==void 0&&(Me=1),ie.morphAttributes.normal!==void 0&&(Me=2),ie.morphAttributes.color!==void 0&&(Me=3);let ve,R,T,S;if(ae){let wt=dr[ae];ve=wt.vertexShader,R=wt.fragmentShader}else ve=E.vertexShader,R=E.fragmentShader,l.update(E),T=l.getVertexShaderID(E),S=l.getFragmentShaderID(E);let b=r.getRenderTarget(),V=O.isInstancedMesh===!0,q=O.isBatchedMesh===!0,Y=!!E.map,z=!!E.matcap,X=!!te,se=!!E.aoMap,re=!!E.lightMap,le=!!E.bumpMap,xe=!!E.normalMap,G=!!E.displacementMap,A=!!E.emissiveMap,U=!!E.metalnessMap,he=!!E.roughnessMap,me=E.anisotropy>0,Te=E.clearcoat>0,ee=E.iridescence>0,k=E.sheen>0,J=E.transmission>0,ue=me&&!!E.anisotropyMap,Z=Te&&!!E.clearcoatMap,ce=Te&&!!E.clearcoatNormalMap,pe=Te&&!!E.clearcoatRoughnessMap,fe=ee&&!!E.iridescenceMap,ge=ee&&!!E.iridescenceThicknessMap,Ae=k&&!!E.sheenColorMap,Ie=k&&!!E.sheenRoughnessMap,Fe=!!E.specularMap,Je=!!E.specularColorMap,dt=!!E.specularIntensityMap,Oe=J&&!!E.transmissionMap,ne=J&&!!E.thicknessMap,Pe=!!E.gradientMap,Ne=!!E.alphaMap,Ue=E.alphaTest>0,De=!!E.alphaHash,ut=!!E.extensions,at=hs;E.toneMapped&&(b===null||b.isXRRenderTarget===!0)&&(at=r.toneMapping);let yt={shaderID:ae,shaderType:E.type,shaderName:E.name,vertexShader:ve,fragmentShader:R,defines:E.defines,customVertexShaderID:T,customFragmentShaderID:S,isRawShaderMaterial:E.isRawShaderMaterial===!0,glslVersion:E.glslVersion,precision:p,batching:q,instancing:V,instancingColor:V&&O.instanceColor!==null,instancingMorph:V&&O.morphTexture!==null,supportsVertexTextures:f,outputColorSpace:b===null?r.outputColorSpace:b.isXRRenderTarget===!0?b.texture.colorSpace:li,alphaToCoverage:!!E.alphaToCoverage,map:Y,matcap:z,envMap:X,envMapMode:X&&te.mapping,envMapCubeUVHeight:W,aoMap:se,lightMap:re,bumpMap:le,normalMap:xe,displacementMap:f&&G,emissiveMap:A,normalMapObjectSpace:xe&&E.normalMapType===Uy,normalMapTangentSpace:xe&&E.normalMapType===uh,metalnessMap:U,roughnessMap:he,anisotropy:me,anisotropyMap:ue,clearcoat:Te,clearcoatMap:Z,clearcoatNormalMap:ce,clearcoatRoughnessMap:pe,iridescence:ee,iridescenceMap:fe,iridescenceThicknessMap:ge,sheen:k,sheenColorMap:Ae,sheenRoughnessMap:Ie,specularMap:Fe,specularColorMap:Je,specularIntensityMap:dt,transmission:J,transmissionMap:Oe,thicknessMap:ne,gradientMap:Pe,opaque:E.transparent===!1&&E.blending===ia&&E.alphaToCoverage===!1,alphaMap:Ne,alphaTest:Ue,alphaHash:De,combine:E.combine,mapUv:Y&&v(E.map.channel),aoMapUv:se&&v(E.aoMap.channel),lightMapUv:re&&v(E.lightMap.channel),bumpMapUv:le&&v(E.bumpMap.channel),normalMapUv:xe&&v(E.normalMap.channel),displacementMapUv:G&&v(E.displacementMap.channel),emissiveMapUv:A&&v(E.emissiveMap.channel),metalnessMapUv:U&&v(E.metalnessMap.channel),roughnessMapUv:he&&v(E.roughnessMap.channel),anisotropyMapUv:ue&&v(E.anisotropyMap.channel),clearcoatMapUv:Z&&v(E.clearcoatMap.channel),clearcoatNormalMapUv:ce&&v(E.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:pe&&v(E.clearcoatRoughnessMap.channel),iridescenceMapUv:fe&&v(E.iridescenceMap.channel),iridescenceThicknessMapUv:ge&&v(E.iridescenceThicknessMap.channel),sheenColorMapUv:Ae&&v(E.sheenColorMap.channel),sheenRoughnessMapUv:Ie&&v(E.sheenRoughnessMap.channel),specularMapUv:Fe&&v(E.specularMap.channel),specularColorMapUv:Je&&v(E.specularColorMap.channel),specularIntensityMapUv:dt&&v(E.specularIntensityMap.channel),transmissionMapUv:Oe&&v(E.transmissionMap.channel),thicknessMapUv:ne&&v(E.thicknessMap.channel),alphaMapUv:Ne&&v(E.alphaMap.channel),vertexTangents:!!ie.attributes.tangent&&(xe||me),vertexColors:E.vertexColors,vertexAlphas:E.vertexColors===!0&&!!ie.attributes.color&&ie.attributes.color.itemSize===4,pointsUvs:O.isPoints===!0&&!!ie.attributes.uv&&(Y||Ne),fog:!!B,useFog:E.fog===!0,fogExp2:!!B&&B.isFogExp2,flatShading:E.flatShading===!0,sizeAttenuation:E.sizeAttenuation===!0,logarithmicDepthBuffer:h,skinning:O.isSkinnedMesh===!0,morphTargets:ie.morphAttributes.position!==void 0,morphNormals:ie.morphAttributes.normal!==void 0,morphColors:ie.morphAttributes.color!==void 0,morphTargetsCount:ye,morphTextureStride:Me,numDirLights:M.directional.length,numPointLights:M.point.length,numSpotLights:M.spot.length,numSpotLightMaps:M.spotLightMap.length,numRectAreaLights:M.rectArea.length,numHemiLights:M.hemi.length,numDirLightShadows:M.directionalShadowMap.length,numPointLightShadows:M.pointShadowMap.length,numSpotLightShadows:M.spotShadowMap.length,numSpotLightShadowsWithMaps:M.numSpotLightShadowsWithMaps,numLightProbes:M.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:E.dithering,shadowMapEnabled:r.shadowMap.enabled&&L.length>0,shadowMapType:r.shadowMap.type,toneMapping:at,useLegacyLights:r._useLegacyLights,decodeVideoTexture:Y&&E.map.isVideoTexture===!0&&Bt.getTransfer(E.map.colorSpace)===Qt,premultipliedAlpha:E.premultipliedAlpha,doubleSided:E.side===On,flipSided:E.side===Tn,useDepthPacking:E.depthPacking>=0,depthPacking:E.depthPacking||0,index0AttributeName:E.index0AttributeName,extensionClipCullDistance:ut&&E.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:ut&&E.extensions.multiDraw===!0&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:E.customProgramCacheKey()};return yt.vertexUv1s=c.has(1),yt.vertexUv2s=c.has(2),yt.vertexUv3s=c.has(3),c.clear(),yt}function m(E){let M=[];if(E.shaderID?M.push(E.shaderID):(M.push(E.customVertexShaderID),M.push(E.customFragmentShaderID)),E.defines!==void 0)for(let L in E.defines)M.push(L),M.push(E.defines[L]);return E.isRawShaderMaterial===!1&&(_(M,E),y(M,E),M.push(r.outputColorSpace)),M.push(E.customProgramCacheKey),M.join()}function _(E,M){E.push(M.precision),E.push(M.outputColorSpace),E.push(M.envMapMode),E.push(M.envMapCubeUVHeight),E.push(M.mapUv),E.push(M.alphaMapUv),E.push(M.lightMapUv),E.push(M.aoMapUv),E.push(M.bumpMapUv),E.push(M.normalMapUv),E.push(M.displacementMapUv),E.push(M.emissiveMapUv),E.push(M.metalnessMapUv),E.push(M.roughnessMapUv),E.push(M.anisotropyMapUv),E.push(M.clearcoatMapUv),E.push(M.clearcoatNormalMapUv),E.push(M.clearcoatRoughnessMapUv),E.push(M.iridescenceMapUv),E.push(M.iridescenceThicknessMapUv),E.push(M.sheenColorMapUv),E.push(M.sheenRoughnessMapUv),E.push(M.specularMapUv),E.push(M.specularColorMapUv),E.push(M.specularIntensityMapUv),E.push(M.transmissionMapUv),E.push(M.thicknessMapUv),E.push(M.combine),E.push(M.fogExp2),E.push(M.sizeAttenuation),E.push(M.morphTargetsCount),E.push(M.morphAttributeCount),E.push(M.numDirLights),E.push(M.numPointLights),E.push(M.numSpotLights),E.push(M.numSpotLightMaps),E.push(M.numHemiLights),E.push(M.numRectAreaLights),E.push(M.numDirLightShadows),E.push(M.numPointLightShadows),E.push(M.numSpotLightShadows),E.push(M.numSpotLightShadowsWithMaps),E.push(M.numLightProbes),E.push(M.shadowMapType),E.push(M.toneMapping),E.push(M.numClippingPlanes),E.push(M.numClipIntersection),E.push(M.depthPacking)}function y(E,M){a.disableAll(),M.supportsVertexTextures&&a.enable(0),M.instancing&&a.enable(1),M.instancingColor&&a.enable(2),M.instancingMorph&&a.enable(3),M.matcap&&a.enable(4),M.envMap&&a.enable(5),M.normalMapObjectSpace&&a.enable(6),M.normalMapTangentSpace&&a.enable(7),M.clearcoat&&a.enable(8),M.iridescence&&a.enable(9),M.alphaTest&&a.enable(10),M.vertexColors&&a.enable(11),M.vertexAlphas&&a.enable(12),M.vertexUv1s&&a.enable(13),M.vertexUv2s&&a.enable(14),M.vertexUv3s&&a.enable(15),M.vertexTangents&&a.enable(16),M.anisotropy&&a.enable(17),M.alphaHash&&a.enable(18),M.batching&&a.enable(19),E.push(a.mask),a.disableAll(),M.fog&&a.enable(0),M.useFog&&a.enable(1),M.flatShading&&a.enable(2),M.logarithmicDepthBuffer&&a.enable(3),M.skinning&&a.enable(4),M.morphTargets&&a.enable(5),M.morphNormals&&a.enable(6),M.morphColors&&a.enable(7),M.premultipliedAlpha&&a.enable(8),M.shadowMapEnabled&&a.enable(9),M.useLegacyLights&&a.enable(10),M.doubleSided&&a.enable(11),M.flipSided&&a.enable(12),M.useDepthPacking&&a.enable(13),M.dithering&&a.enable(14),M.transmission&&a.enable(15),M.sheen&&a.enable(16),M.opaque&&a.enable(17),M.pointsUvs&&a.enable(18),M.decodeVideoTexture&&a.enable(19),M.alphaToCoverage&&a.enable(20),E.push(a.mask)}function x(E){let M=g[E.type],L;if(M){let N=dr[M];L=Ex.clone(N.uniforms)}else L=E.uniforms;return L}function w(E,M){let L;for(let N=0,O=u.length;N0?n.push(m):p.transparent===!0?i.push(m):t.push(m)}function l(h,f,p,g,v,d){let m=o(h,f,p,g,v,d);p.transmission>0?n.unshift(m):p.transparent===!0?i.unshift(m):t.unshift(m)}function c(h,f){t.length>1&&t.sort(h||DE),n.length>1&&n.sort(f||Lg),i.length>1&&i.sort(f||Lg)}function u(){for(let h=e,f=r.length;h=s.length?(o=new Og,s.push(o)):o=s[i],o}function t(){r=new WeakMap}return{get:e,dispose:t}}function UE(){let r={};return{get:function(e){if(r[e.id]!==void 0)return r[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new oe,color:new Ve};break;case"SpotLight":t={position:new oe,direction:new oe,color:new Ve,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new oe,color:new Ve,distance:0,decay:0};break;case"HemisphereLight":t={direction:new oe,skyColor:new Ve,groundColor:new Ve};break;case"RectAreaLight":t={color:new Ve,position:new oe,halfWidth:new oe,halfHeight:new oe};break}return r[e.id]=t,t}}}function kE(){let r={};return{get:function(e){if(r[e.id]!==void 0)return r[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ce};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ce};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ce,shadowCameraNear:1,shadowCameraFar:1e3};break}return r[e.id]=t,t}}}var BE=0;function GE(r,e){return(e.castShadow?2:0)-(r.castShadow?2:0)+(e.map?1:0)-(r.map?1:0)}function VE(r){let e=new UE,t=kE(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)n.probe.push(new oe);let i=new oe,s=new Ye,o=new Ye;function a(c,u){let h=0,f=0,p=0;for(let L=0;L<9;L++)n.probe[L].set(0,0,0);let g=0,v=0,d=0,m=0,_=0,y=0,x=0,w=0,I=0,C=0,P=0;c.sort(GE);let E=u===!0?Math.PI:1;for(let L=0,N=c.length;L0&&(r.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=Ge.LTC_FLOAT_1,n.rectAreaLTC2=Ge.LTC_FLOAT_2):(n.rectAreaLTC1=Ge.LTC_HALF_1,n.rectAreaLTC2=Ge.LTC_HALF_2)),n.ambient[0]=h,n.ambient[1]=f,n.ambient[2]=p;let M=n.hash;(M.directionalLength!==g||M.pointLength!==v||M.spotLength!==d||M.rectAreaLength!==m||M.hemiLength!==_||M.numDirectionalShadows!==y||M.numPointShadows!==x||M.numSpotShadows!==w||M.numSpotMaps!==I||M.numLightProbes!==P)&&(n.directional.length=g,n.spot.length=d,n.rectArea.length=m,n.point.length=v,n.hemi.length=_,n.directionalShadow.length=y,n.directionalShadowMap.length=y,n.pointShadow.length=x,n.pointShadowMap.length=x,n.spotShadow.length=w,n.spotShadowMap.length=w,n.directionalShadowMatrix.length=y,n.pointShadowMatrix.length=x,n.spotLightMatrix.length=w+I-C,n.spotLightMap.length=I,n.numSpotLightShadowsWithMaps=C,n.numLightProbes=P,M.directionalLength=g,M.pointLength=v,M.spotLength=d,M.rectAreaLength=m,M.hemiLength=_,M.numDirectionalShadows=y,M.numPointShadows=x,M.numSpotShadows=w,M.numSpotMaps=I,M.numLightProbes=P,n.version=BE++)}function l(c,u){let h=0,f=0,p=0,g=0,v=0,d=u.matrixWorldInverse;for(let m=0,_=c.length;m<_;m++){let y=c[m];if(y.isDirectionalLight){let x=n.directional[h];x.direction.setFromMatrixPosition(y.matrixWorld),i.setFromMatrixPosition(y.target.matrixWorld),x.direction.sub(i),x.direction.transformDirection(d),h++}else if(y.isSpotLight){let x=n.spot[p];x.position.setFromMatrixPosition(y.matrixWorld),x.position.applyMatrix4(d),x.direction.setFromMatrixPosition(y.matrixWorld),i.setFromMatrixPosition(y.target.matrixWorld),x.direction.sub(i),x.direction.transformDirection(d),p++}else if(y.isRectAreaLight){let x=n.rectArea[g];x.position.setFromMatrixPosition(y.matrixWorld),x.position.applyMatrix4(d),o.identity(),s.copy(y.matrixWorld),s.premultiply(d),o.extractRotation(s),x.halfWidth.set(y.width*.5,0,0),x.halfHeight.set(0,y.height*.5,0),x.halfWidth.applyMatrix4(o),x.halfHeight.applyMatrix4(o),g++}else if(y.isPointLight){let x=n.point[f];x.position.setFromMatrixPosition(y.matrixWorld),x.position.applyMatrix4(d),f++}else if(y.isHemisphereLight){let x=n.hemi[v];x.direction.setFromMatrixPosition(y.matrixWorld),x.direction.transformDirection(d),v++}}}return{setup:a,setupView:l,state:n}}function Dg(r){let e=new VE(r),t=[],n=[];function i(){t.length=0,n.length=0}function s(u){t.push(u)}function o(u){n.push(u)}function a(u){e.setup(t,u)}function l(u){e.setupView(t,u)}return{init:i,state:{lightsArray:t,shadowsArray:n,lights:e,transmissionRenderTarget:null},setupLights:a,setupLightsView:l,pushLight:s,pushShadow:o}}function zE(r){let e=new WeakMap;function t(i,s=0){let o=e.get(i),a;return o===void 0?(a=new Dg(r),e.set(i,[a])):s>=o.length?(a=new Dg(r),o.push(a)):a=o[s],a}function n(){e=new WeakMap}return{get:t,dispose:n}}var sd=class extends Yi{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Dy,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},od=class extends Yi{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},HE=`void main() {
+	gl_Position = vec4( position, 1.0 );
+}`,WE=`uniform sampler2D shadow_pass;
+uniform vec2 resolution;
+uniform float radius;
+#include 
+void main() {
+	const float samples = float( VSM_SAMPLES );
+	float mean = 0.0;
+	float squared_mean = 0.0;
+	float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );
+	float uvStart = samples <= 1.0 ? 0.0 : - 1.0;
+	for ( float i = 0.0; i < samples; i ++ ) {
+		float uvOffset = uvStart + i * uvStride;
+		#ifdef HORIZONTAL_PASS
+			vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );
+			mean += distribution.x;
+			squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;
+		#else
+			float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );
+			mean += depth;
+			squared_mean += depth * depth;
+		#endif
+	}
+	mean = mean / samples;
+	squared_mean = squared_mean / samples;
+	float std_dev = sqrt( squared_mean - mean * mean );
+	gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
+}`;function XE(r,e,t){let n=new zl,i=new Ce,s=new Ce,o=new Ct,a=new sd({depthPacking:Fy}),l=new od,c={},u=t.maxTextureSize,h={[wi]:Tn,[Tn]:wi,[On]:On},f=new pr({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ce},radius:{value:4}},vertexShader:HE,fragmentShader:WE}),p=f.clone();p.defines.HORIZONTAL_PASS=1;let g=new St;g.setAttribute("position",new Gn(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let v=new Pt(g,f),d=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=o0;let m=this.type;this.render=function(I,C,P){if(d.enabled===!1||d.autoUpdate===!1&&d.needsUpdate===!1||I.length===0)return;let E=r.getRenderTarget(),M=r.getActiveCubeFace(),L=r.getActiveMipmapLevel(),N=r.state;N.setBlending(us),N.buffers.color.setClear(1,1,1,1),N.buffers.depth.setTest(!0),N.setScissorTest(!1);let O=m!==kr&&this.type===kr,B=m===kr&&this.type!==kr;for(let ie=0,$=I.length;ie<$;ie++){let te=I[ie],W=te.shadow;if(W===void 0){console.warn("THREE.WebGLShadowMap:",te,"has no shadow.");continue}if(W.autoUpdate===!1&&W.needsUpdate===!1)continue;i.copy(W.mapSize);let ae=W.getFrameExtents();if(i.multiply(ae),s.copy(W.mapSize),(i.x>u||i.y>u)&&(i.x>u&&(s.x=Math.floor(u/ae.x),i.x=s.x*ae.x,W.mapSize.x=s.x),i.y>u&&(s.y=Math.floor(u/ae.y),i.y=s.y*ae.y,W.mapSize.y=s.y)),W.map===null||O===!0||B===!0){let ye=this.type!==kr?{minFilter:Bn,magFilter:Bn}:{};W.map!==null&&W.map.dispose(),W.map=new zr(i.x,i.y,ye),W.map.texture.name=te.name+".shadowMap",W.camera.updateProjectionMatrix()}r.setRenderTarget(W.map),r.clear();let de=W.getViewportCount();for(let ye=0;ye0||C.map&&C.alphaTest>0){let N=M.uuid,O=C.uuid,B=c[N];B===void 0&&(B={},c[N]=B);let ie=B[O];ie===void 0&&(ie=M.clone(),B[O]=ie,C.addEventListener("dispose",w)),M=ie}if(M.visible=C.visible,M.wireframe=C.wireframe,E===kr?M.side=C.shadowSide!==null?C.shadowSide:C.side:M.side=C.shadowSide!==null?C.shadowSide:h[C.side],M.alphaMap=C.alphaMap,M.alphaTest=C.alphaTest,M.map=C.map,M.clipShadows=C.clipShadows,M.clippingPlanes=C.clippingPlanes,M.clipIntersection=C.clipIntersection,M.displacementMap=C.displacementMap,M.displacementScale=C.displacementScale,M.displacementBias=C.displacementBias,M.wireframeLinewidth=C.wireframeLinewidth,M.linewidth=C.linewidth,P.isPointLight===!0&&M.isMeshDistanceMaterial===!0){let N=r.properties.get(M);N.light=P}return M}function x(I,C,P,E,M){if(I.visible===!1)return;if(I.layers.test(C.layers)&&(I.isMesh||I.isLine||I.isPoints)&&(I.castShadow||I.receiveShadow&&M===kr)&&(!I.frustumCulled||n.intersectsObject(I))){I.modelViewMatrix.multiplyMatrices(P.matrixWorldInverse,I.matrixWorld);let O=e.update(I),B=I.material;if(Array.isArray(B)){let ie=O.groups;for(let $=0,te=ie.length;$=1):te.indexOf("OpenGL ES")!==-1&&($=parseFloat(/^OpenGL ES (\d)/.exec(te)[1]),ie=$>=2);let W=null,ae={},de=r.getParameter(r.SCISSOR_BOX),ye=r.getParameter(r.VIEWPORT),Me=new Ct().fromArray(de),ve=new Ct().fromArray(ye);function R(ne,Pe,Ne,Ue){let De=new Uint8Array(4),ut=r.createTexture();r.bindTexture(ne,ut),r.texParameteri(ne,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(ne,r.TEXTURE_MAG_FILTER,r.NEAREST);for(let at=0;at"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new Ce,u=new WeakMap,h,f=new WeakMap,p=!1;try{p=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function g(G,A){return p?new OffscreenCanvas(G,A):Bl("canvas")}function v(G,A,U){let he=1,me=xe(G);if((me.width>U||me.height>U)&&(he=U/Math.max(me.width,me.height)),he<1)if(typeof HTMLImageElement<"u"&&G instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&G instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&G instanceof ImageBitmap||typeof VideoFrame<"u"&&G instanceof VideoFrame){let Te=Math.floor(he*me.width),ee=Math.floor(he*me.height);h===void 0&&(h=g(Te,ee));let k=A?g(Te,ee):h;return k.width=Te,k.height=ee,k.getContext("2d").drawImage(G,0,0,Te,ee),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+me.width+"x"+me.height+") to ("+Te+"x"+ee+")."),k}else return"data"in G&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+me.width+"x"+me.height+")."),G;return G}function d(G){return G.generateMipmaps&&G.minFilter!==Bn&&G.minFilter!==bn}function m(G){r.generateMipmap(G)}function _(G,A,U,he,me=!1){if(G!==null){if(r[G]!==void 0)return r[G];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+G+"'")}let Te=A;if(A===r.RED&&(U===r.FLOAT&&(Te=r.R32F),U===r.HALF_FLOAT&&(Te=r.R16F),U===r.UNSIGNED_BYTE&&(Te=r.R8)),A===r.RED_INTEGER&&(U===r.UNSIGNED_BYTE&&(Te=r.R8UI),U===r.UNSIGNED_SHORT&&(Te=r.R16UI),U===r.UNSIGNED_INT&&(Te=r.R32UI),U===r.BYTE&&(Te=r.R8I),U===r.SHORT&&(Te=r.R16I),U===r.INT&&(Te=r.R32I)),A===r.RG&&(U===r.FLOAT&&(Te=r.RG32F),U===r.HALF_FLOAT&&(Te=r.RG16F),U===r.UNSIGNED_BYTE&&(Te=r.RG8)),A===r.RG_INTEGER&&(U===r.UNSIGNED_BYTE&&(Te=r.RG8UI),U===r.UNSIGNED_SHORT&&(Te=r.RG16UI),U===r.UNSIGNED_INT&&(Te=r.RG32UI),U===r.BYTE&&(Te=r.RG8I),U===r.SHORT&&(Te=r.RG16I),U===r.INT&&(Te=r.RG32I)),A===r.RGB&&U===r.UNSIGNED_INT_5_9_9_9_REV&&(Te=r.RGB9_E5),A===r.RGBA){let ee=me?Uu:Bt.getTransfer(he);U===r.FLOAT&&(Te=r.RGBA32F),U===r.HALF_FLOAT&&(Te=r.RGBA16F),U===r.UNSIGNED_BYTE&&(Te=ee===Qt?r.SRGB8_ALPHA8:r.RGBA8),U===r.UNSIGNED_SHORT_4_4_4_4&&(Te=r.RGBA4),U===r.UNSIGNED_SHORT_5_5_5_1&&(Te=r.RGB5_A1)}return(Te===r.R16F||Te===r.R32F||Te===r.RG16F||Te===r.RG32F||Te===r.RGBA16F||Te===r.RGBA32F)&&e.get("EXT_color_buffer_float"),Te}function y(G,A){return d(G)===!0||G.isFramebufferTexture&&G.minFilter!==Bn&&G.minFilter!==bn?Math.log2(Math.max(A.width,A.height))+1:G.mipmaps!==void 0&&G.mipmaps.length>0?G.mipmaps.length:G.isCompressedTexture&&Array.isArray(G.image)?A.mipmaps.length:1}function x(G){let A=G.target;A.removeEventListener("dispose",x),I(A),A.isVideoTexture&&u.delete(A)}function w(G){let A=G.target;A.removeEventListener("dispose",w),P(A)}function I(G){let A=n.get(G);if(A.__webglInit===void 0)return;let U=G.source,he=f.get(U);if(he){let me=he[A.__cacheKey];me.usedTimes--,me.usedTimes===0&&C(G),Object.keys(he).length===0&&f.delete(U)}n.remove(G)}function C(G){let A=n.get(G);r.deleteTexture(A.__webglTexture);let U=G.source,he=f.get(U);delete he[A.__cacheKey],o.memory.textures--}function P(G){let A=n.get(G);if(G.depthTexture&&G.depthTexture.dispose(),G.isWebGLCubeRenderTarget)for(let he=0;he<6;he++){if(Array.isArray(A.__webglFramebuffer[he]))for(let me=0;me=i.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+G+" texture units while this GPU supports only "+i.maxTextures),E+=1,G}function N(G){let A=[];return A.push(G.wrapS),A.push(G.wrapT),A.push(G.wrapR||0),A.push(G.magFilter),A.push(G.minFilter),A.push(G.anisotropy),A.push(G.internalFormat),A.push(G.format),A.push(G.type),A.push(G.generateMipmaps),A.push(G.premultiplyAlpha),A.push(G.flipY),A.push(G.unpackAlignment),A.push(G.colorSpace),A.join()}function O(G,A){let U=n.get(G);if(G.isVideoTexture&&re(G),G.isRenderTargetTexture===!1&&G.version>0&&U.__version!==G.version){let he=G.image;if(he===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(he.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Me(U,G,A);return}}t.bindTexture(r.TEXTURE_2D,U.__webglTexture,r.TEXTURE0+A)}function B(G,A){let U=n.get(G);if(G.version>0&&U.__version!==G.version){Me(U,G,A);return}t.bindTexture(r.TEXTURE_2D_ARRAY,U.__webglTexture,r.TEXTURE0+A)}function ie(G,A){let U=n.get(G);if(G.version>0&&U.__version!==G.version){Me(U,G,A);return}t.bindTexture(r.TEXTURE_3D,U.__webglTexture,r.TEXTURE0+A)}function $(G,A){let U=n.get(G);if(G.version>0&&U.__version!==G.version){ve(U,G,A);return}t.bindTexture(r.TEXTURE_CUBE_MAP,U.__webglTexture,r.TEXTURE0+A)}let te={[rn]:r.REPEAT,[un]:r.CLAMP_TO_EDGE,[ua]:r.MIRRORED_REPEAT},W={[Bn]:r.NEAREST,[Ey]:r.NEAREST_MIPMAP_NEAREST,[eu]:r.NEAREST_MIPMAP_LINEAR,[bn]:r.LINEAR,[of]:r.LINEAR_MIPMAP_NEAREST,[vi]:r.LINEAR_MIPMAP_LINEAR},ae={[ky]:r.NEVER,[Wy]:r.ALWAYS,[By]:r.LESS,[g0]:r.LEQUAL,[Gy]:r.EQUAL,[Hy]:r.GEQUAL,[Vy]:r.GREATER,[zy]:r.NOTEQUAL};function de(G,A){if(A.type===Gr&&e.has("OES_texture_float_linear")===!1&&(A.magFilter===bn||A.magFilter===of||A.magFilter===eu||A.magFilter===vi||A.minFilter===bn||A.minFilter===of||A.minFilter===eu||A.minFilter===vi)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),r.texParameteri(G,r.TEXTURE_WRAP_S,te[A.wrapS]),r.texParameteri(G,r.TEXTURE_WRAP_T,te[A.wrapT]),(G===r.TEXTURE_3D||G===r.TEXTURE_2D_ARRAY)&&r.texParameteri(G,r.TEXTURE_WRAP_R,te[A.wrapR]),r.texParameteri(G,r.TEXTURE_MAG_FILTER,W[A.magFilter]),r.texParameteri(G,r.TEXTURE_MIN_FILTER,W[A.minFilter]),A.compareFunction&&(r.texParameteri(G,r.TEXTURE_COMPARE_MODE,r.COMPARE_REF_TO_TEXTURE),r.texParameteri(G,r.TEXTURE_COMPARE_FUNC,ae[A.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(A.magFilter===Bn||A.minFilter!==eu&&A.minFilter!==vi||A.type===Gr&&e.has("OES_texture_float_linear")===!1)return;if(A.anisotropy>1||n.get(A).__currentAnisotropy){let U=e.get("EXT_texture_filter_anisotropic");r.texParameterf(G,U.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(A.anisotropy,i.getMaxAnisotropy())),n.get(A).__currentAnisotropy=A.anisotropy}}}function ye(G,A){let U=!1;G.__webglInit===void 0&&(G.__webglInit=!0,A.addEventListener("dispose",x));let he=A.source,me=f.get(he);me===void 0&&(me={},f.set(he,me));let Te=N(A);if(Te!==G.__cacheKey){me[Te]===void 0&&(me[Te]={texture:r.createTexture(),usedTimes:0},o.memory.textures++,U=!0),me[Te].usedTimes++;let ee=me[G.__cacheKey];ee!==void 0&&(me[G.__cacheKey].usedTimes--,ee.usedTimes===0&&C(A)),G.__cacheKey=Te,G.__webglTexture=me[Te].texture}return U}function Me(G,A,U){let he=r.TEXTURE_2D;(A.isDataArrayTexture||A.isCompressedArrayTexture)&&(he=r.TEXTURE_2D_ARRAY),A.isData3DTexture&&(he=r.TEXTURE_3D);let me=ye(G,A),Te=A.source;t.bindTexture(he,G.__webglTexture,r.TEXTURE0+U);let ee=n.get(Te);if(Te.version!==ee.__version||me===!0){t.activeTexture(r.TEXTURE0+U);let k=Bt.getPrimaries(Bt.workingColorSpace),J=A.colorSpace===cs?null:Bt.getPrimaries(A.colorSpace),ue=A.colorSpace===cs||k===J?r.NONE:r.BROWSER_DEFAULT_WEBGL;r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,A.flipY),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,A.premultiplyAlpha),r.pixelStorei(r.UNPACK_ALIGNMENT,A.unpackAlignment),r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,ue);let Z=v(A.image,!1,i.maxTextureSize);Z=le(A,Z);let ce=s.convert(A.format,A.colorSpace),pe=s.convert(A.type),fe=_(A.internalFormat,ce,pe,A.colorSpace,A.isVideoTexture);de(he,A);let ge,Ae=A.mipmaps,Ie=A.isVideoTexture!==!0&&fe!==m0,Fe=ee.__version===void 0||me===!0,Je=Te.dataReady,dt=y(A,Z);if(A.isDepthTexture)fe=r.DEPTH_COMPONENT16,A.type===Gr?fe=r.DEPTH_COMPONENT32F:A.type===ha?fe=r.DEPTH_COMPONENT24:A.type===Jl&&(fe=r.DEPTH24_STENCIL8),Fe&&(Ie?t.texStorage2D(r.TEXTURE_2D,1,fe,Z.width,Z.height):t.texImage2D(r.TEXTURE_2D,0,fe,Z.width,Z.height,0,ce,pe,null));else if(A.isDataTexture)if(Ae.length>0){Ie&&Fe&&t.texStorage2D(r.TEXTURE_2D,dt,fe,Ae[0].width,Ae[0].height);for(let Oe=0,ne=Ae.length;Oe>=1,ne>>=1}}else if(Ae.length>0){if(Ie&&Fe){let Oe=xe(Ae[0]);t.texStorage2D(r.TEXTURE_2D,dt,fe,Oe.width,Oe.height)}for(let Oe=0,ne=Ae.length;Oe0&&dt++;let ne=xe(ce[0]);t.texStorage2D(r.TEXTURE_CUBE_MAP,dt,Ae,ne.width,ne.height)}for(let ne=0;ne<6;ne++)if(Z){Ie?Je&&t.texSubImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+ne,0,0,0,ce[ne].width,ce[ne].height,fe,ge,ce[ne].data):t.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+ne,0,Ae,ce[ne].width,ce[ne].height,0,fe,ge,ce[ne].data);for(let Pe=0;Pe>Te),ce=Math.max(1,A.height>>Te);me===r.TEXTURE_3D||me===r.TEXTURE_2D_ARRAY?t.texImage3D(me,Te,J,Z,ce,A.depth,0,ee,k,null):t.texImage2D(me,Te,J,Z,ce,0,ee,k,null)}t.bindFramebuffer(r.FRAMEBUFFER,G),se(A)?a.framebufferTexture2DMultisampleEXT(r.FRAMEBUFFER,he,me,n.get(U).__webglTexture,0,X(A)):(me===r.TEXTURE_2D||me>=r.TEXTURE_CUBE_MAP_POSITIVE_X&&me<=r.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&r.framebufferTexture2D(r.FRAMEBUFFER,he,me,n.get(U).__webglTexture,Te),t.bindFramebuffer(r.FRAMEBUFFER,null)}function T(G,A,U){if(r.bindRenderbuffer(r.RENDERBUFFER,G),A.depthBuffer&&!A.stencilBuffer){let he=r.DEPTH_COMPONENT24;if(U||se(A)){let me=A.depthTexture;me&&me.isDepthTexture&&(me.type===Gr?he=r.DEPTH_COMPONENT32F:me.type===ha&&(he=r.DEPTH_COMPONENT24));let Te=X(A);se(A)?a.renderbufferStorageMultisampleEXT(r.RENDERBUFFER,Te,he,A.width,A.height):r.renderbufferStorageMultisample(r.RENDERBUFFER,Te,he,A.width,A.height)}else r.renderbufferStorage(r.RENDERBUFFER,he,A.width,A.height);r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,G)}else if(A.depthBuffer&&A.stencilBuffer){let he=X(A);U&&se(A)===!1?r.renderbufferStorageMultisample(r.RENDERBUFFER,he,r.DEPTH24_STENCIL8,A.width,A.height):se(A)?a.renderbufferStorageMultisampleEXT(r.RENDERBUFFER,he,r.DEPTH24_STENCIL8,A.width,A.height):r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_STENCIL,A.width,A.height),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,G)}else{let he=A.textures;for(let me=0;me1;if(ee||(he.__webglTexture===void 0&&(he.__webglTexture=r.createTexture()),he.__version=A.version,o.memory.textures++),Te){U.__webglFramebuffer=[];for(let k=0;k<6;k++)if(A.mipmaps&&A.mipmaps.length>0){U.__webglFramebuffer[k]=[];for(let J=0;J0){U.__webglFramebuffer=[];for(let k=0;k0&&se(G)===!1){U.__webglMultisampledFramebuffer=r.createFramebuffer(),U.__webglColorRenderbuffer=[],t.bindFramebuffer(r.FRAMEBUFFER,U.__webglMultisampledFramebuffer);for(let k=0;k0)for(let J=0;J0)for(let J=0;J0&&se(G)===!1){let A=G.textures,U=G.width,he=G.height,me=r.COLOR_BUFFER_BIT,Te=[],ee=G.stencilBuffer?r.DEPTH_STENCIL_ATTACHMENT:r.DEPTH_ATTACHMENT,k=n.get(G),J=A.length>1;if(J)for(let ue=0;ue0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&A.__useRenderToTexture!==!1}function re(G){let A=o.render.frame;u.get(G)!==A&&(u.set(G,A),G.update())}function le(G,A){let U=G.colorSpace,he=G.format,me=G.type;return G.isCompressedTexture===!0||G.isVideoTexture===!0||U!==li&&U!==cs&&(Bt.getTransfer(U)===Qt?(he!==Xi||me!==fs)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",U)),A}function xe(G){return typeof HTMLImageElement<"u"&&G instanceof HTMLImageElement?(c.width=G.naturalWidth||G.width,c.height=G.naturalHeight||G.height):typeof VideoFrame<"u"&&G instanceof VideoFrame?(c.width=G.displayWidth,c.height=G.displayHeight):(c.width=G.width,c.height=G.height),c}this.allocateTextureUnit=L,this.resetTextureUnits=M,this.setTexture2D=O,this.setTexture2DArray=B,this.setTexture3D=ie,this.setTextureCube=$,this.rebindTextures=V,this.setupRenderTarget=q,this.updateRenderTargetMipmap=Y,this.updateMultisampleRenderTarget=z,this.setupDepthRenderbuffer=b,this.setupFrameBufferTexture=R,this.useMultisampledRTT=se}function YE(r,e){function t(n,i=cs){let s,o=Bt.getTransfer(i);if(n===fs)return r.UNSIGNED_BYTE;if(n===u0)return r.UNSIGNED_SHORT_4_4_4_4;if(n===h0)return r.UNSIGNED_SHORT_5_5_5_1;if(n===Ay)return r.UNSIGNED_INT_5_9_9_9_REV;if(n===by)return r.BYTE;if(n===Sy)return r.SHORT;if(n===l0)return r.UNSIGNED_SHORT;if(n===c0)return r.INT;if(n===ha)return r.UNSIGNED_INT;if(n===Gr)return r.FLOAT;if(n===Ou)return r.HALF_FLOAT;if(n===wy)return r.ALPHA;if(n===Cy)return r.RGB;if(n===Xi)return r.RGBA;if(n===Ry)return r.LUMINANCE;if(n===Iy)return r.LUMINANCE_ALPHA;if(n===ra)return r.DEPTH_COMPONENT;if(n===kl)return r.DEPTH_STENCIL;if(n===Py)return r.RED;if(n===f0)return r.RED_INTEGER;if(n===Ny)return r.RG;if(n===d0)return r.RG_INTEGER;if(n===p0)return r.RGBA_INTEGER;if(n===af||n===lf||n===cf||n===uf)if(o===Qt)if(s=e.get("WEBGL_compressed_texture_s3tc_srgb"),s!==null){if(n===af)return s.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===lf)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===cf)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===uf)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(s=e.get("WEBGL_compressed_texture_s3tc"),s!==null){if(n===af)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===lf)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===cf)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===uf)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(n===ym||n===xm||n===_m||n===Tm)if(s=e.get("WEBGL_compressed_texture_pvrtc"),s!==null){if(n===ym)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===xm)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===_m)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===Tm)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(n===m0)return s=e.get("WEBGL_compressed_texture_etc1"),s!==null?s.COMPRESSED_RGB_ETC1_WEBGL:null;if(n===Mm||n===Em)if(s=e.get("WEBGL_compressed_texture_etc"),s!==null){if(n===Mm)return o===Qt?s.COMPRESSED_SRGB8_ETC2:s.COMPRESSED_RGB8_ETC2;if(n===Em)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(n===bm||n===Sm||n===Am||n===wm||n===Cm||n===Rm||n===Im||n===Pm||n===Nm||n===Lm||n===Om||n===Dm||n===Fm||n===Um)if(s=e.get("WEBGL_compressed_texture_astc"),s!==null){if(n===bm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:s.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===Sm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:s.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===Am)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:s.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===wm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:s.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===Cm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:s.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===Rm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:s.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===Im)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:s.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===Pm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:s.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===Nm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:s.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===Lm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:s.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===Om)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:s.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===Dm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:s.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Fm)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:s.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Um)return o===Qt?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:s.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(n===hf||n===km||n===Bm)if(s=e.get("EXT_texture_compression_bptc"),s!==null){if(n===hf)return o===Qt?s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:s.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===km)return s.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===Bm)return s.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(n===Ly||n===Gm||n===Vm||n===zm)if(s=e.get("EXT_texture_compression_rgtc"),s!==null){if(n===hf)return s.COMPRESSED_RED_RGTC1_EXT;if(n===Gm)return s.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===Vm)return s.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===zm)return s.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return n===Jl?r.UNSIGNED_INT_24_8:r[n]!==void 0?r[n]:null}return{convert:t}}var ad=class extends en{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}},dn=class extends Rt{constructor(){super(),this.isGroup=!0,this.type="Group"}},KE={type:"move"},Ol=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new dn,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new dn,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new oe,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new oe),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new dn,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new oe,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new oe),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){let t=this._hand;if(t)for(let n of e.hand.values())this._getHandJoint(t,n)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,n){let i=null,s=null,o=null,a=this._targetRay,l=this._grip,c=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(c&&e.hand){o=!0;for(let v of e.hand.values()){let d=t.getJointPose(v,n),m=this._getHandJoint(c,v);d!==null&&(m.matrix.fromArray(d.transform.matrix),m.matrix.decompose(m.position,m.rotation,m.scale),m.matrixWorldNeedsUpdate=!0,m.jointRadius=d.radius),m.visible=d!==null}let u=c.joints["index-finger-tip"],h=c.joints["thumb-tip"],f=u.position.distanceTo(h.position),p=.02,g=.005;c.inputState.pinching&&f>p+g?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&f<=p-g&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,n),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(i=t.getPose(e.targetRaySpace,n),i===null&&s!==null&&(i=s),i!==null&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(KE)))}return a!==null&&(a.visible=i!==null),l!==null&&(l.visible=s!==null),c!==null&&(c.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let n=new dn;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}},ZE=`
+void main() {
+
+	gl_Position = vec4( position, 1.0 );
+
+}`,JE=`
+uniform sampler2DArray depthColor;
+uniform float depthWidth;
+uniform float depthHeight;
+
+void main() {
+
+	vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );
+
+	if ( coord.x >= 1.0 ) {
+
+		gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;
+
+	} else {
+
+		gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;
+
+	}
+
+}`,ld=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,n){if(this.texture===null){let i=new Dn,s=e.properties.get(i);s.__webglTexture=t.texture,(t.depthNear!=n.depthNear||t.depthFar!=n.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=i}}render(e,t){if(this.texture!==null){if(this.mesh===null){let n=t.cameras[0].viewport,i=new pr({vertexShader:ZE,fragmentShader:JE,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Pt(new ga(20,20),i)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}},cd=class extends ps{constructor(e,t){super();let n=this,i=null,s=1,o=null,a="local-floor",l=1,c=null,u=null,h=null,f=null,p=null,g=null,v=new ld,d=t.getContextAttributes(),m=null,_=null,y=[],x=[],w=new Ce,I=null,C=new en;C.layers.enable(1),C.viewport=new Ct;let P=new en;P.layers.enable(2),P.viewport=new Ct;let E=[C,P],M=new ad;M.layers.enable(1),M.layers.enable(2);let L=null,N=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(R){let T=y[R];return T===void 0&&(T=new Ol,y[R]=T),T.getTargetRaySpace()},this.getControllerGrip=function(R){let T=y[R];return T===void 0&&(T=new Ol,y[R]=T),T.getGripSpace()},this.getHand=function(R){let T=y[R];return T===void 0&&(T=new Ol,y[R]=T),T.getHandSpace()};function O(R){let T=x.indexOf(R.inputSource);if(T===-1)return;let S=y[T];S!==void 0&&(S.update(R.inputSource,R.frame,c||o),S.dispatchEvent({type:R.type,data:R.inputSource}))}function B(){i.removeEventListener("select",O),i.removeEventListener("selectstart",O),i.removeEventListener("selectend",O),i.removeEventListener("squeeze",O),i.removeEventListener("squeezestart",O),i.removeEventListener("squeezeend",O),i.removeEventListener("end",B),i.removeEventListener("inputsourceschange",ie);for(let R=0;R=0&&(x[b]=null,y[b].disconnect(S))}for(let T=0;T=x.length){x.push(S),b=q;break}else if(x[q]===null){x[q]=S,b=q;break}if(b===-1)break}let V=y[b];V&&V.connect(S)}}let $=new oe,te=new oe;function W(R,T,S){$.setFromMatrixPosition(T.matrixWorld),te.setFromMatrixPosition(S.matrixWorld);let b=$.distanceTo(te),V=T.projectionMatrix.elements,q=S.projectionMatrix.elements,Y=V[14]/(V[10]-1),z=V[14]/(V[10]+1),X=(V[9]+1)/V[5],se=(V[9]-1)/V[5],re=(V[8]-1)/V[0],le=(q[8]+1)/q[0],xe=Y*re,G=Y*le,A=b/(-re+le),U=A*-re;T.matrixWorld.decompose(R.position,R.quaternion,R.scale),R.translateX(U),R.translateZ(A),R.matrixWorld.compose(R.position,R.quaternion,R.scale),R.matrixWorldInverse.copy(R.matrixWorld).invert();let he=Y+A,me=z+A,Te=xe-U,ee=G+(b-U),k=X*z/me*he,J=se*z/me*he;R.projectionMatrix.makePerspective(Te,ee,k,J,he,me),R.projectionMatrixInverse.copy(R.projectionMatrix).invert()}function ae(R,T){T===null?R.matrixWorld.copy(R.matrix):R.matrixWorld.multiplyMatrices(T.matrixWorld,R.matrix),R.matrixWorldInverse.copy(R.matrixWorld).invert()}this.updateCamera=function(R){if(i===null)return;v.texture!==null&&(R.near=v.depthNear,R.far=v.depthFar),M.near=P.near=C.near=R.near,M.far=P.far=C.far=R.far,(L!==M.near||N!==M.far)&&(i.updateRenderState({depthNear:M.near,depthFar:M.far}),L=M.near,N=M.far,C.near=L,C.far=N,P.near=L,P.far=N,C.updateProjectionMatrix(),P.updateProjectionMatrix(),R.updateProjectionMatrix());let T=R.parent,S=M.cameras;ae(M,T);for(let b=0;b0&&(d.alphaTest.value=m.alphaTest);let _=e.get(m),y=_.envMap,x=_.envMapRotation;if(y&&(d.envMap.value=y,Ws.copy(x),Ws.x*=-1,Ws.y*=-1,Ws.z*=-1,y.isCubeTexture&&y.isRenderTargetTexture===!1&&(Ws.y*=-1,Ws.z*=-1),d.envMapRotation.value.setFromMatrix4($E.makeRotationFromEuler(Ws)),d.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,d.reflectivity.value=m.reflectivity,d.ior.value=m.ior,d.refractionRatio.value=m.refractionRatio),m.lightMap){d.lightMap.value=m.lightMap;let w=r._useLegacyLights===!0?Math.PI:1;d.lightMapIntensity.value=m.lightMapIntensity*w,t(m.lightMap,d.lightMapTransform)}m.aoMap&&(d.aoMap.value=m.aoMap,d.aoMapIntensity.value=m.aoMapIntensity,t(m.aoMap,d.aoMapTransform))}function o(d,m){d.diffuse.value.copy(m.color),d.opacity.value=m.opacity,m.map&&(d.map.value=m.map,t(m.map,d.mapTransform))}function a(d,m){d.dashSize.value=m.dashSize,d.totalSize.value=m.dashSize+m.gapSize,d.scale.value=m.scale}function l(d,m,_,y){d.diffuse.value.copy(m.color),d.opacity.value=m.opacity,d.size.value=m.size*_,d.scale.value=y*.5,m.map&&(d.map.value=m.map,t(m.map,d.uvTransform)),m.alphaMap&&(d.alphaMap.value=m.alphaMap,t(m.alphaMap,d.alphaMapTransform)),m.alphaTest>0&&(d.alphaTest.value=m.alphaTest)}function c(d,m){d.diffuse.value.copy(m.color),d.opacity.value=m.opacity,d.rotation.value=m.rotation,m.map&&(d.map.value=m.map,t(m.map,d.mapTransform)),m.alphaMap&&(d.alphaMap.value=m.alphaMap,t(m.alphaMap,d.alphaMapTransform)),m.alphaTest>0&&(d.alphaTest.value=m.alphaTest)}function u(d,m){d.specular.value.copy(m.specular),d.shininess.value=Math.max(m.shininess,1e-4)}function h(d,m){m.gradientMap&&(d.gradientMap.value=m.gradientMap)}function f(d,m){d.metalness.value=m.metalness,m.metalnessMap&&(d.metalnessMap.value=m.metalnessMap,t(m.metalnessMap,d.metalnessMapTransform)),d.roughness.value=m.roughness,m.roughnessMap&&(d.roughnessMap.value=m.roughnessMap,t(m.roughnessMap,d.roughnessMapTransform)),m.envMap&&(d.envMapIntensity.value=m.envMapIntensity)}function p(d,m,_){d.ior.value=m.ior,m.sheen>0&&(d.sheenColor.value.copy(m.sheenColor).multiplyScalar(m.sheen),d.sheenRoughness.value=m.sheenRoughness,m.sheenColorMap&&(d.sheenColorMap.value=m.sheenColorMap,t(m.sheenColorMap,d.sheenColorMapTransform)),m.sheenRoughnessMap&&(d.sheenRoughnessMap.value=m.sheenRoughnessMap,t(m.sheenRoughnessMap,d.sheenRoughnessMapTransform))),m.clearcoat>0&&(d.clearcoat.value=m.clearcoat,d.clearcoatRoughness.value=m.clearcoatRoughness,m.clearcoatMap&&(d.clearcoatMap.value=m.clearcoatMap,t(m.clearcoatMap,d.clearcoatMapTransform)),m.clearcoatRoughnessMap&&(d.clearcoatRoughnessMap.value=m.clearcoatRoughnessMap,t(m.clearcoatRoughnessMap,d.clearcoatRoughnessMapTransform)),m.clearcoatNormalMap&&(d.clearcoatNormalMap.value=m.clearcoatNormalMap,t(m.clearcoatNormalMap,d.clearcoatNormalMapTransform),d.clearcoatNormalScale.value.copy(m.clearcoatNormalScale),m.side===Tn&&d.clearcoatNormalScale.value.negate())),m.iridescence>0&&(d.iridescence.value=m.iridescence,d.iridescenceIOR.value=m.iridescenceIOR,d.iridescenceThicknessMinimum.value=m.iridescenceThicknessRange[0],d.iridescenceThicknessMaximum.value=m.iridescenceThicknessRange[1],m.iridescenceMap&&(d.iridescenceMap.value=m.iridescenceMap,t(m.iridescenceMap,d.iridescenceMapTransform)),m.iridescenceThicknessMap&&(d.iridescenceThicknessMap.value=m.iridescenceThicknessMap,t(m.iridescenceThicknessMap,d.iridescenceThicknessMapTransform))),m.transmission>0&&(d.transmission.value=m.transmission,d.transmissionSamplerMap.value=_.texture,d.transmissionSamplerSize.value.set(_.width,_.height),m.transmissionMap&&(d.transmissionMap.value=m.transmissionMap,t(m.transmissionMap,d.transmissionMapTransform)),d.thickness.value=m.thickness,m.thicknessMap&&(d.thicknessMap.value=m.thicknessMap,t(m.thicknessMap,d.thicknessMapTransform)),d.attenuationDistance.value=m.attenuationDistance,d.attenuationColor.value.copy(m.attenuationColor)),m.anisotropy>0&&(d.anisotropyVector.value.set(m.anisotropy*Math.cos(m.anisotropyRotation),m.anisotropy*Math.sin(m.anisotropyRotation)),m.anisotropyMap&&(d.anisotropyMap.value=m.anisotropyMap,t(m.anisotropyMap,d.anisotropyMapTransform))),d.specularIntensity.value=m.specularIntensity,d.specularColor.value.copy(m.specularColor),m.specularColorMap&&(d.specularColorMap.value=m.specularColorMap,t(m.specularColorMap,d.specularColorMapTransform)),m.specularIntensityMap&&(d.specularIntensityMap.value=m.specularIntensityMap,t(m.specularIntensityMap,d.specularIntensityMapTransform))}function g(d,m){m.matcap&&(d.matcap.value=m.matcap)}function v(d,m){let _=e.get(m).light;d.referencePosition.value.setFromMatrixPosition(_.matrixWorld),d.nearDistance.value=_.shadow.camera.near,d.farDistance.value=_.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:i}}function eb(r,e,t,n){let i={},s={},o=[],a=r.getParameter(r.MAX_UNIFORM_BUFFER_BINDINGS);function l(_,y){let x=y.program;n.uniformBlockBinding(_,x)}function c(_,y){let x=i[_.id];x===void 0&&(g(_),x=u(_),i[_.id]=x,_.addEventListener("dispose",d));let w=y.program;n.updateUBOMapping(_,w);let I=e.render.frame;s[_.id]!==I&&(f(_),s[_.id]=I)}function u(_){let y=h();_.__bindingPointIndex=y;let x=r.createBuffer(),w=_.__size,I=_.usage;return r.bindBuffer(r.UNIFORM_BUFFER,x),r.bufferData(r.UNIFORM_BUFFER,w,I),r.bindBuffer(r.UNIFORM_BUFFER,null),r.bindBufferBase(r.UNIFORM_BUFFER,y,x),x}function h(){for(let _=0;_0&&(x+=w-I),_.__size=x,_.__cache={},this}function v(_){let y={boundary:0,storage:0};return typeof _=="number"||typeof _=="boolean"?(y.boundary=4,y.storage=4):_.isVector2?(y.boundary=8,y.storage=8):_.isVector3||_.isColor?(y.boundary=16,y.storage=12):_.isVector4?(y.boundary=16,y.storage=16):_.isMatrix3?(y.boundary=48,y.storage=48):_.isMatrix4?(y.boundary=64,y.storage=64):_.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",_),y}function d(_){let y=_.target;y.removeEventListener("dispose",d);let x=o.indexOf(y.__bindingPointIndex);o.splice(x,1),r.deleteBuffer(i[y.id]),delete i[y.id],delete s[y.id]}function m(){for(let _ in i)r.deleteBuffer(i[_]);o=[],i={},s={}}return{bind:l,update:c,dispose:m}}var va=class{constructor(e={}){let{canvas:t=ax(),context:n=null,depth:i=!0,stencil:s=!1,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:u="default",failIfMajorPerformanceCaveat:h=!1}=e;this.isWebGLRenderer=!0;let f;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");f=n.getContextAttributes().alpha}else f=o;let p=new Uint32Array(4),g=new Int32Array(4),v=null,d=null,m=[],_=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=jt,this._useLegacyLights=!1,this.toneMapping=hs,this.toneMappingExposure=1;let y=this,x=!1,w=0,I=0,C=null,P=-1,E=null,M=new Ct,L=new Ct,N=null,O=new Ve(0),B=0,ie=t.width,$=t.height,te=1,W=null,ae=null,de=new Ct(0,0,ie,$),ye=new Ct(0,0,ie,$),Me=!1,ve=new zl,R=!1,T=!1,S=new Ye,b=new Ce,V=new oe,q={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Y(){return C===null?te:1}let z=n;function X(Q,_e){let Se=t.getContext(Q,_e);return Se!==null?Se:null}try{let Q={alpha:!0,depth:i,stencil:s,antialias:a,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:u,failIfMajorPerformanceCaveat:h};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${Id}`),t.addEventListener("webglcontextlost",Pe,!1),t.addEventListener("webglcontextrestored",Ne,!1),t.addEventListener("webglcontextcreationerror",Ue,!1),z===null){let _e="webgl2";if(z=X(_e,Q),z===null)throw X(_e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Q){throw console.error("THREE.WebGLRenderer: "+Q.message),Q}let se,re,le,xe,G,A,U,he,me,Te,ee,k,J,ue,Z,ce,pe,fe,ge,Ae,Ie,Fe,Je,dt;function Oe(){se=new xM(z),se.init(),re=new dM(z,se,e),Fe=new YE(z,se),le=new jE(z),xe=new MM(z),G=new OE,A=new qE(z,se,le,G,re,Fe,xe),U=new mM(y),he=new yM(y),me=new Cx(z),Je=new hM(z,me),Te=new _M(z,me,xe,Je),ee=new bM(z,Te,me,xe),ge=new EM(z,re,A),ce=new pM(G),k=new LE(y,U,he,se,re,Je,ce),J=new QE(y,G),ue=new FE,Z=new zE(se),fe=new uM(y,U,he,le,ee,f,l),pe=new XE(y,ee,re),dt=new eb(z,xe,re,le),Ae=new fM(z,se,xe),Ie=new TM(z,se,xe),xe.programs=k.programs,y.capabilities=re,y.extensions=se,y.properties=G,y.renderLists=ue,y.shadowMap=pe,y.state=le,y.info=xe}Oe();let ne=new cd(y,z);this.xr=ne,this.getContext=function(){return z},this.getContextAttributes=function(){return z.getContextAttributes()},this.forceContextLoss=function(){let Q=se.get("WEBGL_lose_context");Q&&Q.loseContext()},this.forceContextRestore=function(){let Q=se.get("WEBGL_lose_context");Q&&Q.restoreContext()},this.getPixelRatio=function(){return te},this.setPixelRatio=function(Q){Q!==void 0&&(te=Q,this.setSize(ie,$,!1))},this.getSize=function(Q){return Q.set(ie,$)},this.setSize=function(Q,_e,Se=!0){if(ne.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}ie=Q,$=_e,t.width=Math.floor(Q*te),t.height=Math.floor(_e*te),Se===!0&&(t.style.width=Q+"px",t.style.height=_e+"px"),this.setViewport(0,0,Q,_e)},this.getDrawingBufferSize=function(Q){return Q.set(ie*te,$*te).floor()},this.setDrawingBufferSize=function(Q,_e,Se){ie=Q,$=_e,te=Se,t.width=Math.floor(Q*Se),t.height=Math.floor(_e*Se),this.setViewport(0,0,Q,_e)},this.getCurrentViewport=function(Q){return Q.copy(M)},this.getViewport=function(Q){return Q.copy(de)},this.setViewport=function(Q,_e,Se,we){Q.isVector4?de.set(Q.x,Q.y,Q.z,Q.w):de.set(Q,_e,Se,we),le.viewport(M.copy(de).multiplyScalar(te).round())},this.getScissor=function(Q){return Q.copy(ye)},this.setScissor=function(Q,_e,Se,we){Q.isVector4?ye.set(Q.x,Q.y,Q.z,Q.w):ye.set(Q,_e,Se,we),le.scissor(L.copy(ye).multiplyScalar(te).round())},this.getScissorTest=function(){return Me},this.setScissorTest=function(Q){le.setScissorTest(Me=Q)},this.setOpaqueSort=function(Q){W=Q},this.setTransparentSort=function(Q){ae=Q},this.getClearColor=function(Q){return Q.copy(fe.getClearColor())},this.setClearColor=function(){fe.setClearColor.apply(fe,arguments)},this.getClearAlpha=function(){return fe.getClearAlpha()},this.setClearAlpha=function(){fe.setClearAlpha.apply(fe,arguments)},this.clear=function(Q=!0,_e=!0,Se=!0){let we=0;if(Q){let Ee=!1;if(C!==null){let We=C.texture.format;Ee=We===p0||We===d0||We===f0}if(Ee){let We=C.texture.type,st=We===fs||We===ha||We===l0||We===Jl||We===u0||We===h0,et=fe.getClearColor(),lt=fe.getClearAlpha(),mt=et.r,gt=et.g,xt=et.b;st?(p[0]=mt,p[1]=gt,p[2]=xt,p[3]=lt,z.clearBufferuiv(z.COLOR,0,p)):(g[0]=mt,g[1]=gt,g[2]=xt,g[3]=lt,z.clearBufferiv(z.COLOR,0,g))}else we|=z.COLOR_BUFFER_BIT}_e&&(we|=z.DEPTH_BUFFER_BIT),Se&&(we|=z.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),z.clear(we)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){t.removeEventListener("webglcontextlost",Pe,!1),t.removeEventListener("webglcontextrestored",Ne,!1),t.removeEventListener("webglcontextcreationerror",Ue,!1),ue.dispose(),Z.dispose(),G.dispose(),U.dispose(),he.dispose(),ee.dispose(),Je.dispose(),dt.dispose(),k.dispose(),ne.dispose(),ne.removeEventListener("sessionstart",ke),ne.removeEventListener("sessionend",qe),He.stop()};function Pe(Q){Q.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),x=!0}function Ne(){console.log("THREE.WebGLRenderer: Context Restored."),x=!1;let Q=xe.autoReset,_e=pe.enabled,Se=pe.autoUpdate,we=pe.needsUpdate,Ee=pe.type;Oe(),xe.autoReset=Q,pe.enabled=_e,pe.autoUpdate=Se,pe.needsUpdate=we,pe.type=Ee}function Ue(Q){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",Q.statusMessage)}function De(Q){let _e=Q.target;_e.removeEventListener("dispose",De),ut(_e)}function ut(Q){at(Q),G.remove(Q)}function at(Q){let _e=G.get(Q).programs;_e!==void 0&&(_e.forEach(function(Se){k.releaseProgram(Se)}),Q.isShaderMaterial&&k.releaseShaderCache(Q))}this.renderBufferDirect=function(Q,_e,Se,we,Ee,We){_e===null&&(_e=q);let st=Ee.isMesh&&Ee.matrixWorld.determinant()<0,et=jh(Q,_e,Se,we,Ee);le.setMaterial(we,st);let lt=Se.index,mt=1;if(we.wireframe===!0){if(lt=Te.getWireframeAttribute(Se),lt===void 0)return;mt=2}let gt=Se.drawRange,xt=Se.attributes.position,tn=gt.start*mt,qn=(gt.start+gt.count)*mt;We!==null&&(tn=Math.max(tn,We.start*mt),qn=Math.min(qn,(We.start+We.count)*mt)),lt!==null?(tn=Math.max(tn,0),qn=Math.min(qn,lt.count)):xt!=null&&(tn=Math.max(tn,0),qn=Math.min(qn,xt.count));let gn=qn-tn;if(gn<0||gn===1/0)return;Je.setup(Ee,we,et,Se,lt);let Di,qt=Ae;if(lt!==null&&(Di=me.get(lt),qt=Ie,qt.setIndex(Di)),Ee.isMesh)we.wireframe===!0?(le.setLineWidth(we.wireframeLinewidth*Y()),qt.setMode(z.LINES)):qt.setMode(z.TRIANGLES);else if(Ee.isLine){let _t=we.linewidth;_t===void 0&&(_t=1),le.setLineWidth(_t*Y()),Ee.isLineSegments?qt.setMode(z.LINES):Ee.isLineLoop?qt.setMode(z.LINE_LOOP):qt.setMode(z.LINE_STRIP)}else Ee.isPoints?qt.setMode(z.POINTS):Ee.isSprite&&qt.setMode(z.TRIANGLES);if(Ee.isBatchedMesh)qt.renderMultiDraw(Ee._multiDrawStarts,Ee._multiDrawCounts,Ee._multiDrawCount);else if(Ee.isInstancedMesh)qt.renderInstances(tn,gn,Ee.count);else if(Se.isInstancedBufferGeometry){let _t=Se._maxInstanceCount!==void 0?Se._maxInstanceCount:1/0,rr=Math.min(Se.instanceCount,_t);qt.renderInstances(tn,gn,rr)}else qt.render(tn,gn)};function yt(Q,_e,Se){Q.transparent===!0&&Q.side===On&&Q.forceSinglePass===!1?(Q.side=Tn,Q.needsUpdate=!0,Oi(Q,_e,Se),Q.side=wi,Q.needsUpdate=!0,Oi(Q,_e,Se),Q.side=On):Oi(Q,_e,Se)}this.compile=function(Q,_e,Se=null){Se===null&&(Se=Q),d=Z.get(Se),d.init(),_.push(d),Se.traverseVisible(function(Ee){Ee.isLight&&Ee.layers.test(_e.layers)&&(d.pushLight(Ee),Ee.castShadow&&d.pushShadow(Ee))}),Q!==Se&&Q.traverseVisible(function(Ee){Ee.isLight&&Ee.layers.test(_e.layers)&&(d.pushLight(Ee),Ee.castShadow&&d.pushShadow(Ee))}),d.setupLights(y._useLegacyLights);let we=new Set;return Q.traverse(function(Ee){let We=Ee.material;if(We)if(Array.isArray(We))for(let st=0;st{function We(){if(we.forEach(function(st){G.get(st).currentProgram.isReady()&&we.delete(st)}),we.size===0){Ee(Q);return}setTimeout(We,10)}se.get("KHR_parallel_shader_compile")!==null?We():setTimeout(We,10)})};let wt=null;function Qe(Q){wt&&wt(Q)}function ke(){He.stop()}function qe(){He.start()}let He=new _0;He.setAnimationLoop(Qe),typeof self<"u"&&He.setContext(self),this.setAnimationLoop=function(Q){wt=Q,ne.setAnimationLoop(Q),Q===null?He.stop():He.start()},ne.addEventListener("sessionstart",ke),ne.addEventListener("sessionend",qe),this.render=function(Q,_e){if(_e!==void 0&&_e.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(x===!0)return;Q.matrixWorldAutoUpdate===!0&&Q.updateMatrixWorld(),_e.parent===null&&_e.matrixWorldAutoUpdate===!0&&_e.updateMatrixWorld(),ne.enabled===!0&&ne.isPresenting===!0&&(ne.cameraAutoUpdate===!0&&ne.updateCamera(_e),_e=ne.getCamera()),Q.isScene===!0&&Q.onBeforeRender(y,Q,_e,C),d=Z.get(Q,_.length),d.init(),_.push(d),S.multiplyMatrices(_e.projectionMatrix,_e.matrixWorldInverse),ve.setFromProjectionMatrix(S),T=this.localClippingEnabled,R=ce.init(this.clippingPlanes,T),v=ue.get(Q,m.length),v.init(),m.push(v),tt(Q,_e,0,y.sortObjects),v.finish(),y.sortObjects===!0&&v.sort(W,ae),this.info.render.frame++,R===!0&&ce.beginShadows();let Se=d.state.shadowsArray;if(pe.render(Se,Q,_e),R===!0&&ce.endShadows(),this.info.autoReset===!0&&this.info.reset(),(ne.enabled===!1||ne.isPresenting===!1||ne.hasDepthSensing()===!1)&&fe.render(v,Q),d.setupLights(y._useLegacyLights),_e.isArrayCamera){let we=_e.cameras;for(let Ee=0,We=we.length;Ee0?d=_[_.length-1]:d=null,m.pop(),m.length>0?v=m[m.length-1]:v=null};function tt(Q,_e,Se,we){if(Q.visible===!1)return;if(Q.layers.test(_e.layers)){if(Q.isGroup)Se=Q.renderOrder;else if(Q.isLOD)Q.autoUpdate===!0&&Q.update(_e);else if(Q.isLight)d.pushLight(Q),Q.castShadow&&d.pushShadow(Q);else if(Q.isSprite){if(!Q.frustumCulled||ve.intersectsSprite(Q)){we&&V.setFromMatrixPosition(Q.matrixWorld).applyMatrix4(S);let st=ee.update(Q),et=Q.material;et.visible&&v.push(Q,st,et,Se,V.z,null)}}else if((Q.isMesh||Q.isLine||Q.isPoints)&&(!Q.frustumCulled||ve.intersectsObject(Q))){let st=ee.update(Q),et=Q.material;if(we&&(Q.boundingSphere!==void 0?(Q.boundingSphere===null&&Q.computeBoundingSphere(),V.copy(Q.boundingSphere.center)):(st.boundingSphere===null&&st.computeBoundingSphere(),V.copy(st.boundingSphere.center)),V.applyMatrix4(Q.matrixWorld).applyMatrix4(S)),Array.isArray(et)){let lt=st.groups;for(let mt=0,gt=lt.length;mt0&&Wt(Ee,We,_e,Se),we&&le.viewport(M.copy(we)),Ee.length>0&&jn(Ee,_e,Se),We.length>0&&jn(We,_e,Se),st.length>0&&jn(st,_e,Se),le.buffers.depth.setTest(!0),le.buffers.depth.setMask(!0),le.buffers.color.setMask(!0),le.setPolygonOffset(!1)}function Wt(Q,_e,Se,we){if((Se.isScene===!0?Se.overrideMaterial:null)!==null)return;if(d.state.transmissionRenderTarget===null){d.state.transmissionRenderTarget=new zr(1,1,{generateMipmaps:!0,type:se.has("EXT_color_buffer_half_float")||se.has("EXT_color_buffer_float")?Ou:fs,minFilter:vi,samples:4,stencilBuffer:s});let mt=G.get(d.state.transmissionRenderTarget);mt.__isTransmissionRenderTarget=!0}let We=d.state.transmissionRenderTarget;y.getDrawingBufferSize(b),We.setSize(b.x,b.y);let st=y.getRenderTarget();y.setRenderTarget(We),y.getClearColor(O),B=y.getClearAlpha(),B<1&&y.setClearColor(16777215,.5),y.clear();let et=y.toneMapping;y.toneMapping=hs,jn(Q,Se,we),A.updateMultisampleRenderTarget(We),A.updateRenderTargetMipmap(We);let lt=!1;for(let mt=0,gt=_e.length;mt0),xt=!!Se.morphAttributes.position,tn=!!Se.morphAttributes.normal,qn=!!Se.morphAttributes.color,gn=hs;we.toneMapped&&(C===null||C.isXRRenderTarget===!0)&&(gn=y.toneMapping);let Di=Se.morphAttributes.position||Se.morphAttributes.normal||Se.morphAttributes.color,qt=Di!==void 0?Di.length:0,_t=G.get(we),rr=d.state.lights;if(R===!0&&(T===!0||Q!==E)){let Nt=Q===E&&we.id===P;ce.setState(we,Q,Nt)}let Yt=!1;we.version===_t.__version?(_t.needsLights&&_t.lightsStateVersion!==rr.state.version||_t.outputColorSpace!==et||Ee.isBatchedMesh&&_t.batching===!1||!Ee.isBatchedMesh&&_t.batching===!0||Ee.isInstancedMesh&&_t.instancing===!1||!Ee.isInstancedMesh&&_t.instancing===!0||Ee.isSkinnedMesh&&_t.skinning===!1||!Ee.isSkinnedMesh&&_t.skinning===!0||Ee.isInstancedMesh&&_t.instancingColor===!0&&Ee.instanceColor===null||Ee.isInstancedMesh&&_t.instancingColor===!1&&Ee.instanceColor!==null||Ee.isInstancedMesh&&_t.instancingMorph===!0&&Ee.morphTexture===null||Ee.isInstancedMesh&&_t.instancingMorph===!1&&Ee.morphTexture!==null||_t.envMap!==lt||we.fog===!0&&_t.fog!==We||_t.numClippingPlanes!==void 0&&(_t.numClippingPlanes!==ce.numPlanes||_t.numIntersection!==ce.numIntersection)||_t.vertexAlphas!==mt||_t.vertexTangents!==gt||_t.morphTargets!==xt||_t.morphNormals!==tn||_t.morphColors!==qn||_t.toneMapping!==gn||_t.morphTargetsCount!==qt)&&(Yt=!0):(Yt=!0,_t.__version=we.version);let sr=_t.currentProgram;Yt===!0&&(sr=Oi(we,_e,Ee));let Mc=!1,Kr=!1,ll=!1,Cn=sr.getUniforms(),or=_t.uniforms;if(le.useProgram(sr.program)&&(Mc=!0,Kr=!0,ll=!0),we.id!==P&&(P=we.id,Kr=!0),Mc||E!==Q){Cn.setValue(z,"projectionMatrix",Q.projectionMatrix),Cn.setValue(z,"viewMatrix",Q.matrixWorldInverse);let Nt=Cn.map.cameraPosition;Nt!==void 0&&Nt.setValue(z,V.setFromMatrixPosition(Q.matrixWorld)),re.logarithmicDepthBuffer&&Cn.setValue(z,"logDepthBufFC",2/(Math.log(Q.far+1)/Math.LN2)),(we.isMeshPhongMaterial||we.isMeshToonMaterial||we.isMeshLambertMaterial||we.isMeshBasicMaterial||we.isMeshStandardMaterial||we.isShaderMaterial)&&Cn.setValue(z,"isOrthographic",Q.isOrthographicCamera===!0),E!==Q&&(E=Q,Kr=!0,ll=!0)}if(Ee.isSkinnedMesh){Cn.setOptional(z,Ee,"bindMatrix"),Cn.setOptional(z,Ee,"bindMatrixInverse");let Nt=Ee.skeleton;Nt&&(Nt.boneTexture===null&&Nt.computeBoneTexture(),Cn.setValue(z,"boneTexture",Nt.boneTexture,A))}Ee.isBatchedMesh&&(Cn.setOptional(z,Ee,"batchingTexture"),Cn.setValue(z,"batchingTexture",Ee._matricesTexture,A));let oo=Se.morphAttributes;if((oo.position!==void 0||oo.normal!==void 0||oo.color!==void 0)&&ge.update(Ee,Se,sr),(Kr||_t.receiveShadow!==Ee.receiveShadow)&&(_t.receiveShadow=Ee.receiveShadow,Cn.setValue(z,"receiveShadow",Ee.receiveShadow)),we.isMeshGouraudMaterial&&we.envMap!==null&&(or.envMap.value=lt,or.flipEnvMap.value=lt.isCubeTexture&<.isRenderTargetTexture===!1?-1:1),we.isMeshStandardMaterial&&we.envMap===null&&_e.environment!==null&&(or.envMapIntensity.value=_e.environmentIntensity),Kr&&(Cn.setValue(z,"toneMappingExposure",y.toneMappingExposure),_t.needsLights&&qh(or,ll),We&&we.fog===!0&&J.refreshFogUniforms(or,We),J.refreshMaterialUniforms(or,we,te,$,d.state.transmissionRenderTarget),aa.upload(z,Tc(_t),or,A)),we.isShaderMaterial&&we.uniformsNeedUpdate===!0&&(aa.upload(z,Tc(_t),or,A),we.uniformsNeedUpdate=!1),we.isSpriteMaterial&&Cn.setValue(z,"center",Ee.center),Cn.setValue(z,"modelViewMatrix",Ee.modelViewMatrix),Cn.setValue(z,"normalMatrix",Ee.normalMatrix),Cn.setValue(z,"modelMatrix",Ee.matrixWorld),we.isShaderMaterial||we.isRawShaderMaterial){let Nt=we.uniformsGroups;for(let Rs=0,Kh=Nt.length;Rs0&&A.useMultisampledRTT(Q)===!1?Ee=G.get(Q).__webglMultisampledFramebuffer:Array.isArray(gt)?Ee=gt[Se]:Ee=gt,M.copy(Q.viewport),L.copy(Q.scissor),N=Q.scissorTest}else M.copy(de).multiplyScalar(te).floor(),L.copy(ye).multiplyScalar(te).floor(),N=Me;if(le.bindFramebuffer(z.FRAMEBUFFER,Ee)&&we&&le.drawBuffers(Q,Ee),le.viewport(M),le.scissor(L),le.setScissorTest(N),We){let lt=G.get(Q.texture);z.framebufferTexture2D(z.FRAMEBUFFER,z.COLOR_ATTACHMENT0,z.TEXTURE_CUBE_MAP_POSITIVE_X+_e,lt.__webglTexture,Se)}else if(st){let lt=G.get(Q.texture),mt=_e||0;z.framebufferTextureLayer(z.FRAMEBUFFER,z.COLOR_ATTACHMENT0,lt.__webglTexture,Se||0,mt)}P=-1},this.readRenderTargetPixels=function(Q,_e,Se,we,Ee,We,st){if(!(Q&&Q.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let et=G.get(Q).__webglFramebuffer;if(Q.isWebGLCubeRenderTarget&&st!==void 0&&(et=et[st]),et){le.bindFramebuffer(z.FRAMEBUFFER,et);try{let lt=Q.texture,mt=lt.format,gt=lt.type;if(mt!==Xi&&Fe.convert(mt)!==z.getParameter(z.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let xt=gt===Ou&&(se.has("EXT_color_buffer_half_float")||se.has("EXT_color_buffer_float"));if(gt!==fs&&Fe.convert(gt)!==z.getParameter(z.IMPLEMENTATION_COLOR_READ_TYPE)&>!==Gr&&!xt){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}_e>=0&&_e<=Q.width-we&&Se>=0&&Se<=Q.height-Ee&&z.readPixels(_e,Se,we,Ee,Fe.convert(mt),Fe.convert(gt),We)}finally{let lt=C!==null?G.get(C).__webglFramebuffer:null;le.bindFramebuffer(z.FRAMEBUFFER,lt)}}},this.copyFramebufferToTexture=function(Q,_e,Se=0){let we=Math.pow(2,-Se),Ee=Math.floor(_e.image.width*we),We=Math.floor(_e.image.height*we);A.setTexture2D(_e,0),z.copyTexSubImage2D(z.TEXTURE_2D,Se,0,0,Q.x,Q.y,Ee,We),le.unbindTexture()},this.copyTextureToTexture=function(Q,_e,Se,we=0){let Ee=_e.image.width,We=_e.image.height,st=Fe.convert(Se.format),et=Fe.convert(Se.type);A.setTexture2D(Se,0),z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,Se.flipY),z.pixelStorei(z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Se.premultiplyAlpha),z.pixelStorei(z.UNPACK_ALIGNMENT,Se.unpackAlignment),_e.isDataTexture?z.texSubImage2D(z.TEXTURE_2D,we,Q.x,Q.y,Ee,We,st,et,_e.image.data):_e.isCompressedTexture?z.compressedTexSubImage2D(z.TEXTURE_2D,we,Q.x,Q.y,_e.mipmaps[0].width,_e.mipmaps[0].height,st,_e.mipmaps[0].data):z.texSubImage2D(z.TEXTURE_2D,we,Q.x,Q.y,st,et,_e.image),we===0&&Se.generateMipmaps&&z.generateMipmap(z.TEXTURE_2D),le.unbindTexture()},this.copyTextureToTexture3D=function(Q,_e,Se,we,Ee=0){let We=Math.round(Q.max.x-Q.min.x),st=Math.round(Q.max.y-Q.min.y),et=Q.max.z-Q.min.z+1,lt=Fe.convert(we.format),mt=Fe.convert(we.type),gt;if(we.isData3DTexture)A.setTexture3D(we,0),gt=z.TEXTURE_3D;else if(we.isDataArrayTexture||we.isCompressedArrayTexture)A.setTexture2DArray(we,0),gt=z.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}z.pixelStorei(z.UNPACK_FLIP_Y_WEBGL,we.flipY),z.pixelStorei(z.UNPACK_PREMULTIPLY_ALPHA_WEBGL,we.premultiplyAlpha),z.pixelStorei(z.UNPACK_ALIGNMENT,we.unpackAlignment);let xt=z.getParameter(z.UNPACK_ROW_LENGTH),tn=z.getParameter(z.UNPACK_IMAGE_HEIGHT),qn=z.getParameter(z.UNPACK_SKIP_PIXELS),gn=z.getParameter(z.UNPACK_SKIP_ROWS),Di=z.getParameter(z.UNPACK_SKIP_IMAGES),qt=Se.isCompressedTexture?Se.mipmaps[Ee]:Se.image;z.pixelStorei(z.UNPACK_ROW_LENGTH,qt.width),z.pixelStorei(z.UNPACK_IMAGE_HEIGHT,qt.height),z.pixelStorei(z.UNPACK_SKIP_PIXELS,Q.min.x),z.pixelStorei(z.UNPACK_SKIP_ROWS,Q.min.y),z.pixelStorei(z.UNPACK_SKIP_IMAGES,Q.min.z),Se.isDataTexture||Se.isData3DTexture?z.texSubImage3D(gt,Ee,_e.x,_e.y,_e.z,We,st,et,lt,mt,qt.data):we.isCompressedArrayTexture?z.compressedTexSubImage3D(gt,Ee,_e.x,_e.y,_e.z,We,st,et,lt,qt.data):z.texSubImage3D(gt,Ee,_e.x,_e.y,_e.z,We,st,et,lt,mt,qt),z.pixelStorei(z.UNPACK_ROW_LENGTH,xt),z.pixelStorei(z.UNPACK_IMAGE_HEIGHT,tn),z.pixelStorei(z.UNPACK_SKIP_PIXELS,qn),z.pixelStorei(z.UNPACK_SKIP_ROWS,gn),z.pixelStorei(z.UNPACK_SKIP_IMAGES,Di),Ee===0&&we.generateMipmaps&&z.generateMipmap(gt),le.unbindTexture()},this.initTexture=function(Q){Q.isCubeTexture?A.setTextureCube(Q,0):Q.isData3DTexture?A.setTexture3D(Q,0):Q.isDataArrayTexture||Q.isCompressedArrayTexture?A.setTexture2DArray(Q,0):A.setTexture2D(Q,0),le.unbindTexture()},this.resetState=function(){w=0,I=0,C=null,le.reset(),Je.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Vr}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;let t=this.getContext();t.drawingBufferColorSpace=e===Pd?"display-p3":"srgb",t.unpackColorSpace=Bt.workingColorSpace===hh?"display-p3":"srgb"}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}};var gr=class extends Rt{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new hn,this.environmentIntensity=1,this.environmentRotation=new hn,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}};var Fg=new oe,Ug=new Ct,kg=new Ct,tb=new oe,Bg=new Ye,Mu=new oe,Uf=new qi,Gg=new Ye,kf=new Ks,ya=class extends Pt{constructor(e,t){super(e,t),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=vm,this.bindMatrix=new Ye,this.bindMatrixInverse=new Ye,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){let e=this.geometry;this.boundingBox===null&&(this.boundingBox=new ji),this.boundingBox.makeEmpty();let t=e.getAttribute("position");for(let n=0;nl)continue;f.applyMatrix4(this.matrixWorld);let P=e.ray.origin.distanceTo(f);Pe.far||t.push({distance:P,point:h.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}else{let m=Math.max(0,o.start),_=Math.min(d.count,o.start+o.count);for(let y=m,x=_-1;yl)continue;f.applyMatrix4(this.matrixWorld);let I=e.ray.origin.distanceTo(f);Ie.far||t.push({distance:I,point:h.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){let t=this.geometry.morphAttributes,n=Object.keys(t);if(n.length>0){let i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;s0){let i=t[n[0]];if(i!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=i.length;si.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,object:o})}}var ai=class{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){let n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){let t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t=[],n,i=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)n=this.getPoint(o/e),s+=n.distanceTo(i),t.push(s),i=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let n=this.getLengths(),i=0,s=n.length,o;t?o=t:o=e*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(i=Math.floor(a+(l-a)/2),c=n[i]-o,c<0)a=i+1;else if(c>0)l=i-1;else{l=i;break}if(i=l,n[i]===o)return i/(s-1);let u=n[i],f=n[i+1]-u,p=(o-u)/f;return(i+p)/(s-1)}getTangent(e,t){let i=e-1e-4,s=e+1e-4;i<0&&(i=0),s>1&&(s=1);let o=this.getPoint(i),a=this.getPoint(s),l=t||(o.isVector2?new Ce:new oe);return l.copy(a).sub(o).normalize(),l}getTangentAt(e,t){let n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){let n=new oe,i=[],s=[],o=[],a=new oe,l=new Ye;for(let p=0;p<=e;p++){let g=p/e;i[p]=this.getTangentAt(g,new oe)}s[0]=new oe,o[0]=new oe;let c=Number.MAX_VALUE,u=Math.abs(i[0].x),h=Math.abs(i[0].y),f=Math.abs(i[0].z);u<=c&&(c=u,n.set(1,0,0)),h<=c&&(c=h,n.set(0,1,0)),f<=c&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),s[0].crossVectors(i[0],a),o[0].crossVectors(i[0],s[0]);for(let p=1;p<=e;p++){if(s[p]=s[p-1].clone(),o[p]=o[p-1].clone(),a.crossVectors(i[p-1],i[p]),a.length()>Number.EPSILON){a.normalize();let g=Math.acos(kn(i[p-1].dot(i[p]),-1,1));s[p].applyMatrix4(l.makeRotationAxis(a,g))}o[p].crossVectors(i[p],s[p])}if(t===!0){let p=Math.acos(kn(s[0].dot(s[e]),-1,1));p/=e,i[0].dot(a.crossVectors(s[0],s[e]))>0&&(p=-p);for(let g=1;g<=e;g++)s[g].applyMatrix4(l.makeRotationAxis(i[g],p*g)),o[g].crossVectors(i[g],s[g])}return{tangents:i,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){let e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}},Wl=class extends ai{constructor(e=0,t=0,n=1,i=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=i,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(e,t=new Ce){let n=t,i=Math.PI*2,s=this.aEndAngle-this.aStartAngle,o=Math.abs(s)i;)s-=i;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,u;this.closed||a>0?c=i[(a-1)%s]:(Au.subVectors(i[0],i[1]).add(i[0]),c=Au);let h=i[a%s],f=i[(a+1)%s];if(this.closed||a+2i.length-2?i.length-1:o+1],h=i[o>i.length-3?i.length-1:o+2];return n.set(Kg(a,l.x,c.x,u.x,h.x),Kg(a,l.y,c.y,u.y,h.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){let o=i[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,t)}s++}return null}getLength(){let e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let e=[],t=0;for(let n=0,i=this.curves.length;n1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,n=e.curves.length;t0){let h=c.getPoint(0);h.equals(this.currentPoint)||this.lineTo(h.x,h.y)}this.curves.push(c);let u=c.getPoint(1);return this.currentPoint.copy(u),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){let e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}};var Xl=class r extends St{constructor(e=1,t=1,n=1,i=32,s=1,o=!1,a=0,l=Math.PI*2){super(),this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:n,radialSegments:i,heightSegments:s,openEnded:o,thetaStart:a,thetaLength:l};let c=this;i=Math.floor(i),s=Math.floor(s);let u=[],h=[],f=[],p=[],g=0,v=[],d=n/2,m=0;_(),o===!1&&(e>0&&y(!0),t>0&&y(!1)),this.setIndex(u),this.setAttribute("position",new ze(h,3)),this.setAttribute("normal",new ze(f,3)),this.setAttribute("uv",new ze(p,2));function _(){let x=new oe,w=new oe,I=0,C=(t-e)/n;for(let P=0;P<=s;P++){let E=[],M=P/s,L=M*(t-e)+e;for(let N=0;N<=i;N++){let O=N/i,B=O*l+a,ie=Math.sin(B),$=Math.cos(B);w.x=L*ie,w.y=-M*n+d,w.z=L*$,h.push(w.x,w.y,w.z),x.set(ie,C,$).normalize(),f.push(x.x,x.y,x.z),p.push(O,1-M),E.push(g++)}v.push(E)}for(let P=0;P80*t){a=c=r[0],l=u=r[1];for(let g=t;gc&&(c=h),f>u&&(u=f);p=Math.max(c-a,u-l),p=p!==0?32767/p:0}return jl(s,o,t,a,l,p,0),o}};function A0(r,e,t,n,i){let s,o;if(i===Ab(r,e,t,n)>0)for(s=e;s=e;s-=n)o=Zg(s,r[s],r[s+1],o);return o&&dh(o,o.next)&&(Yl(o),o=o.next),o}function $s(r,e){if(!r)return r;e||(e=r);let t=r,n;do if(n=!1,!t.steiner&&(dh(t,t.next)||cn(t.prev,t,t.next)===0)){if(Yl(t),t=e=t.prev,t===t.next)break;n=!0}else t=t.next;while(n||t!==e);return e}function jl(r,e,t,n,i,s,o){if(!r)return;!o&&s&&_b(r,n,i,s);let a=r,l,c;for(;r.prev!==r.next;){if(l=r.prev,c=r.next,s?fb(r,n,i,s):hb(r)){e.push(l.i/t|0),e.push(r.i/t|0),e.push(c.i/t|0),Yl(r),r=c.next,a=c.next;continue}if(r=c,r===a){o?o===1?(r=db($s(r),e,t),jl(r,e,t,n,i,s,2)):o===2&&pb(r,e,t,n,i,s):jl($s(r),e,t,n,i,s,1);break}}}function hb(r){let e=r.prev,t=r,n=r.next;if(cn(e,t,n)>=0)return!1;let i=e.x,s=t.x,o=n.x,a=e.y,l=t.y,c=n.y,u=is?i>o?i:o:s>o?s:o,p=a>l?a>c?a:c:l>c?l:c,g=n.next;for(;g!==e;){if(g.x>=u&&g.x<=f&&g.y>=h&&g.y<=p&&na(i,a,s,l,o,c,g.x,g.y)&&cn(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function fb(r,e,t,n){let i=r.prev,s=r,o=r.next;if(cn(i,s,o)>=0)return!1;let a=i.x,l=s.x,c=o.x,u=i.y,h=s.y,f=o.y,p=al?a>c?a:c:l>c?l:c,d=u>h?u>f?u:f:h>f?h:f,m=yd(p,g,e,t,n),_=yd(v,d,e,t,n),y=r.prevZ,x=r.nextZ;for(;y&&y.z>=m&&x&&x.z<=_;){if(y.x>=p&&y.x<=v&&y.y>=g&&y.y<=d&&y!==i&&y!==o&&na(a,u,l,h,c,f,y.x,y.y)&&cn(y.prev,y,y.next)>=0||(y=y.prevZ,x.x>=p&&x.x<=v&&x.y>=g&&x.y<=d&&x!==i&&x!==o&&na(a,u,l,h,c,f,x.x,x.y)&&cn(x.prev,x,x.next)>=0))return!1;x=x.nextZ}for(;y&&y.z>=m;){if(y.x>=p&&y.x<=v&&y.y>=g&&y.y<=d&&y!==i&&y!==o&&na(a,u,l,h,c,f,y.x,y.y)&&cn(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;x&&x.z<=_;){if(x.x>=p&&x.x<=v&&x.y>=g&&x.y<=d&&x!==i&&x!==o&&na(a,u,l,h,c,f,x.x,x.y)&&cn(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function db(r,e,t){let n=r;do{let i=n.prev,s=n.next.next;!dh(i,s)&&w0(i,n,n.next,s)&&ql(i,s)&&ql(s,i)&&(e.push(i.i/t|0),e.push(n.i/t|0),e.push(s.i/t|0),Yl(n),Yl(n.next),n=r=s),n=n.next}while(n!==r);return $s(n)}function pb(r,e,t,n,i,s){let o=r;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&Eb(o,a)){let l=C0(o,a);o=$s(o,o.next),l=$s(l,l.next),jl(o,e,t,n,i,s,0),jl(l,e,t,n,i,s,0);return}a=a.next}o=o.next}while(o!==r)}function mb(r,e,t,n){let i=[],s,o,a,l,c;for(s=0,o=e.length;s=t.next.y&&t.next.y!==t.y){let f=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(f<=s&&f>n&&(n=f,i=t.x=t.x&&t.x>=l&&s!==t.x&&na(oi.x||t.x===i.x&&xb(i,t)))&&(i=t,u=h)),t=t.next;while(t!==a);return i}function xb(r,e){return cn(r.prev,r,e.prev)<0&&cn(e.next,r,r.next)<0}function _b(r,e,t,n){let i=r;do i.z===0&&(i.z=yd(i.x,i.y,e,t,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==r);i.prevZ.nextZ=null,i.prevZ=null,Tb(i)}function Tb(r){let e,t,n,i,s,o,a,l,c=1;do{for(t=r,r=null,s=null,o=0;t;){for(o++,n=t,a=0,e=0;e0||l>0&&n;)a!==0&&(l===0||!n||t.z<=n.z)?(i=t,t=t.nextZ,a--):(i=n,n=n.nextZ,l--),s?s.nextZ=i:r=i,i.prevZ=s,s=i;t=n}s.nextZ=null,c*=2}while(o>1);return r}function yd(r,e,t,n,i){return r=(r-t)*i|0,e=(e-n)*i|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function Mb(r){let e=r,t=r;do(e.x=(r-o)*(s-a)&&(r-o)*(n-a)>=(t-o)*(e-a)&&(t-o)*(s-a)>=(i-o)*(n-a)}function Eb(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!bb(r,e)&&(ql(r,e)&&ql(e,r)&&Sb(r,e)&&(cn(r.prev,r,e.prev)||cn(r,e.prev,e))||dh(r,e)&&cn(r.prev,r,r.next)>0&&cn(e.prev,e,e.next)>0)}function cn(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function dh(r,e){return r.x===e.x&&r.y===e.y}function w0(r,e,t,n){let i=Pu(cn(r,e,t)),s=Pu(cn(r,e,n)),o=Pu(cn(t,n,r)),a=Pu(cn(t,n,e));return!!(i!==s&&o!==a||i===0&&Iu(r,t,e)||s===0&&Iu(r,n,e)||o===0&&Iu(t,r,n)||a===0&&Iu(t,e,n))}function Iu(r,e,t){return e.x<=Math.max(r.x,t.x)&&e.x>=Math.min(r.x,t.x)&&e.y<=Math.max(r.y,t.y)&&e.y>=Math.min(r.y,t.y)}function Pu(r){return r>0?1:r<0?-1:0}function bb(r,e){let t=r;do{if(t.i!==r.i&&t.next.i!==r.i&&t.i!==e.i&&t.next.i!==e.i&&w0(t,t.next,r,e))return!0;t=t.next}while(t!==r);return!1}function ql(r,e){return cn(r.prev,r,r.next)<0?cn(r,e,r.next)>=0&&cn(r,r.prev,e)>=0:cn(r,e,r.prev)<0||cn(r,r.next,e)<0}function Sb(r,e){let t=r,n=!1,i=(r.x+e.x)/2,s=(r.y+e.y)/2;do t.y>s!=t.next.y>s&&t.next.y!==t.y&&i<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(n=!n),t=t.next;while(t!==r);return n}function C0(r,e){let t=new xd(r.i,r.x,r.y),n=new xd(e.i,e.x,e.y),i=r.next,s=e.prev;return r.next=e,e.prev=r,t.next=i,i.prev=t,n.next=t,t.prev=n,s.next=n,n.prev=s,n}function Zg(r,e,t,n){let i=new xd(r,e,t);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Yl(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function xd(r,e,t){this.i=r,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Ab(r,e,t,n){let i=0;for(let s=e,o=t-n;s2&&r[e-1].equals(r[0])&&r.pop()}function $g(r,e){for(let t=0;tNumber.EPSILON){let k=Math.sqrt(Te),J=Math.sqrt(he*he+me*me),ue=se.x-U/k,Z=se.y+A/k,ce=re.x-me/J,pe=re.y+he/J,fe=((ce-ue)*me-(pe-Z)*he)/(A*me-U*he);le=ue+A*fe-X.x,xe=Z+U*fe-X.y;let ge=le*le+xe*xe;if(ge<=2)return new Ce(le,xe);G=Math.sqrt(ge/2)}else{let k=!1;A>Number.EPSILON?he>Number.EPSILON&&(k=!0):A<-Number.EPSILON?he<-Number.EPSILON&&(k=!0):Math.sign(U)===Math.sign(me)&&(k=!0),k?(le=-U,xe=A,G=Math.sqrt(Te)):(le=A,xe=U,G=Math.sqrt(Te/2))}return new Ce(le/G,xe/G)}let ae=[];for(let X=0,se=B.length,re=se-1,le=X+1;X=0;X--){let se=X/d,re=p*Math.cos(se*Math.PI/2),le=g*Math.sin(se*Math.PI/2)+v;for(let xe=0,G=B.length;xe=0;){let le=re,xe=re-1;xe<0&&(xe=X.length-1);for(let G=0,A=u+d*2;G0)&&p.push(y,x,I),(m!==n-1||l=s)){let a=t[1];e=s)break t}o=n,n=0;break n}break e}for(;n>>1;et;)--o;if(++o,s!==0||o!==i){s>=o&&(o=Math.max(o,1),s=o-1);let a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let n=this.times,i=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==s;a++){let l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(i!==void 0&&Rb(i))for(let a=0,l=i.length;a!==l;++a){let c=i[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),e=!1;break}}return e}optimize(){let e=this.times.slice(),t=this.values.slice(),n=this.getValueSize(),i=this.getInterpolation()===ff,s=e.length-1,o=1;for(let a=1;a0){e[o]=e[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)t[l+c]=t[a+c];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*n)):(this.times=e,this.values=t),this}clone(){let e=this.times.slice(),t=this.values.slice(),n=this.constructor,i=new n(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}};Ri.prototype.TimeBufferType=Float32Array;Ri.prototype.ValueBufferType=Float32Array;Ri.prototype.DefaultInterpolation=Fu;var vs=class extends Ri{};vs.prototype.ValueTypeName="bool";vs.prototype.ValueBufferType=Array;vs.prototype.DefaultInterpolation=Du;vs.prototype.InterpolantFactoryMethodLinear=void 0;vs.prototype.InterpolantFactoryMethodSmooth=void 0;var th=class extends Ri{};th.prototype.ValueTypeName="color";var ys=class extends Ri{};ys.prototype.ValueTypeName="number";var Ed=class extends Ea{constructor(e,t,n,i){super(e,t,n,i)}interpolate_(e,t,n,i){let s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-t)/(i-t),c=e*a;for(let u=c+a;c!==u;c+=4)sn.slerpFlat(s,0,o,c-a,o,c,l);return s}},Ii=class extends Ri{InterpolantFactoryMethodLinear(e){return new Ed(this.times,this.values,this.getValueSize(),e)}};Ii.prototype.ValueTypeName="quaternion";Ii.prototype.DefaultInterpolation=Fu;Ii.prototype.InterpolantFactoryMethodSmooth=void 0;var xs=class extends Ri{};xs.prototype.ValueTypeName="string";xs.prototype.ValueBufferType=Array;xs.prototype.DefaultInterpolation=Du;xs.prototype.InterpolantFactoryMethodLinear=void 0;xs.prototype.InterpolantFactoryMethodSmooth=void 0;var Ki=class extends Ri{};Ki.prototype.ValueTypeName="vector";var Qs=class{constructor(e="",t=-1,n=[],i=Oy){this.name=e,this.tracks=n,this.duration=t,this.blendMode=i,this.uuid=Wr(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],n=e.tracks,i=1/(e.fps||1);for(let o=0,a=n.length;o!==a;++o)t.push(Nb(n[o]).scale(i));let s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){let t=[],n=e.tracks,i={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=n.length;s!==o;++s)t.push(Ri.toJSON(n[s]));return i}static CreateFromMorphTargetSequence(e,t,n,i){let s=t.length,o=[];for(let a=0;a1){let h=u[1],f=i[h];f||(i[h]=f=[]),f.push(c)}}let o=[];for(let a in i)o.push(this.CreateFromMorphTargetSequence(a,i[a],t,n));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let n=function(h,f,p,g,v){if(p.length!==0){let d=[],m=[];R0(p,d,m,g),d.length!==0&&v.push(new h(f,d,m))}},i=[],s=e.name||"default",o=e.fps||30,a=e.blendMode,l=e.length||-1,c=e.hierarchy||[];for(let h=0;h{t&&t(s),this.manager.itemEnd(e)},0),s;if(Ur[e]!==void 0){Ur[e].push({onLoad:t,onProgress:n,onError:i});return}Ur[e]=[],Ur[e].push({onLoad:t,onProgress:n,onError:i});let o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;let u=Ur[e],h=c.body.getReader(),f=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),p=f?parseInt(f):0,g=p!==0,v=0,d=new ReadableStream({start(m){_();function _(){h.read().then(({done:y,value:x})=>{if(y)m.close();else{v+=x.byteLength;let w=new ProgressEvent("progress",{lengthComputable:g,loaded:v,total:p});for(let I=0,C=u.length;I{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(u=>new DOMParser().parseFromString(u,a));case"json":return c.json();default:if(a===void 0)return c.text();{let h=/charset="?([^;"\s]*)"?/i.exec(a),f=h&&h[1]?h[1].toLowerCase():void 0,p=new TextDecoder(f);return c.arrayBuffer().then(g=>p.decode(g))}}}).then(c=>{nh.add(e,c);let u=Ur[e];delete Ur[e];for(let h=0,f=u.length;h{let u=Ur[e];if(u===void 0)throw this.manager.itemError(e),c;delete Ur[e];for(let h=0,f=u.length;h{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}};var ih=class extends Dt{constructor(e){super(e)}load(e,t,n,i){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let s=this,o=nh.get(e);if(o!==void 0)return s.manager.itemStart(e),setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o;let a=Bl("img");function l(){u(),nh.add(e,this),t&&t(this),s.manager.itemEnd(e)}function c(h){u(),i&&i(h),s.manager.itemError(e),s.manager.itemEnd(e)}function u(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),e.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(e),a.src=e,a}},rh=class extends Dt{constructor(e){super(e)}load(e,t,n,i){let s=new Vl;s.colorSpace=jt;let o=new ih(this.manager);o.setCrossOrigin(this.crossOrigin),o.setPath(this.path);let a=0;function l(c){o.load(e[c],function(u){s.images[c]=u,a++,a===6&&(s.needsUpdate=!0,t&&t(s))},void 0,i)}for(let c=0;cthis.max.x||e.ythis.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,s0).distanceTo(e)}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}};var _r=class{constructor(){this.type="ShapePath",this.color=new Ve,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Hr,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,i){return this.currentPath.quadraticCurveTo(e,t,n,i),this}bezierCurveTo(e,t,n,i,s,o){return this.currentPath.bezierCurveTo(e,t,n,i,s,o),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(m){let _=[];for(let y=0,x=m.length;yNumber.EPSILON){if(M<0&&(C=_[I],E=-E,P=_[w],M=-M),m.yP.y)continue;if(m.y===C.y){if(m.x===C.x)return!0}else{let L=M*(m.x-C.x)-E*(m.y-C.y);if(L===0)return!0;if(L<0)continue;x=!x}}else{if(m.y!==C.y)continue;if(P.x<=m.x&&m.x<=C.x||C.x<=m.x&&m.x<=P.x)return!0}}return x}let i=Ai.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,a,l,c=[];if(s.length===1)return a=s[0],l=new ds,l.curves=a.curves,c.push(l),c;let u=!i(s[0].getPoints());u=e?!u:u;let h=[],f=[],p=[],g=0,v;f[g]=void 0,p[g]=[];for(let m=0,_=s.length;m<_;m++)a=s[m],v=a.getPoints(),o=i(v),o=e?!o:o,o?(!u&&f[g]&&g++,f[g]={s:new ds,p:v},f[g].s.curves=a.curves,u&&g++,p[g]=[]):p[g].push({h:a,p:v[0]});if(!f[0])return t(s);if(f.length>1){let m=!1,_=0;for(let y=0,x=f.length;y0&&m===!1&&(p=h)}let d;for(let m=0,_=f.length;m<_;m++){l=f[m].s,c.push(l),d=p[m];for(let y=0,x=d.length;y=t?ci.Phong:ci.Physical}var wa=class{Convert(e){return null}},to=class extends wa{Convert(e){return new Ve().copyLinearToSRGB(e)}},Ca=class extends wa{Convert(e){return new Ve().copySRGBToLinear(e)}};function $l(r){return di(r.r,r.g,r.b)}function wn(r){return new Ve(r.r/255,r.g/255,r.b/255)}function Zi(r,e,t){let n=new Kt,i=r.attributes.position.array,s=r.attributes.position.itemSize||3;for(let u=0;u{if(e.isMesh||e.isLineSegments){if(Array.isArray(e.material))for(let t of e.material)t.dispose();else e.material.dispose();e.userData=null,e.geometry.dispose()}})}function yh(r,e,t,n,i){function s(c,u,h,f,p,g){let v=new oe(p[3*g],p[3*g+1],p[3*g+2]);v.applyMatrix4(f.matrixWorld);let d=v.project(c);return new At((d.x+1)*u/2,-(d.y-1)*h/2)}let o=n.geometry.attributes.position.array,a=o.length/6,l=1/0;for(let c=0;c{i.IsEmpty()&&n.push(i)});for(let i=0;i=o)}function i(s,o){function a(l,c,u){return!(!n(u.v0,c.VertexCount())||!n(u.v1,c.VertexCount())||!n(u.v2,c.VertexCount())||u.HasVertexColors()&&(!n(u.c0,c.VertexColorCount())||!n(u.c1,c.VertexColorCount())||!n(u.c2,c.VertexColorCount()))||!n(u.n0,c.NormalCount())||!n(u.n1,c.NormalCount())||!n(u.n2,c.NormalCount())||u.HasTextureUVs()&&(!n(u.u0,c.TextureUVCount())||!n(u.u1,c.TextureUVCount())||!n(u.u2,c.TextureUVCount()))||!n(u.mat,l.MaterialCount())||!t(u.curve))}for(let l=0;l{this.CreateResult(i)})}Clear(){this.name=null,this.extension=null,this.callbacks=null,this.model=null,this.error=null,this.message=null,this.ClearContent()}CreateResult(e){if(this.error){e.onError(),e.onComplete();return}if(Fo(this.model)){this.SetError(Ze("The model doesn't contain any meshes.")),e.onError(),e.onComplete();return}xh(this.model,{defaultLineMaterialColor:this.callbacks.getDefaultLineMaterialColor(),defaultMaterialColor:this.callbacks.getDefaultMaterialColor()}),e.onSuccess(),e.onComplete()}CanImportExtension(e){return!1}GetUpDirection(){return pt.Z}ClearContent(){}ResetContent(){}ImportContent(e,t){}GetModel(){return this.model}SetError(e){this.error=!0,e!=null&&(this.message=e)}WasError(){return this.error}GetErrorMessage(){return this.message}};var Xr=class r{constructor(e){this.vertices=e,this.mat=null}HasVertices(){return this.vertices!==null&&this.vertices.length>=2}GetVertices(){return this.vertices}SetMaterial(e){return this.mat=e,this}SegmentCount(){return this.vertices===null?0:this.vertices.length-1}Clone(){let e=new r([...this.vertices]);return e.SetMaterial(this.mat),e}};var Ra=class extends Ht{constructor(){super(),this.rhino=null}CanImportExtension(e){return e==="3dm"}GetUpDirection(){return pt.Z}ClearContent(){this.instanceIdToObject=null,this.instanceIdToDefinition=null}ResetContent(){this.instanceIdToObject=new Map,this.instanceIdToDefinition=new Map}ImportContent(e,t){this.rhino===null?Qr("rhino3dm").then(()=>{rhino3dm().then(n=>{this.rhino=n,this.ImportRhinoContent(e),t()})}).catch(()=>{this.SetError(Ze("Failed to load rhino3dm.")),t()}):(this.ImportRhinoContent(e),t())}ImportRhinoContent(e){let t=this.rhino.File3dm.fromByteArray(e);if(t===null){this.SetError(Ze("Failed to read Rhino file."));return}this.ImportRhinoDocument(t),Fo(this.model)&&this.SetError(Ze("The model doesn't contain any 3D meshes. Try to save the model while you are in shaded view in Rhino."))}ImportRhinoDocument(e){this.InitRhinoInstances(e),this.ImportRhinoUserStrings(e),this.ImportRhinoGeometry(e)}InitRhinoInstances(e){let t=e.objects();for(let i=0;i0){let n=new Vn(Ze("Document user texts"));for(let i=0;i0){let u=new Vn(Ze("User texts"));for(let h=0;h=0;f--){let v=i[f].geometry().xform.toFloatArray(!1),d=new fn(v);u=u.MultiplyMatrix(d)}let h=new ln(u);ur(a,h)}this.model.AddMeshToRootNode(a)}GetMaterialIndex(e,t,n){function i(l,c,u){let h=c.attributes();if(h.materialSource===l.ObjectMaterialSource.MaterialFromObject){let f=h.materialIndex;if(f>-1)return e.materials().get(f)}else if(h.materialSource===l.ObjectMaterialSource.MaterialFromLayer){let f=h.layerIndex;if(f>-1){let p=e.layers().get(f),g=p.renderMaterialIndex;if(g>-1)return e.materials().get(g);if(c.geometry().objectType===l.ObjectType.Curve){let d=new l.Material;return d.name=p.name,d.diffuseColor=p.color,d}}}else if(h.materialSource===l.ObjectMaterialSource.MaterialFromParent&&u.length!==0)return i(l,u[0],[]);return null}function s(l,c){function u(d,m){d.Set(m.r,m.g,m.b)}function h(d){return d.r===0&&d.g===0&&d.b===0}function f(d){return d.r===255&&d.g===255&&d.b===255}let p=null,g=l.physicallyBased();g.supported?(p=new $r,p.metalness=g.metallic?1:0,p.roughness=g.roughness):(p=new vn,u(p.ambient,l.ambientColor),u(p.specular,l.specularColor)),p.name=l.name,u(p.color,l.diffuseColor),p.opacity=1-l.transparency,si(p),h(p.color)&&!f(l.reflectionColor)&&u(p.color,l.reflectionColor),h(p.color)&&!f(l.transparentColor)&&u(p.color,l.transparentColor);let v=l.getBitmapTexture();if(v){let d=new ii,m=En(v.fileName),_=c.getFileBuffer(m);d.name=m,d.buffer=_,p.diffuseMap=d}return p}function o(l,c,u){let h=s(c,u);for(let f=0;f=this.arrayBuffer.byteLength}ReadArrayBuffer(e){let t=new Uint8Array(this.arrayBuffer),n=new ArrayBuffer(e),i=new Uint8Array(n),s=t.subarray(this.position,this.position+e);return i.set(s,0),this.position+=e,n}ReadBoolean8(){let e=this.dataView.getInt8(this.position);return this.position=this.position+1,!!e}ReadCharacter8(){let e=this.dataView.getInt8(this.position);return this.position=this.position+1,e}ReadUnsignedCharacter8(){let e=this.dataView.getUint8(this.position);return this.position=this.position+1,e}ReadInteger16(){let e=this.dataView.getInt16(this.position,this.isLittleEndian);return this.position=this.position+2,e}ReadUnsignedInteger16(){let e=this.dataView.getUint16(this.position,this.isLittleEndian);return this.position=this.position+2,e}ReadInteger32(){let e=this.dataView.getInt32(this.position,this.isLittleEndian);return this.position=this.position+4,e}ReadUnsignedInteger32(){let e=this.dataView.getUint32(this.position,this.isLittleEndian);return this.position=this.position+4,e}ReadFloat32(){let e=this.dataView.getFloat32(this.position,this.isLittleEndian);return this.position=this.position+4,e}ReadDouble64(){let e=this.dataView.getFloat64(this.position,this.isLittleEndian);return this.position=this.position+8,e}};var vt={MAIN3DS:19789,EDIT3DS:15677,EDIT_MATERIAL:45055,MAT_NAME:40960,MAT_AMBIENT:40976,MAT_DIFFUSE:40992,MAT_SPECULAR:41008,MAT_SHININESS:41024,MAT_SHININESS_STRENGTH:41025,MAT_TRANSPARENCY:41040,MAT_COLOR_F:16,MAT_COLOR:17,MAT_LIN_COLOR:18,MAT_LIN_COLOR_F:19,MAT_TEXMAP:41472,MAT_TEXMAP_NAME:41728,MAT_TEXMAP_UOFFSET:41816,MAT_TEXMAP_VOFFSET:41818,MAT_TEXMAP_USCALE:41812,MAT_TEXMAP_VSCALE:41814,MAT_TEXMAP_ROTATION:41820,PERCENTAGE:48,PERCENTAGE_F:49,EDIT_OBJECT:16384,OBJ_TRIMESH:16640,OBJ_LIGHT:17920,OBJ_CAMERA:18176,TRI_VERTEX:16656,TRI_TEXVERTEX:16704,TRI_FACE:16672,TRI_TRANSFORMATION:16736,TRI_MATERIAL:16688,TRI_SMOOTH:16720,KF3DS:45056,OBJECT_NODE:45058,OBJECT_HIERARCHY:45072,OBJECT_INSTANCE_NAME:45073,OBJECT_PIVOT:45075,OBJECT_POSITION:45088,OBJECT_ROTATION:45089,OBJECT_SCALE:45090,OBJECT_ID:45104},Bd=class{constructor(){this.id=-1,this.name="",this.flags=-1,this.parentId=-1,this.instanceName="",this.pivot=[0,0,0],this.positions=[],this.rotations=[],this.scales=[]}},Gd=class{constructor(){this.nodes=[],this.nodeIdToNode=new Map}IsEmpty(){return this.nodes.length===0}AddNode(e){this.nodes.push(e),this.nodeIdToNode.set(e.nodeId,e)}GetNodes(){return this.nodes}},Ia=class extends Ht{constructor(){super()}CanImportExtension(e){return e==="3ds"}GetUpDirection(){return pt.Z}ClearContent(){this.materialNameToIndex=null,this.meshNameToIndex=null,this.nodeList=null}ResetContent(){this.materialNameToIndex=new Map,this.meshNameToIndex=new Map,this.nodeList=new Gd}ImportContent(e,t){this.ProcessBinary(e),t()}ProcessBinary(e){let t=new Qn(e,!0),n=t.GetByteLength();this.ReadChunks(t,n,(i,s)=>{i===vt.MAIN3DS?this.ReadMainChunk(t,s):this.SkipChunk(t,s)})}ReadMainChunk(e,t){let n=this.GetChunkEnd(e,t);this.ReadChunks(e,n,(i,s)=>{i===vt.EDIT3DS?this.ReadEditorChunk(e,s):i===vt.KF3DS?this.ReadKeyFrameChunk(e,s):this.SkipChunk(e,s)}),this.BuildNodeHierarchy()}ReadEditorChunk(e,t){let n=this.GetChunkEnd(e,t);this.ReadChunks(e,n,(i,s)=>{i===vt.EDIT_MATERIAL?this.ReadMaterialChunk(e,s):i===vt.EDIT_OBJECT?this.ReadObjectChunk(e,s):this.SkipChunk(e,s)})}ReadMaterialChunk(e,t){let n=new vn,i=this.GetChunkEnd(e,t),s=null,o=null;this.ReadChunks(e,i,(l,c)=>{l===vt.MAT_NAME?n.name=this.ReadName(e):l===vt.MAT_AMBIENT?n.ambient=this.ReadColorChunk(e,c):l===vt.MAT_DIFFUSE?n.color=this.ReadColorChunk(e,c):l===vt.MAT_SPECULAR?n.specular=this.ReadColorChunk(e,c):l===vt.MAT_SHININESS?s=this.ReadPercentageChunk(e,c):l===vt.MAT_SHININESS_STRENGTH?o=this.ReadPercentageChunk(e,c):l===vt.MAT_TRANSPARENCY?(n.opacity=1-this.ReadPercentageChunk(e,c),si(n)):l===vt.MAT_TEXMAP?(n.diffuseMap=this.ReadTextureMapChunk(e,c),si(n)):this.SkipChunk(e,c)}),s!==null&&o!==null&&(n.shininess=s*o/10);let a=this.model.AddMaterial(n);this.materialNameToIndex.set(n.name,a)}ReadTextureMapChunk(e,t){let n=new ii,i=this.GetChunkEnd(e,t);return this.ReadChunks(e,i,(s,o)=>{if(s===vt.MAT_TEXMAP_NAME){let a=this.ReadName(e),l=this.callbacks.getFileBuffer(a);n.name=a,n.buffer=l}else s===vt.MAT_TEXMAP_UOFFSET?n.offset.x=e.ReadFloat32():s===vt.MAT_TEXMAP_VOFFSET?n.offset.y=e.ReadFloat32():s===vt.MAT_TEXMAP_USCALE?n.scale.x=e.ReadFloat32():s===vt.MAT_TEXMAP_VSCALE?n.scale.y=e.ReadFloat32():s===vt.MAT_TEXMAP_ROTATION?n.rotation=e.ReadFloat32()*ar:this.SkipChunk(e,o)}),n}ReadColorChunk(e,t){let n=new Mt(0,0,0),i=this.GetChunkEnd(e,t),s=!1;return this.ReadChunks(e,i,(o,a)=>{o===vt.MAT_COLOR?s||(n.r=e.ReadUnsignedCharacter8(),n.g=e.ReadUnsignedCharacter8(),n.b=e.ReadUnsignedCharacter8()):o===vt.MAT_LIN_COLOR?(n.r=e.ReadUnsignedCharacter8(),n.g=e.ReadUnsignedCharacter8(),n.b=e.ReadUnsignedCharacter8(),s=!0):o===vt.MAT_COLOR_F?s||(n.r=Rn(e.ReadFloat32()),n.g=Rn(e.ReadFloat32()),n.b=Rn(e.ReadFloat32())):o===vt.MAT_LIN_COLOR_F?(n.r=Rn(e.ReadFloat32()),n.g=Rn(e.ReadFloat32()),n.b=Rn(e.ReadFloat32()),s=!0):this.SkipChunk(e,a)}),n}ReadPercentageChunk(e,t){let n=0,i=this.GetChunkEnd(e,t);return this.ReadChunks(e,i,(s,o)=>{s===vt.PERCENTAGE?n=e.ReadUnsignedInteger16()/100:s===vt.PERCENTAGE_F?n=e.ReadFloat32():this.SkipChunk(e,o)}),n}ReadObjectChunk(e,t){let n=this.GetChunkEnd(e,t),i=this.ReadName(e);this.ReadChunks(e,n,(s,o)=>{s===vt.OBJ_TRIMESH?this.ReadMeshChunk(e,o,i):this.SkipChunk(e,o)})}ReadMeshChunk(e,t,n){function i(u,h){if(!h.IsValid())return;let f=h.Determinant(),p=wr(f);p&&(h=new fn().CreateScale(-1,1,1).MultiplyMatrix(h));let g=h.Invert();if(g===null)return;let v=new ln(g);ur(u,v),p&&Yc(u)}let s=new Kt;s.SetName(n);let o=this.GetChunkEnd(e,t),a=null;if(this.ReadChunks(e,o,(u,h)=>{u===vt.TRI_VERTEX?this.ReadVerticesChunk(s,e):u===vt.TRI_TEXVERTEX?this.ReadTextureVerticesChunk(s,e):u===vt.TRI_FACE?this.ReadFacesChunk(s,e,h):u===vt.TRI_TRANSFORMATION?a=this.ReadTransformationChunk(e):this.SkipChunk(e,h)}),s.VertexCount()===s.TextureUVCount())for(let u=0;u{o===vt.TRI_MATERIAL?this.ReadFaceMaterialsChunk(e,t):o===vt.TRI_SMOOTH?this.ReadFaceSmoothingGroupsChunk(e,s,t):this.SkipChunk(t,a)})}ReadFaceMaterialsChunk(e,t){let n=this.ReadName(t),i=this.materialNameToIndex.get(n),s=t.ReadUnsignedInteger16();for(let o=0;o{i===vt.OBJECT_NODE?this.ReadObjectNodeChunk(e,s):this.SkipChunk(e,s)})}BuildNodeHierarchy(){function e(n,i){function s(c){return c.positions.length===0?[0,0,0]:c.positions[0]}function o(c){function u(f){let p=[0,0,0,1],g=Math.sqrt(f[0]*f[0]+f[1]*f[1]+f[2]*f[2]);if(g>0){let v=f[3]*-.5,d=Math.sin(v)/g;p=[d*f[0],d*f[1],d*f[2],Math.cos(v)]}return p}if(c.rotations.length===0)return[0,0,0,1];let h=c.rotations[0];return u(h)}function a(c){return c.scales.length===0?[1,1,1]:c.scales[0]}let l=new fn;if(l.ComposeTRS(Ei(s(n)),Eo(o(n)),Ei(a(n))),i){let c=n.pivot;l=new fn().CreateTranslation(-c[0],-c[1],-c[2]).MultiplyMatrix(l)}return new ln(l)}let t=this.model.GetRootNode();if(this.nodeList.IsEmpty())for(let n=0;n0&&i.name!=="$$$DUMMY"&&(s.SetName(i.name),i.instanceName.length>0&&s.SetName(s.GetName()+" "+i.instanceName)),i.parentId===65535||!n.has(i.parentId)?t.AddChildNode(s):n.get(i.parentId).AddChildNode(s),n.set(i.id,s);let o=this.meshNameToIndex.has(i.name);s.SetTransformation(e(i,o)),o&&s.AddMeshIndex(this.meshNameToIndex.get(i.name))}}}ReadObjectNodeChunk(e,t){function n(o,a,l){let c=[];a.Skip(10);let u=a.ReadInteger32();for(let h=0;h{o===vt.OBJECT_HIERARCHY?(i.name=this.ReadName(e),i.flags=e.ReadUnsignedInteger32(),i.parentId=e.ReadUnsignedInteger16()):o===vt.OBJECT_INSTANCE_NAME?i.instanceName=this.ReadName(e):o===vt.OBJECT_PIVOT?i.pivot=this.ReadVector(e):o===vt.OBJECT_POSITION?i.positions=n(this,e,vt.OBJECT_POSITION):o===vt.OBJECT_ROTATION?i.rotations=n(this,e,vt.OBJECT_ROTATION):o===vt.OBJECT_SCALE?i.scales=n(this,e,vt.OBJECT_SCALE):o===vt.OBJECT_ID?i.id=e.ReadUnsignedInteger16():this.SkipChunk(e,a)}),this.nodeList.AddNode(i)}ReadName(e){let t="",n=0,i=0;for(;i<64&&(n=e.ReadCharacter8(),n!==0);)t=t+String.fromCharCode(n),i=i+1;return t}ReadVector(e){return[e.ReadFloat32(),e.ReadFloat32(),e.ReadFloat32()]}ReadChunks(e,t,n){for(;e.GetPosition()<=t-6;){let i=e.ReadUnsignedInteger16(),s=e.ReadUnsignedInteger32();n(i,s)}}GetChunkEnd(e,t){return e.GetPosition()+t-6}SkipChunk(e,t){e.Skip(t-6)}};var ui={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126},Ji={SCALAR:0,VEC2:1,VEC3:2,VEC4:3,MAT2:4,MAT3:5,MAT4:6},no={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Vd={GLTF_STRING:1179937895,JSON_CHUNK_TYPE:1313821514,BINARY_CHUNK_TYPE:5130562};function Ql(r){return di(Ns(r[0]),Ns(r[1]),Ns(r[2]))}function zb(r,e){function t(n,i){let s=n;return i===ui.UNSIGNED_BYTE?s/=255:i===ui.UNSIGNED_SHORT&&(s/=65535),Rn(Ns(s))}return new Mt(t(r[0],e),t(r[1],e),t(r[2],e))}var zd=class{constructor(e){this.reader=new Qn(e,!0),this.componentType=null,this.dataType=null,this.byteStride=null,this.dataCount=null,this.sparseReader=null}SetComponentType(e){this.componentType=e}SetDataType(e){e==="SCALAR"?this.dataType=Ji.SCALAR:e==="VEC2"?this.dataType=Ji.VEC2:e==="VEC3"?this.dataType=Ji.VEC3:e==="VEC4"?this.dataType=Ji.VEC4:e==="MAT2"?this.dataType=Ji.MAT2:e==="MAT3"?this.dataType=Ji.MAT3:e==="MAT4"&&(this.dataType=Ji.MAT4)}SetByteStride(e){this.byteStride=e}SetDataCount(e){this.dataCount=e}SetSparseReader(e,t){this.sparseReader={indexReader:e,valueReader:t}}ReadArrayBuffer(e){return this.reader.ReadArrayBuffer(e)}GetDataCount(){return this.dataCount}ReadData(){if(this.dataType===null)return null;if(this.dataType===Ji.SCALAR){let e=this.ReadComponent();return this.SkipBytesByStride(1),e}else if(this.dataType===Ji.VEC2){let e=this.ReadComponent(),t=this.ReadComponent();return this.SkipBytesByStride(2),new At(e,t)}else if(this.dataType===Ji.VEC3){let e=this.ReadComponent(),t=this.ReadComponent(),n=this.ReadComponent();return this.SkipBytesByStride(3),new Xe(e,t,n)}else if(this.dataType===Ji.VEC4){let e=this.ReadComponent(),t=this.ReadComponent(),n=this.ReadComponent(),i=this.ReadComponent();return this.SkipBytesByStride(4),new Vi(e,t,n,i)}return null}EnumerateData(e){if(this.sparseReader===null)for(let t=0;t{DracoDecoderModule().then(n=>{this.draco=n,t.onSuccess()})}).catch(()=>{t.onError(Ze("Failed to load draco decoder."))}):t.onSuccess()}GetUnsupportedExtensions(e){let t=[];if(e===void 0)return t;for(let n=0;n{i.AddVertex(N)}),m&&s(this.draco,o,p,l.attributes.NORMAL,N=>{i.AddNormal(N)}),_&&s(this.draco,o,p,l.attributes.TEXCOORD_0,N=>{N.y=-N.y,i.AddTextureUV(N)});let P=p.num_faces()*3,E=P*4,M=this.draco._malloc(E);o.GetTrianglesUInt32Array(p,E,M);let L=new Uint32Array(this.draco.HEAPU32.buffer,M,P).slice();for(let N=0;N0){this.SetError(uo("Unsupported extension: {0}.",n.join(", "))),t();return}this.gltfExtensions.LoadLibraries(e.extensionsRequired,{onSuccess:()=>{this.ImportModel(e),t()},onError:i=>{this.SetError(i),t()}})}ImportModel(e){let t=e.materials;if(t!==void 0)for(let i of t)this.ImportMaterial(e,i);let n=e.meshes;if(n!==void 0)for(let i of n)this.ImportMesh(e,i);this.ImportProperties(this.model,e.asset,Ze("Asset properties")),this.ImportScene(e)}ImportProperties(e,t,n){if(t==null)return;let i=new Vn(n);for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s)){let o=null,a=t[s];typeof a=="string"?o=new nn(Vt.Text,s,a):typeof a=="number"&&(Number.isInteger(a)?o=new nn(Vt.Integer,s,a):o=new nn(Vt.Number,s,a)),o!==null&&i.AddProperty(o)}i.PropertyCount()!==0&&e.AddPropertyGroup(i)}GetDefaultScene(e){let t=e.scene||0;return t>=e.scenes.length?null:e.scenes[t]}ImportMaterial(e,t){let n=new $r;if(t.name!==void 0&&(n.name=t.name),n.color=Ql([1,1,1]),t.pbrMetallicRoughness!==void 0){let s=t.pbrMetallicRoughness.baseColorFactor;s!==void 0&&(n.color=Ql(s),n.opacity=s[3]);let o=t.pbrMetallicRoughness.metallicFactor;o!==void 0&&(n.metalness=o);let a=t.pbrMetallicRoughness.roughnessFactor;a!==void 0&&(n.roughness=a);let l=t.emissiveFactor;l!==void 0&&(n.emissive=Ql(l)),n.diffuseMap=this.ImportTexture(e,t.pbrMetallicRoughness.baseColorTexture),n.metalnessMap=this.ImportTexture(e,t.pbrMetallicRoughness.metallicRoughnessTexture),n.normalMap=this.ImportTexture(e,t.normalTexture),n.emissiveMap=this.ImportTexture(e,t.emissiveTexture),n.diffuseMap!==null&&(n.multiplyDiffuseMap=!0);let c=t.alphaMode;c!==void 0&&(c==="BLEND"?n.transparent=!0:c==="MASK"&&(n.transparent=!0,n.alphaTest=t.alphaCutoff||.5))}let i=this.gltfExtensions.ProcessMaterial(t,n,s=>this.ImportTexture(e,s));i!==null&&(n=i),this.model.AddMaterial(n)}ImportTexture(e,t){if(t==null)return null;let n=new ii,s=e.textures[t.index].source,o=e.images[s],a=null;if(this.imageIndexToTextureParams.has(s))a=this.imageIndexToTextureParams.get(s);else{a={name:null,mimeType:null,buffer:null};let l=s.toString();if(o.uri!==void 0){let c=Ls(o.uri);if(c!==null)a.name="Embedded_"+l+"."+es(c.mimeType),a.mimeType=c.mimeType,a.buffer=c.buffer;else{let u=this.callbacks.getFileBuffer(o.uri);a.name=o.uri,a.buffer=u}}else if(o.bufferView!==void 0){let c=e.bufferViews[o.bufferView],u=this.GetReaderFromBufferView(c);if(u!==null){let h=u.ReadArrayBuffer(c.byteLength);a.name="Binary_"+l+"."+es(o.mimeType),a.mimeType=o.mimeType,a.buffer=h}}this.imageIndexToTextureParams.set(s,a)}return n.name=a.name,n.mimeType=a.mimeType,n.buffer=a.buffer,this.gltfExtensions.ProcessTexture(t,n),n}ImportMesh(e,t){let n=new Kt;this.model.AddMesh(n),t.name!==void 0&&n.SetName(t.name);for(let i=0;i{n.AddVertex(y)})}else return;let v=n.VertexCount()-h;if(o){let m=e.accessors[t.attributes.COLOR_0],_=this.GetReaderFromAccessor(e,m);if(_===null)return;_.EnumerateData(y=>{let x=zb([y.x,y.y,y.z],_.componentType);n.AddVertexColor(x)}),n.VertexColorCount()-f!==v&&(o=!1)}if(a){let m=e.accessors[t.attributes.NORMAL],_=this.GetReaderFromAccessor(e,m);if(_===null)return;_.EnumerateData(y=>{n.AddNormal(y)}),n.NormalCount()-p!==v&&(a=!1)}if(l){let m=e.accessors[t.attributes.TEXCOORD_0],_=this.GetReaderFromAccessor(e,m);if(_===null)return;_.EnumerateData(y=>{y.y=-y.y,n.AddTextureUV(y)}),n.TextureUVCount()-g!==v&&(l=!1)}let d=[];if(c){let m=e.accessors[t.indices],_=this.GetReaderFromAccessor(e,m);if(_===null)return;_.EnumerateData(y=>{d.push(y)})}else{let m=n.VertexCount()-h;for(let _=0;_{this.ifc=new WebIFC.IfcAPI,this.ifc.Init().then(()=>{this.ImportIfcContent(e),t()})}).catch(()=>{this.SetError(Ze("Failed to load web-ifc.")),t()}):(this.ImportIfcContent(e),t())}ImportIfcContent(e){let t=new Uint8Array(e),n=this.ifc.OpenModel(t,{COORDINATE_TO_ORIGIN:!0}),i=this.ifc.LoadAllGeometry(n);for(let s=0;s0&&this.ImportIfcMesh(n,o)}this.ImportProperties(n),this.ifc.CloseModel(n)}ImportIfcMesh(e,t){let n=new Kt;n.SetName(uo("Mesh {0}",t.expressID.toString()));let i=0,s=t.geometries;for(let o=0;o{let a=null;if(this.expressIDToMesh.has(o.value)?a=this.expressIDToMesh.get(o.value):this.ifc.GetLine(e,o.value,!0).type===WebIFC.IFCBUILDING&&(a=this.model),a===null)return;let l=s.RelatingPropertyDefinition,c=this.ifc.GetLine(e,l.value,!0);if(!c||!c.HasProperties)return;let u=new Vn(c.Name.value);c.HasProperties.forEach(h=>{if(!h||!h.Name||!h.NominalValue||!h.NominalValue.constructor||h.type!==WebIFC.IFCPROPERTYSINGLEVALUE)return;let f=this.GetIFCString(h.Name.value),p=null,g=null;switch(h.NominalValue.constructor.name){case"IfcText":case"IfcLabel":case"IfcIdentifier":case WebIFC.IFCLABEL:p=new nn(Vt.Text,f,this.GetIFCString(h.NominalValue.value));break;case"IfcBoolean":case"IfcLogical":g=Ze("Unknown"),h.NominalValue.value==="T"?g=Ze("True"):h.NominalValue.value==="F"&&(g=Ze("False")),p=new nn(Vt.Text,f,g);break;case"IfcInteger":case"IfcCountMeasure":p=new nn(Vt.Integer,f,h.NominalValue.value);break;case"IfcReal":case"IfcLengthMeasure":case"IfcPositiveLengthMeasure":case"IfcAreaMeasure":case"IfcVolumeMeasure":case"IfcRatioMeasure":case"IfcPositiveRatioMeasure":case"IfcMassMeasure":case"IfcMassPerLengthMeasure":case"IfcPlaneAngleMeasure":case"IfcThermalTransmittanceMeasure":p=new nn(Vt.Number,f,h.NominalValue.value);break;default:console.log(h);break}p!==null&&u.AddProperty(p)}),u.PropertyCount()>0&&a.AddPropertyGroup(u)})}}GetMaterialIndexByColor(e){let t=di(e.x,e.y,e.z),n=parseInt(e.w*255,10);return this.colorToMaterial.GetMaterialIndex(t.r,t.g,t.b,n)}GetIFCString(e){let t=this.DecodeIFCString(e);return t.length===0&&(t="-"),t}DecodeIFCString(e){let t=/\\X2\\(.*?)\\X0\\/uig,n=e,i=t.exec(e);for(;i;){let s=String.fromCharCode(parseInt(i[1],16));n=n.replace(i[0],s),i=t.exec(e)}return n}};var Wd=class{constructor(e){this.mesh=e,this.globalToMeshVertices=new Map,this.globalToMeshVertexColors=new Map,this.globalToMeshNormals=new Map,this.globalToMeshUvs=new Map}AddVertex(e,t){return this.GetMeshIndex(e,t,this.globalToMeshVertices,n=>this.mesh.AddVertex(new Xe(n.x,n.y,n.z)))}AddVertexColor(e,t){return this.GetMeshIndex(e,t,this.globalToMeshVertexColors,n=>this.mesh.AddVertexColor(new Mt(n.r,n.g,n.b)))}AddNormal(e,t){return this.GetMeshIndex(e,t,this.globalToMeshNormals,n=>this.mesh.AddNormal(new Xe(n.x,n.y,n.z)))}AddUV(e,t){return this.GetMeshIndex(e,t,this.globalToMeshUvs,n=>this.mesh.AddTextureUV(new At(n.x,n.y)))}AddLine(e){this.mesh.AddLine(e)}AddTriangle(e){this.mesh.AddTriangle(e)}GetMeshIndex(e,t,n,i){if(isNaN(e)||e<0||e>=t.length)return null;if(n.has(e))return n.get(e);{let s=t[e],o=i(s);return n.set(e,o),o}}};function _h(r,e,t){return di(parseFloat(r),parseFloat(e),parseFloat(t))}var La=class extends Ht{constructor(){super()}CanImportExtension(e){return e==="obj"}GetUpDirection(){return pt.Y}ClearContent(){this.globalVertices=null,this.globalVertexColors=null,this.globalNormals=null,this.globalUvs=null,this.currentMeshConverter=null,this.currentMaterial=null,this.currentMaterialIndex=null,this.meshNameToConverter=null,this.materialNameToIndex=null}ResetContent(){this.globalVertices=[],this.globalVertexColors=[],this.globalNormals=[],this.globalUvs=[],this.currentMeshConverter=null,this.currentMaterial=null,this.currentMaterialIndex=null,this.meshNameToConverter=new Map,this.materialNameToIndex=new Map}ImportContent(e,t){let n=xn(e);Mi(n,i=>{this.WasError()||this.ProcessLine(i)}),t()}ProcessLine(e){if(e[0]==="#")return;let t=Ui(e,"#");if(t.length===0)return;let n=t[0].toLowerCase();t.shift(),!this.ProcessMeshParameter(n,t,e)&&this.ProcessMaterialParameter(n,t,e)}AddNewMesh(e){if(this.meshNameToConverter.has(e))this.currentMeshConverter=this.meshNameToConverter.get(e);else{let t=new Kt;t.SetName(e),this.model.AddMeshToRootNode(t),this.currentMeshConverter=new Wd(t),this.meshNameToConverter.set(e,this.currentMeshConverter)}}ProcessMeshParameter(e,t,n){if(e==="g"||e==="o"){if(t.length===0)return!0;let i=Ir(n,e.length,"#");return this.AddNewMesh(i),!0}else{if(e==="v")return t.length<3||(this.globalVertices.push(new Xe(parseFloat(t[0]),parseFloat(t[1]),parseFloat(t[2]))),t.length>=6&&this.globalVertexColors.push(_h(t[3],t[4],t[5]))),!0;if(e==="vn")return t.length<3||this.globalNormals.push(new Xe(parseFloat(t[0]),parseFloat(t[1]),parseFloat(t[2]))),!0;if(e==="vt")return t.length<2||this.globalUvs.push(new At(parseFloat(t[0]),parseFloat(t[1]))),!0;if(e==="l"){if(t.length<2)return!0;this.ProcessLineCommand(t)}else if(e==="f")return t.length<3||this.ProcessFaceCommand(t),!0}return!1}ProcessMaterialParameter(e,t,n){function i(o){let a=new Map,l=null;for(let c=0;c0&&(l.offset.x=parseFloat(f[0])),f.length>1&&(l.offset.y=parseFloat(f[1]))}if(h.has("-s")){let f=h.get("-s");f.length>0&&(l.scale.x=parseFloat(f[0])),f.length>1&&(l.scale.y=parseFloat(f[1]))}return l}if(e==="newmtl"){if(t.length===0)return!0;let o=new vn,a=Ir(n,e.length,"#"),l=this.model.AddMaterial(o);return o.name=a,this.currentMaterial=o,this.materialNameToIndex.set(a,l),!0}else if(e==="usemtl"){if(t.length===0)return!0;let o=Ir(n,e.length,"#");return this.materialNameToIndex.has(o)&&(this.currentMaterialIndex=this.materialNameToIndex.get(o)),!0}else if(e==="mtllib"){if(t.length===0)return!0;let o=Ir(n,e.length,"#"),a=this.callbacks.getFileBuffer(o);if(a!==null){let l=xn(a);Mi(l,c=>{this.WasError()||this.ProcessLine(c)})}return!0}else{if(e==="map_kd")return this.currentMaterial===null||t.length===0||(this.currentMaterial.diffuseMap=s(t,this.callbacks),si(this.currentMaterial)),!0;if(e==="map_ks")return this.currentMaterial===null||t.length===0||(this.currentMaterial.specularMap=s(t,this.callbacks)),!0;if(e==="map_bump"||e==="bump")return this.currentMaterial===null||t.length===0||(this.currentMaterial.bumpMap=s(t,this.callbacks)),!0;if(e==="ka")return this.currentMaterial===null||t.length<3||(this.currentMaterial.ambient=_h(t[0],t[1],t[2])),!0;if(e==="kd")return this.currentMaterial===null||t.length<3||(this.currentMaterial.color=_h(t[0],t[1],t[2])),!0;if(e==="ks")return this.currentMaterial===null||t.length<3||(this.currentMaterial.specular=_h(t[0],t[1],t[2])),!0;if(e==="ns")return this.currentMaterial===null||t.length<1||(this.currentMaterial.shininess=parseFloat(t[0])/1e3),!0;if(e==="tr")return this.currentMaterial===null||t.length<1||(this.currentMaterial.opacity=1-parseFloat(t[0]),si(this.currentMaterial)),!0;if(e==="d")return this.currentMaterial===null||t.length<1||(this.currentMaterial.opacity=parseFloat(t[0]),si(this.currentMaterial)),!0}return!1}ProcessLineCommand(e){this.currentMeshConverter===null&&this.AddNewMesh("");let t=[];for(let i=0;i1&&a[1].length>0&&s.push(this.GetRelativeIndex(parseInt(a[1],10),this.globalUvs.length)),a.length>2&&a[2].length>0&&i.push(this.GetRelativeIndex(parseInt(a[2],10),this.globalNormals.length))}for(let o=0;o0?e-1:t+e}};var Oa=class extends Ht{constructor(){super()}CanImportExtension(e){return e==="off"}GetUpDirection(){return pt.Y}ClearContent(){this.mesh=null,this.status=null,this.colorToMaterial=null}ResetContent(){this.mesh=new Kt,this.model.AddMeshToRootNode(this.mesh),this.status={vertexCount:0,faceCount:0,foundVertex:0,foundFace:0},this.colorToMaterial=new ri(this.model)}ImportContent(e,t){let n=xn(e);Mi(n,i=>{this.WasError()||this.ProcessLine(i)}),t()}ProcessLine(e){function t(s){return s.indexOf(".")!==-1?Rn(parseFloat(s)):parseInt(s,10)}if(e[0]==="#")return;let n=Ui(e,"#");if(n.length===0||n[0]==="OFF")return;if(this.status.vertexCount===0&&this.status.faceCount===0){n.length>1&&(this.status.vertexCount=parseInt(n[0],10),this.status.faceCount=parseInt(n[1],10));return}if(this.status.foundVertex=3&&(this.mesh.AddVertex(new Xe(parseFloat(n[0]),parseFloat(n[1]),parseFloat(n[2]))),this.status.foundVertex+=1),n.length>=6&&this.mesh.AddVertexColor(new Mt(t(n[3]),t(n[4]),t(n[5])));return}let i=this.mesh.VertexCount()===this.mesh.VertexColorCount();if(this.status.foundFace=4){let s=parseInt(n[0],10);if(n.length=s+4){let a=new Mt(t(n[s+1]),t(n[s+2]),t(n[s+3]));o=this.colorToMaterial.GetMaterialIndex(a.r,a.g,a.b)}for(let a=0;a0&&t.format.length>0,s=n!==null&&n.count>0&&n.format.length>0;if(!i&&!s)return Ms.NoFaces}else return Ms.UnknownError;return Ms.Ok}},jd=class{constructor(e){this.model=e,this.colorToMaterial=new Map}GetMaterialIndexByColor(e){let t="Color "+Mn(e[0])+Mn(e[1])+Mn(e[2])+Mn(e[3]);if(this.colorToMaterial.has(t))return this.colorToMaterial.get(t);{let n=new vn;n.name=t,n.color=new Mt(e[0],e[1],e[2]),n.opacity=e[3]/255,si(n);let i=this.model.AddMaterial(n);return this.colorToMaterial.set(t,i),i}}},Da=class extends Ht{constructor(){super()}CanImportExtension(e){return e==="ply"}GetUpDirection(){return pt.Y}ClearContent(){this.mesh=null}ResetContent(){this.mesh=new Kt,this.model.AddMeshToRootNode(this.mesh)}ImportContent(e,t){let n=this.GetHeaderContent(e),i=this.ReadHeader(n),s=i.Check();if(s===Ms.Ok)if(i.format==="ascii"){let o=xn(e);o=o.substring(n.length),this.ReadAsciiContent(i,o)}else(i.format==="binary_little_endian"||i.format==="binary_big_endian")&&this.ReadBinaryContent(i,e,n.length);else s===Ms.NoVertices?this.SetError(Ze("The model contains no vertices.")):s===Ms.NoFaces?this.SetError(Ze("The model contains no faces.")):this.SetError(Ze("Invalid header information."));t()}GetHeaderContent(e){let t="",n=new Uint8Array(e),i=0;for(i=0;i{let i=Ui(n,null);i.length===0||i[0]==="comment"||i[0]!=="ply"&&(i[0]==="format"&&i.length>=2?t.SetFormat(i[1]):i[0]==="element"&&i.length>=3?t.AddElement(i[1],parseInt(i[2],10)):i[0]==="property"&&i.length>=3&&(i[1]==="list"&&i.length>=5?t.AddListFormat(i[2],i[3],i[4]):t.AddSingleFormat(i[1],i[2])))}),t}ReadAsciiContent(e,t){let n=e.GetElement("vertex"),i=e.GetElement("face"),s=0,o=0;Mi(t,a=>{if(this.WasError())return;let l=Ui(a,null);if(!(l.length===0||l[0]==="comment")){if(s=3&&(this.mesh.AddVertex(new Xe(parseFloat(l[0]),parseFloat(l[1]),parseFloat(l[2]))),s+=1);return}if(i!==null&&o=4){let c=parseInt(l[0],10);if(l.length0&&y.SetVertexColors(d,m,_),this.mesh.AddTriangle(y)}}else if(h.name==="tristrips")for(let f=0;f{this.worker=n,this.worker.addEventListener("message",a=>{this.ImportResultJson(a.data,t)}),this.worker.addEventListener("error",a=>{this.SetError(Ze("Failed to load occt-import-js.")),t()});let i=null;if(this.extension==="stp"||this.extension==="step")i="step";else if(this.extension==="igs"||this.extension==="iges")i="iges";else if(this.extension==="brp"||this.extension==="brep")i="brep";else{t();return}(i==="step"||i==="iges")&&this.model.SetUnit(ns.Millimeter);let s={linearUnit:"millimeter",linearDeflectionType:"bounding_box_ratio",linearDeflection:.001,angularDeflection:.5},o=new Uint8Array(e);this.worker.postMessage({format:i,buffer:o,params:s})}).catch(()=>{this.SetError(Ze("Failed to load occt-import-js.")),t()})}ImportResultJson(e,t){if(!e.success){t();return}let n=new ri(this.model),i=this.model.GetRootNode();this.ImportNode(e,e.root,i,n),t()}ImportNode(e,t,n,i){for(let s of t.meshes){let o=e.meshes[s],a=this.ImportMesh(o,i),l=this.model.AddMesh(a);n.AddMeshIndex(l)}for(let s of t.children){let o=new Nn;o.SetName(s.name),n.AddChildNode(o),this.ImportNode(e,s,o,i)}}ImportMesh(e,t){let n=null;if(e.color){let s=di(e.color[0],e.color[1],e.color[2]);n=t.GetMaterialIndex(s.r,s.g,s.b,null)}let i=Zi(e,n,null);e.name&&i.SetName(e.name);for(let s of e.brep_faces){if(s.color===null)continue;let o=di(s.color[0],s.color[1],s.color[2]),a=t.GetMaterialIndex(o.r,o.g,o.b,null);for(let l=s.first;l<=s.last;l++)i.GetTriangle(l).SetMaterial(a)}return i}};var Ua=class extends Ht{constructor(){super()}CanImportExtension(e){return e==="stl"}GetUpDirection(){return pt.Z}ClearContent(){this.mesh=null,this.triangle=null}ResetContent(){this.mesh=new Kt,this.model.AddMeshToRootNode(this.mesh),this.triangle=null}ImportContent(e,t){if(this.IsBinaryStlFile(e))this.ProcessBinary(e);else{let n=xn(e);Mi(n,i=>{this.WasError()||this.ProcessLine(i)})}t()}IsBinaryStlFile(e){let t=e.byteLength;if(t<84)return!1;let n=new Qn(e,!0);n.Skip(80);let i=n.ReadUnsignedInteger32();return t===i*50+84}ProcessLine(e){if(e[0]==="#")return;let t=Ui(e,"#");if(t.length===0)return;let n=t[0];if(n==="solid"){if(t.length>1){let i=Ir(e,n.length,"#");this.mesh.SetName(i)}return}if(n==="facet"){if(this.triangle=new Xt(-1,-1,-1),t.length>=5&&t[1]==="normal"){let i=new Xe(parseFloat(t[2]),parseFloat(t[3]),parseFloat(t[4]));if(Ti(i.Length())){let s=this.mesh.AddNormal(i);this.triangle.SetNormals(s,s,s)}}return}if(n==="vertex"&&this.triangle!==null){if(t.length>=4){let i=this.mesh.AddVertex(new Xe(parseFloat(t[1]),parseFloat(t[2]),parseFloat(t[3])));this.triangle.v0===-1?this.triangle.v0=i:this.triangle.v1===-1?this.triangle.v1=i:this.triangle.v2===-1&&(this.triangle.v2=i)}return}if(n==="endfacet"&&this.triangle!==null){this.triangle.v0!==-1&&this.triangle.v1!==-1&&this.triangle.v2!==null&&this.mesh.AddTriangle(this.triangle),this.triangle=null;return}}ProcessBinary(e){function t(o){let a=new Xe;return a.x=o.ReadFloat32(),a.y=o.ReadFloat32(),a.z=o.ReadFloat32(),a}function n(o,a){let l=t(a);return o.AddVertex(l)}let i=new Qn(e,!0);i.Skip(80);let s=i.ReadUnsignedInteger32();for(let o=0;oe.face_colors?this.colorToMaterial.GetMaterialIndex(e.face_colors[f*4+0],e.face_colors[f*4+1],e.face_colors[f*4+2],e.face_colors[f*4+3]):t),o=this.model.AddMesh(s),a=new Nn;a.AddMeshIndex(o);let l=new Xe(0,0,0);e.vector&&(l=new Xe(e.vector.x,e.vector.y,e.vector.z));let c=new Kn(0,0,0,1);e.rotation&&(c=new Kn(e.rotation.qx,e.rotation.qy,e.rotation.qz,e.rotation.qw));let u=new Xe(1,1,1),h=new fn().ComposeTRS(l,c,u);return a.SetTransformation(new ln(h)),n.AddChildNode(a),s}ImportMesh(e,t){let n=new Kt;for(let i=0;i256||$.colormap_size!==24||$.colormap_type!==1)throw new Error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case p:case g:case d:case m:if($.colormap_type)throw new Error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case h:throw new Error("THREE.TGALoader: No data.");default:throw new Error("THREE.TGALoader: Invalid type "+$.image_type)}if($.width<=0||$.height<=0)throw new Error("THREE.TGALoader: Invalid image size.");if($.pixel_size!==8&&$.pixel_size!==16&&$.pixel_size!==24&&$.pixel_size!==32)throw new Error("THREE.TGALoader: Invalid pixel size "+$.pixel_size)}function n($,te,W,ae,de){let ye,Me,ve=W.pixel_size>>3,R=W.width*W.height*ve;if(te&&(Me=de.subarray(ae,ae+=W.colormap_length*(W.colormap_size>>3))),$){ye=new Uint8Array(R);let T,S,b,V=0,q=new Uint8Array(ve);for(;V>7,$[(S+V*b)*4+1]=(R&992)>>2,$[(S+V*b)*4+2]=(R&31)<<3,$[(S+V*b)*4+3]=R&32768?0:255;return $}function o($,te,W,ae,de,ye,Me,ve){let R=0,T,S,b=M.width;for(S=te;S!==ae;S+=W)for(T=de;T!==Me;T+=ye,R+=3)$[(T+b*S)*4+3]=255,$[(T+b*S)*4+2]=ve[R+0],$[(T+b*S)*4+1]=ve[R+1],$[(T+b*S)*4+0]=ve[R+2];return $}function a($,te,W,ae,de,ye,Me,ve){let R=0,T,S,b=M.width;for(S=te;S!==ae;S+=W)for(T=de;T!==Me;T+=ye,R+=4)$[(T+b*S)*4+2]=ve[R+0],$[(T+b*S)*4+1]=ve[R+1],$[(T+b*S)*4+0]=ve[R+2],$[(T+b*S)*4+3]=ve[R+3];return $}function l($,te,W,ae,de,ye,Me,ve){let R,T=0,S,b,V=M.width;for(b=te;b!==ae;b+=W)for(S=de;S!==Me;S+=ye,T++)R=ve[T],$[(S+V*b)*4+0]=R,$[(S+V*b)*4+1]=R,$[(S+V*b)*4+2]=R,$[(S+V*b)*4+3]=255;return $}function c($,te,W,ae,de,ye,Me,ve){let R=0,T,S,b=M.width;for(S=te;S!==ae;S+=W)for(T=de;T!==Me;T+=ye,R+=2)$[(T+b*S)*4+0]=ve[R+0],$[(T+b*S)*4+1]=ve[R+0],$[(T+b*S)*4+2]=ve[R+0],$[(T+b*S)*4+3]=ve[R+1];return $}function u($,te,W,ae,de){let ye,Me,ve,R,T,S;switch((M.flags&_)>>y){default:case I:ye=0,ve=1,T=te,Me=0,R=1,S=W;break;case x:ye=0,ve=1,T=te,Me=W-1,R=-1,S=-1;break;case C:ye=te-1,ve=-1,T=-1,Me=0,R=1,S=W;break;case w:ye=te-1,ve=-1,T=-1,Me=W-1,R=-1,S=-1;break}if(O)switch(M.pixel_size){case 8:l($,Me,R,S,ye,ve,T,ae);break;case 16:c($,Me,R,S,ye,ve,T,ae);break;default:throw new Error("THREE.TGALoader: Format not supported.")}else switch(M.pixel_size){case 8:i($,Me,R,S,ye,ve,T,ae,de);break;case 16:s($,Me,R,S,ye,ve,T,ae);break;case 24:o($,Me,R,S,ye,ve,T,ae);break;case 32:a($,Me,R,S,ye,ve,T,ae);break;default:throw new Error("THREE.TGALoader: Format not supported.")}return $}let h=0,f=1,p=2,g=3,v=9,d=10,m=11,_=48,y=4,x=0,w=1,I=2,C=3;if(e.length<19)throw new Error("THREE.TGALoader: Not enough data to contain header.");let P=0,E=new Uint8Array(e),M={id_length:E[P++],colormap_type:E[P++],image_type:E[P++],colormap_index:E[P++]|E[P++]<<8,colormap_length:E[P++]|E[P++]<<8,colormap_size:E[P++],origin:[E[P++]|E[P++]<<8,E[P++]|E[P++]<<8],width:E[P++]|E[P++]<<8,height:E[P++]|E[P++]<<8,pixel_size:E[P++],flags:E[P++]};if(t(M),M.id_length+P>e.length)throw new Error("THREE.TGALoader: No data.");P+=M.id_length;let L=!1,N=!1,O=!1;switch(M.image_type){case v:L=!0,N=!0;break;case f:N=!0;break;case d:L=!0;break;case p:break;case m:L=!0,O=!0;break;case g:O=!0;break}let B=new Uint8Array(M.width*M.height*4),ie=n(L,N,M,P,E);return u(B,M.width,M.height,ie.pixel_data,ie.palettes),{data:B,width:M.width,height:M.height,flipY:!0,generateMipmaps:!0,minFilter:vi}}};var yi=Uint8Array,Ba=Uint16Array,Hb=Int32Array,P0=new yi([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),N0=new yi([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Wb=new yi([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),L0=function(r,e){for(var t=new Ba(31),n=0;n<31;++n)t[n]=e+=1<>1|(Ft&21845)<<1,jr=(jr&52428)>>2|(jr&13107)<<2,jr=(jr&61680)>>4|(jr&3855)<<4,Zd[Ft]=((jr&65280)>>8|(jr&255)<<8)>>1;var jr,Ft,ec=function(r,e,t){for(var n=r.length,i=0,s=new Ba(e);i>l]=c}else for(a=new Ba(n),i=0;i>15-r[i]);return a},tc=new yi(288);for(Ft=0;Ft<144;++Ft)tc[Ft]=8;var Ft;for(Ft=144;Ft<256;++Ft)tc[Ft]=9;var Ft;for(Ft=256;Ft<280;++Ft)tc[Ft]=7;var Ft;for(Ft=280;Ft<288;++Ft)tc[Ft]=8;var Ft,U0=new yi(32);for(Ft=0;Ft<32;++Ft)U0[Ft]=5;var Ft;var qb=ec(tc,9,1);var Yb=ec(U0,5,1),qd=function(r){for(var e=r[0],t=1;te&&(e=r[t]);return e},$i=function(r,e,t){var n=e/8|0;return(r[n]|r[n+1]<<8)>>(e&7)&t},Yd=function(r,e){var t=e/8|0;return(r[t]|r[t+1]<<8|r[t+2]<<16)>>(e&7)},Kb=function(r){return(r+7)/8|0},$d=function(r,e,t){return(e==null||e<0)&&(e=0),(t==null||t>r.length)&&(t=r.length),new yi(r.subarray(e,t))};var Zb=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],hi=function(r,e,t){var n=new Error(e||Zb[r]);if(n.code=r,Error.captureStackTrace&&Error.captureStackTrace(n,hi),!t)throw n;return n},k0=function(r,e,t,n){var i=r.length,s=n?n.length:0;if(!i||e.f&&!e.l)return t||new yi(0);var o=!t,a=o||e.i!=2,l=e.i;o&&(t=new yi(i*3));var c=function(z){var X=t.length;if(z>X){var se=new yi(Math.max(X*2,z));se.set(t),t=se}},u=e.f||0,h=e.p||0,f=e.b||0,p=e.l,g=e.d,v=e.m,d=e.n,m=i*8;do{if(!p){u=$i(r,h,1);var _=$i(r,h+1,3);if(h+=3,_)if(_==1)p=qb,g=Yb,v=9,d=5;else if(_==2){var I=$i(r,h,31)+257,C=$i(r,h+10,15)+4,P=I+$i(r,h+5,31)+1;h+=14;for(var E=new yi(P),M=new yi(19),L=0;L>4;if(y<16)E[L++]=y;else{var $=0,te=0;for(y==16?(te=3+$i(r,h,3),h+=2,$=E[L-1]):y==17?(te=3+$i(r,h,7),h+=3):y==18&&(te=11+$i(r,h,127),h+=7);te--;)E[L++]=$}}var W=E.subarray(0,I),ae=E.subarray(I);v=qd(W),d=qd(ae),p=ec(W,v,1),g=ec(ae,d,1)}else hi(1);else{var y=Kb(h)+4,x=r[y-4]|r[y-3]<<8,w=y+x;if(w>i){l&&hi(0);break}a&&c(f+x),t.set(r.subarray(y,w),f),e.b=f+=x,e.p=h=w*8,e.f=u;continue}if(h>m){l&&hi(0);break}}a&&c(f+131072);for(var de=(1<>4;if(h+=$&15,h>m){l&&hi(0);break}if($||hi(2),ve<256)t[f++]=ve;else if(ve==256){Me=h,p=null;break}else{var R=ve-254;if(ve>264){var L=ve-257,T=P0[L];R=$i(r,h,(1<>4;S||hi(3),h+=S&15;var ae=jb[b];if(b>3){var T=N0[b];ae+=Yd(r,h)&(1<m){l&&hi(0);break}a&&c(f+131072);var V=f+R;if(f>>0},Kd=function(r,e){return Qi(r,e)+Qi(r,e+4)*4294967296};var $b=function(r,e){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&hi(6,"invalid zlib data"),(r[1]>>5&1)==+!e&&hi(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2};function Qb(r,e){return k0(r,{i:2},e&&e.out,e&&e.dictionary)}function B0(r,e){return k0(r.subarray($b(r,e&&e.dictionary),-4),{i:2},e&&e.out,e&&e.dictionary)}var Jd=typeof TextDecoder<"u"&&new TextDecoder,eS=0;try{Jd.decode(Jb,{stream:!0}),eS=1}catch{}var tS=function(r){for(var e="",t=0;;){var n=r[t++],i=(n>127)+(n>223)+(n>239);if(t+i>r.length)return{s:e,r:$d(r,t-1)};i?i==3?(n=((n&15)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,e+=String.fromCharCode(55296|n>>10,56320|n&1023)):i&1?e+=String.fromCharCode((n&31)<<6|r[t++]&63):e+=String.fromCharCode((n&15)<<12|(r[t++]&63)<<6|r[t++]&63):e+=String.fromCharCode(n)}};function nS(r,e){if(e){for(var t="",n=0;n65558)&&hi(13);var i=Tr(r,n+8);if(!i)return{};var s=Qi(r,n+16),o=s==4294967295||i==65535;if(o){var a=Qi(r,n-12);o=Qi(r,a)==101075792,o&&(i=Qi(r,a+32),s=Qi(r,a+48))}for(var l=e&&e.filter,c=0;c=t[n])return n-1;if(e<=t[r])return r;let i=r,s=n,o=Math.floor((i+s)/2);for(;e=t[o+1];)e=v&&(g[p][0]=g[f][0]/a[_+1][m],d=g[p][0]*a[m][_]);let y=m>=-1?1:-m,x=h-1<=_?v-1:t-h;for(let I=y;I<=x;++I)g[p][I]=(g[f][I]-g[f][I-1])/a[_+1][m+I],d+=g[p][I]*a[m+I][_];h<=_&&(g[p][v]=-g[f][v-1]/a[_+1][h],d+=g[p][v]*a[h][_]),o[v][h]=d;let w=f;f=p,p=w}}let u=t;for(let h=1;h<=n;++h){for(let f=0;f<=t;++f)o[h][f]*=u;u*=t-h}return o}function lS(r,e,t,n,i){let s=i0,l=typeof s.Content=="string"&&s.Content!=="";if(a||l){let c=this.parseImage(n[i]);t[s.RelativeFilename||s.Filename]=c}}}}for(let n in e){let i=e[n];t[i]!==void 0?e[n]=t[i]:e[n]=e[n].split("\\").pop()}return e}parseImage(e){let t=e.Content,n=e.RelativeFilename||e.Filename,i=n.slice(n.lastIndexOf(".")+1).toLowerCase(),s;switch(i){case"bmp":s="image/bmp";break;case"jpg":case"jpeg":s="image/jpeg";break;case"png":s="image/png";break;case"tif":s="image/tiff";break;case"tga":this.manager.getHandler(".tga")===null&&console.warn("FBXLoader: TGA loader not found, skipping ",n),s="image/tga";break;default:console.warn('FBXLoader: Image type "'+i+'" is not supported.');return}if(typeof t=="string")return"data:"+s+";base64,"+t;{let o=new Uint8Array(t);return window.URL.createObjectURL(new Blob([o],{type:s}))}}parseTextures(e){let t=new Map;if("Texture"in bt.Objects){let n=bt.Objects.Texture;for(let i in n){let s=this.parseTexture(n[i],e);t.set(parseInt(i),s)}}return t}parseTexture(e,t){let n=this.loadTexture(e,t);n.ID=e.id,n.name=e.attrName;let i=e.WrapModeU,s=e.WrapModeV,o=i!==void 0?i.value:0,a=s!==void 0?s.value:0;if(n.wrapS=o===0?rn:un,n.wrapT=a===0?rn:un,"Scaling"in e){let l=e.Scaling.value;n.repeat.x=l[0],n.repeat.y=l[1]}if("Translation"in e){let l=e.Translation.value;n.offset.x=l[0],n.offset.y=l[1]}return n}loadTexture(e,t){let n,i=this.textureLoader.path,s=mn.get(e.id).children;s!==void 0&&s.length>0&&t[s[0].ID]!==void 0&&(n=t[s[0].ID],(n.indexOf("blob:")===0||n.indexOf("data:")===0)&&this.textureLoader.setPath(void 0));let o,a=e.FileName.slice(-3).toLowerCase();if(a==="tga"){let l=this.manager.getHandler(".tga");l===null?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",e.RelativeFilename),o=new Dn):(l.setPath(this.textureLoader.path),o=l.load(n))}else if(a==="dds"){let l=this.manager.getHandler(".dds");l===null?(console.warn("FBXLoader: DDS loader not found, creating placeholder texture for",e.RelativeFilename),o=new Dn):(l.setPath(this.textureLoader.path),o=l.load(n))}else a==="psd"?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",e.RelativeFilename),o=new Dn):o=this.textureLoader.load(n);return this.textureLoader.setPath(i),o}parseMaterials(e){let t=new Map;if("Material"in bt.Objects){let n=bt.Objects.Material;for(let i in n){let s=this.parseMaterial(n[i],e);s!==null&&t.set(parseInt(i),s)}}return t}parseMaterial(e,t){let n=e.id,i=e.attrName,s=e.ShadingModel;if(typeof s=="object"&&(s=s.value),!mn.has(n))return null;let o=this.parseParameters(e,t,n),a;switch(s.toLowerCase()){case"phong":a=new Zt;break;case"lambert":a=new Ma;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',s),a=new Zt;break}return a.setValues(o),a.name=i,a}parseParameters(e,t,n){let i={};e.BumpFactor&&(i.bumpScale=e.BumpFactor.value),e.Diffuse?i.color=new Ve().fromArray(e.Diffuse.value).convertSRGBToLinear():e.DiffuseColor&&(e.DiffuseColor.type==="Color"||e.DiffuseColor.type==="ColorRGB")&&(i.color=new Ve().fromArray(e.DiffuseColor.value).convertSRGBToLinear()),e.DisplacementFactor&&(i.displacementScale=e.DisplacementFactor.value),e.Emissive?i.emissive=new Ve().fromArray(e.Emissive.value).convertSRGBToLinear():e.EmissiveColor&&(e.EmissiveColor.type==="Color"||e.EmissiveColor.type==="ColorRGB")&&(i.emissive=new Ve().fromArray(e.EmissiveColor.value).convertSRGBToLinear()),e.EmissiveFactor&&(i.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(i.opacity=parseFloat(e.Opacity.value)),i.opacity<1&&(i.transparent=!0),e.ReflectionFactor&&(i.reflectivity=e.ReflectionFactor.value),e.Shininess&&(i.shininess=e.Shininess.value),e.Specular?i.specular=new Ve().fromArray(e.Specular.value).convertSRGBToLinear():e.SpecularColor&&e.SpecularColor.type==="Color"&&(i.specular=new Ve().fromArray(e.SpecularColor.value).convertSRGBToLinear());let s=this;return mn.get(n).children.forEach(function(o){let a=o.relationship;switch(a){case"Bump":i.bumpMap=s.getTexture(t,o.ID);break;case"Maya|TEX_ao_map":i.aoMap=s.getTexture(t,o.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":i.map=s.getTexture(t,o.ID),i.map!==void 0&&(i.map.colorSpace=jt);break;case"DisplacementColor":i.displacementMap=s.getTexture(t,o.ID);break;case"EmissiveColor":i.emissiveMap=s.getTexture(t,o.ID),i.emissiveMap!==void 0&&(i.emissiveMap.colorSpace=jt);break;case"NormalMap":case"Maya|TEX_normal_map":i.normalMap=s.getTexture(t,o.ID);break;case"ReflectionColor":i.envMap=s.getTexture(t,o.ID),i.envMap!==void 0&&(i.envMap.mapping=Ul,i.envMap.colorSpace=jt);break;case"SpecularColor":i.specularMap=s.getTexture(t,o.ID),i.specularMap!==void 0&&(i.specularMap.colorSpace=jt);break;case"TransparentColor":case"TransparencyFactor":i.alphaMap=s.getTexture(t,o.ID),i.transparent=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case"VectorDisplacementColor":default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",a);break}}),i}getTexture(e,t){return"LayeredTexture"in bt.Objects&&t in bt.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=mn.get(t).children[0].ID),e.get(t)}parseDeformers(){let e={},t={};if("Deformer"in bt.Objects){let n=bt.Objects.Deformer;for(let i in n){let s=n[i],o=mn.get(parseInt(i));if(s.attrType==="Skin"){let a=this.parseSkeleton(o,n);a.ID=i,o.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),a.geometryID=o.parents[0].ID,e[i]=a}else if(s.attrType==="BlendShape"){let a={id:i};a.rawTargets=this.parseMorphTargets(o,n),a.id=i,o.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[i]=a}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){let n=[];return e.children.forEach(function(i){let s=t[i.ID];if(s.attrType!=="Cluster")return;let o={ID:i.ID,indices:[],weights:[],transformLink:new Ye().fromArray(s.TransformLink.a)};"Indexes"in s&&(o.indices=s.Indexes.a,o.weights=s.Weights.a),n.push(o)}),{rawBones:n,bones:[]}}parseMorphTargets(e,t){let n=[];for(let i=0;i1?o=a:a.length>0?o=a[0]:(o=new Zt({name:Dt.DEFAULT_MATERIAL_NAME,color:13421772}),a.push(o)),"color"in s.attributes&&a.forEach(function(l){l.vertexColors=!0}),s.FBX_Deformer?(i=new ya(s,o),i.normalizeSkinWeights()):i=new Pt(s,o),i}createCurve(e,t){let n=e.children.reduce(function(s,o){return t.has(o.ID)&&(s=t.get(o.ID)),s},null),i=new Wn({name:Dt.DEFAULT_MATERIAL_NAME,color:3342591,linewidth:1});return new Js(n,i)}getTransformData(e,t){let n={};"InheritType"in t&&(n.inheritType=parseInt(t.InheritType.value)),"RotationOrder"in t?n.eulerOrder=X0(t.RotationOrder.value):n.eulerOrder="ZYX","Lcl_Translation"in t&&(n.translation=t.Lcl_Translation.value),"PreRotation"in t&&(n.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(n.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(n.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(n.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(n.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(n.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(n.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(n.rotationPivot=t.RotationPivot.value),e.userData.transformData=n}setLookAtProperties(e,t){"LookAtProperty"in t&&mn.get(e.ID).children.forEach(function(i){if(i.relationship==="LookAtProperty"){let s=bt.Objects.Model[i.ID];if("Lcl_Translation"in s){let o=s.Lcl_Translation.value;e.target!==void 0?(e.target.position.fromArray(o),ei.add(e.target)):e.lookAt(new oe().fromArray(o))}}})}bindSkeleton(e,t,n){let i=this.parsePoseNodes();for(let s in e){let o=e[s];mn.get(parseInt(o.ID)).parents.forEach(function(l){if(t.has(l.ID)){let c=l.ID;mn.get(c).parents.forEach(function(h){n.has(h.ID)&&n.get(h.ID).bind(new _a(o.bones),i[h.ID])})}})}}parsePoseNodes(){let e={};if("Pose"in bt.Objects){let t=bt.Objects.Pose;for(let n in t)if(t[n].attrType==="BindPose"&&t[n].NbPoseNodes>0){let i=t[n].PoseNode;Array.isArray(i)?i.forEach(function(s){e[s.Node]=new Ye().fromArray(s.Matrix.a)}):e[i.Node]=new Ye().fromArray(i.Matrix.a)}}return e}addGlobalSceneSettings(){if("GlobalSettings"in bt){if("AmbientColor"in bt.GlobalSettings){let e=bt.GlobalSettings.AmbientColor.value,t=e[0],n=e[1],i=e[2];if(t!==0||n!==0||i!==0){let s=new Ve(t,n,i).convertSRGBToLinear();ei.add(new xr(s,1))}}"UnitScaleFactor"in bt.GlobalSettings&&(ei.userData.unitScaleFactor=bt.GlobalSettings.UnitScaleFactor.value)}}},ip=class{constructor(){this.negativeMaterialIndices=!1}parse(e){let t=new Map;if("Geometry"in bt.Objects){let n=bt.Objects.Geometry;for(let i in n){let s=mn.get(parseInt(i)),o=this.parseGeometry(s,n[i],e);t.set(parseInt(i),o)}}return this.negativeMaterialIndices===!0&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),t}parseGeometry(e,t,n){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,n);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,n){let i=n.skeletons,s=[],o=e.parents.map(function(h){return bt.Objects.Model[h.ID]});if(o.length===0)return;let a=e.children.reduce(function(h,f){return i[f.ID]!==void 0&&(h=i[f.ID]),h},null);e.children.forEach(function(h){n.morphTargets[h.ID]!==void 0&&s.push(n.morphTargets[h.ID])});let l=o[0],c={};"RotationOrder"in l&&(c.eulerOrder=X0(l.RotationOrder.value)),"InheritType"in l&&(c.inheritType=parseInt(l.InheritType.value)),"GeometricTranslation"in l&&(c.translation=l.GeometricTranslation.value),"GeometricRotation"in l&&(c.rotation=l.GeometricRotation.value),"GeometricScaling"in l&&(c.scale=l.GeometricScaling.value);let u=W0(c);return this.genGeometry(t,a,s,u)}genGeometry(e,t,n,i){let s=new St;e.attrName&&(s.name=e.attrName);let o=this.parseGeoNode(e,t),a=this.genBuffers(o),l=new ze(a.vertex,3);if(l.applyMatrix4(i),s.setAttribute("position",l),a.colors.length>0&&s.setAttribute("color",new ze(a.colors,3)),t&&(s.setAttribute("skinIndex",new pa(a.weightsIndices,4)),s.setAttribute("skinWeight",new ze(a.vertexWeights,4)),s.FBX_Deformer=t),a.normal.length>0){let c=new ft().getNormalMatrix(i),u=new ze(a.normal,3);u.applyNormalMatrix(c),s.setAttribute("normal",u)}if(a.uvs.forEach(function(c,u){let h=u===0?"uv":`uv${u}`;s.setAttribute(h,new ze(a.uvs[u],2))}),o.material&&o.material.mappingType!=="AllSame"){let c=a.materialIndex[0],u=0;if(a.materialIndex.forEach(function(h,f){h!==c&&(s.addGroup(u,f-u,c),c=h,u=f)}),s.groups.length>0){let h=s.groups[s.groups.length-1],f=h.start+h.count;f!==a.materialIndex.length&&s.addGroup(f,a.materialIndex.length-f,c)}s.groups.length===0&&s.addGroup(0,a.materialIndex.length,a.materialIndex[0])}return this.addMorphTargets(s,e,n,i),s}parseGeoNode(e,t){let n={};if(n.vertexPositions=e.Vertices!==void 0?e.Vertices.a:[],n.vertexIndices=e.PolygonVertexIndex!==void 0?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(n.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(n.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(n.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){n.uv=[];let i=0;for(;e.LayerElementUV[i];)e.LayerElementUV[i].UV&&n.uv.push(this.parseUVs(e.LayerElementUV[i])),i++}return n.weightTable={},t!==null&&(n.skeleton=t,t.rawBones.forEach(function(i,s){i.indices.forEach(function(o,a){n.weightTable[o]===void 0&&(n.weightTable[o]=[]),n.weightTable[o].push({id:s,weight:i.weights[a]})})})),n}genBuffers(e){let t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},n=0,i=0,s=!1,o=[],a=[],l=[],c=[],u=[],h=[],f=this;return e.vertexIndices.forEach(function(p,g){let v,d=!1;p<0&&(p=p^-1,d=!0);let m=[],_=[];if(o.push(p*3,p*3+1,p*3+2),e.color){let y=Eh(g,n,p,e.color);l.push(y[0],y[1],y[2])}if(e.skeleton){if(e.weightTable[p]!==void 0&&e.weightTable[p].forEach(function(y){_.push(y.weight),m.push(y.id)}),_.length>4){s||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),s=!0);let y=[0,0,0,0],x=[0,0,0,0];_.forEach(function(w,I){let C=w,P=m[I];x.forEach(function(E,M,L){if(C>E){L[M]=C,C=E;let N=y[M];y[M]=P,P=N}})}),m=y,_=x}for(;_.length<4;)_.push(0),m.push(0);for(let y=0;y<4;++y)u.push(_[y]),h.push(m[y])}if(e.normal){let y=Eh(g,n,p,e.normal);a.push(y[0],y[1],y[2])}e.material&&e.material.mappingType!=="AllSame"&&(v=Eh(g,n,p,e.material)[0],v<0&&(f.negativeMaterialIndices=!0,v=0)),e.uv&&e.uv.forEach(function(y,x){let w=Eh(g,n,p,y);c[x]===void 0&&(c[x]=[]),c[x].push(w[0]),c[x].push(w[1])}),i++,d&&(f.genFace(t,e,o,v,a,l,c,u,h,i),n++,i=0,o=[],a=[],l=[],c=[],u=[],h=[])}),t}getNormalNewell(e){let t=new oe(0,0,0);for(let n=0;n.5?new oe(0,1,0):new oe(0,0,1)).cross(t).normalize(),s=t.clone().cross(i).normalize();return{normal:t,tangent:i,bitangent:s}}flattenVertex(e,t,n){return new Ce(e.dot(t),e.dot(n))}genFace(e,t,n,i,s,o,a,l,c,u){let h;if(u>3){let f=[];for(let d=0;d1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");let o=e.get(s[0].ID);n[i]={name:t[i].attrName,layer:o}}return n}addClip(e){let t=[],n=this;return e.layer.forEach(function(i){t=t.concat(n.generateTracks(i))}),new Qs(e.name,-1,t)}generateTracks(e){let t=[],n=new oe,i=new oe;if(e.transform&&e.transform.decompose(n,new sn,i),n=n.toArray(),i=i.toArray(),e.T!==void 0&&Object.keys(e.T.curves).length>0){let s=this.generateVectorTrack(e.modelName,e.T.curves,n,"position");s!==void 0&&t.push(s)}if(e.R!==void 0&&Object.keys(e.R.curves).length>0){let s=this.generateRotationTrack(e.modelName,e.R.curves,e.preRotation,e.postRotation,e.eulerOrder);s!==void 0&&t.push(s)}if(e.S!==void 0&&Object.keys(e.S.curves).length>0){let s=this.generateVectorTrack(e.modelName,e.S.curves,i,"scale");s!==void 0&&t.push(s)}if(e.DeformPercent!==void 0){let s=this.generateMorphTrack(e);s!==void 0&&t.push(s)}return t}generateVectorTrack(e,t,n,i){let s=this.getTimesForAllAxes(t),o=this.getKeyframeTrackValues(s,t,n);return new Ki(e+"."+i,s,o)}generateRotationTrack(e,t,n,i,s){let o,a;if(t.x!==void 0&&t.y!==void 0&&t.z!==void 0){let h=this.interpolateRotations(t.x,t.y,t.z,s);o=h[0],a=h[1]}n!==void 0&&(n=n.map(pn.degToRad),n.push(s),n=new hn().fromArray(n),n=new sn().setFromEuler(n)),i!==void 0&&(i=i.map(pn.degToRad),i.push(s),i=new hn().fromArray(i),i=new sn().setFromEuler(i).invert());let l=new sn,c=new hn,u=[];if(!a||!o)return new Ii(e+".quaternion",[0],[0]);for(let h=0;h2&&new sn().fromArray(u,(h-3)/3*4).dot(l)<0&&l.set(-l.x,-l.y,-l.z,-l.w),l.toArray(u,h/3*4);return new Ii(e+".quaternion",o,u)}generateMorphTrack(e){let t=e.DeformPercent.curves.morph,n=t.values.map(function(s){return s/100}),i=ei.getObjectByName(e.modelName).morphTargetDictionary[e.morphName];return new ys(e.modelName+".morphTargetInfluences["+i+"]",t.times,n)}getTimesForAllAxes(e){let t=[];if(e.x!==void 0&&(t=t.concat(e.x.times)),e.y!==void 0&&(t=t.concat(e.y.times)),e.z!==void 0&&(t=t.concat(e.z.times)),t=t.sort(function(n,i){return n-i}),t.length>1){let n=1,i=t[0];for(let s=1;s=180||p[1]>=180||p[2]>=180){let v=Math.max(...p)/180,d=new hn(...c,i),m=new hn(...h,i),_=new sn().setFromEuler(d),y=new sn().setFromEuler(m);_.dot(y)&&y.set(-y.x,-y.y,-y.z,-y.w);let x=e.times[a-1],w=e.times[a]-x,I=new sn,C=new hn;for(let P=0;P<1;P+=1/v)I.copy(_.clone().slerp(y.clone(),P)),s.push(x+P*w),C.setFromQuaternion(I,i),o.push(C.x),o.push(C.y),o.push(C.z)}else s.push(e.times[a]),o.push(pn.degToRad(e.values[a])),o.push(pn.degToRad(t.values[a])),o.push(pn.degToRad(n.values[a]))}return[s,o]}},sp=class{getPrevNode(){return this.nodeStack[this.currentIndent-2]}getCurrentNode(){return this.nodeStack[this.currentIndent-1]}getCurrentProp(){return this.currentProp}pushStack(e){this.nodeStack.push(e),this.currentIndent+=1}popStack(){this.nodeStack.pop(),this.currentIndent-=1}setCurrentProp(e,t){this.currentProp=e,this.currentPropName=t}parse(e){this.currentIndent=0,this.allNodes=new Ah,this.nodeStack=[],this.currentProp=[],this.currentPropName="";let t=this,n=e.split(/[\r\n]+/);return n.forEach(function(i,s){let o=i.match(/^[\s\t]*;/),a=i.match(/^[\s\t]*$/);if(o||a)return;let l=i.match("^\\t{"+t.currentIndent+"}(\\w+):(.*){",""),c=i.match("^\\t{"+t.currentIndent+"}(\\w+):[\\s\\t\\r\\n](.*)"),u=i.match("^\\t{"+(t.currentIndent-1)+"}}");l?t.parseNodeBegin(i,l):c?t.parseNodeProperty(i,c,n[++s]):u?t.popStack():i.match(/^[^\s\t}]/)&&t.parseNodePropertyContinued(i)}),this.allNodes}parseNodeBegin(e,t){let n=t[1].trim().replace(/^"/,"").replace(/"$/,""),i=t[2].split(",").map(function(l){return l.trim().replace(/^"/,"").replace(/"$/,"")}),s={name:n},o=this.parseNodeAttr(i),a=this.getCurrentNode();this.currentIndent===0?this.allNodes.add(n,s):n in a?(n==="PoseNode"?a.PoseNode.push(s):a[n].id!==void 0&&(a[n]={},a[n][a[n].id]=a[n]),o.id!==""&&(a[n][o.id]=s)):typeof o.id=="number"?(a[n]={},a[n][o.id]=s):n!=="Properties70"&&(n==="PoseNode"?a[n]=[s]:a[n]=s),typeof o.id=="number"&&(s.id=o.id),o.name!==""&&(s.attrName=o.name),o.type!==""&&(s.attrType=o.type),this.pushStack(s)}parseNodeAttr(e){let t=e[0];e[0]!==""&&(t=parseInt(e[0]),isNaN(t)&&(t=e[0]));let n="",i="";return e.length>1&&(n=e[1].replace(/^(\w+)::/,""),i=e[2]),{id:t,name:n,type:i}}parseNodeProperty(e,t,n){let i=t[1].replace(/^"/,"").replace(/"$/,"").trim(),s=t[2].replace(/^"/,"").replace(/"$/,"").trim();i==="Content"&&s===","&&(s=n.replace(/"/g,"").replace(/,$/,"").trim());let o=this.getCurrentNode();if(o.name==="Properties70"){this.parseNodeSpecialProperty(e,i,s);return}if(i==="C"){let l=s.split(",").slice(1),c=parseInt(l[0]),u=parseInt(l[1]),h=s.split(",").slice(3);h=h.map(function(f){return f.trim().replace(/^"/,"")}),i="connections",s=[c,u],gS(s,h),o[i]===void 0&&(o[i]=[])}i==="Node"&&(o.id=s),i in o&&Array.isArray(o[i])?o[i].push(s):i!=="a"?o[i]=s:o.a=s,this.setCurrentProp(o,i),i==="a"&&s.slice(-1)!==","&&(o.a=tp(s))}parseNodePropertyContinued(e){let t=this.getCurrentNode();t.a+=e,e.slice(-1)!==","&&(t.a=tp(t.a))}parseNodeSpecialProperty(e,t,n){let i=n.split('",').map(function(u){return u.trim().replace(/^\"/,"").replace(/\s/,"_")}),s=i[0],o=i[1],a=i[2],l=i[3],c=i[4];switch(o){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":c=parseFloat(c);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":c=tp(c);break}this.getPrevNode()[s]={type:o,type2:a,flag:l,value:c},this.setCurrentProp(this.getPrevNode(),s)}},op=class{parse(e){let t=new Sh(e);t.skip(23);let n=t.getUint32();if(n<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+n);let i=new Ah;for(;!this.endOfContent(t);){let s=this.parseNode(t,n);s!==null&&i.add(s.name,s)}return i}endOfContent(e){return e.size()%16===0?(e.getOffset()+160+16&-16)>=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){let n={},i=t>=7500?e.getUint64():e.getUint32(),s=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();let o=e.getUint8(),a=e.getString(o);if(i===0)return null;let l=[];for(let f=0;f0?l[0]:"",u=l.length>1?l[1]:"",h=l.length>2?l[2]:"";for(n.singleProperty=s===1&&e.getOffset()===i;i>e.getOffset();){let f=this.parseNode(e,t);f!==null&&this.parseSubNode(a,n,f)}return n.propertyList=l,typeof c=="number"&&(n.id=c),u!==""&&(n.attrName=u),h!==""&&(n.attrType=h),a!==""&&(n.name=a),n}parseSubNode(e,t,n){if(n.singleProperty===!0){let i=n.propertyList[0];Array.isArray(i)?(t[n.name]=n,n.a=i):t[n.name]=i}else if(e==="Connections"&&n.name==="C"){let i=[];n.propertyList.forEach(function(s,o){o!==0&&i.push(s)}),t.connections===void 0&&(t.connections=[]),t.connections.push(i)}else if(n.name==="Properties70")Object.keys(n).forEach(function(s){t[s]=n[s]});else if(e==="Properties70"&&n.name==="P"){let i=n.propertyList[0],s=n.propertyList[1],o=n.propertyList[2],a=n.propertyList[3],l;i.indexOf("Lcl ")===0&&(i=i.replace("Lcl ","Lcl_")),s.indexOf("Lcl ")===0&&(s=s.replace("Lcl ","Lcl_")),s==="Color"||s==="ColorRGB"||s==="Vector"||s==="Vector3D"||s.indexOf("Lcl_")===0?l=[n.propertyList[4],n.propertyList[5],n.propertyList[6]]:l=n.propertyList[4],t[i]={type:s,type2:o,flag:a,value:l}}else t[n.name]===void 0?typeof n.id=="number"?(t[n.name]={},t[n.name][n.id]=n):t[n.name]=n:n.name==="PoseNode"?(Array.isArray(t[n.name])||(t[n.name]=[t[n.name]]),t[n.name].push(n)):t[n.name][n.id]===void 0&&(t[n.name][n.id]=n)}parseProperty(e){let t=e.getString(1),n;switch(t){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return n=e.getUint32(),e.getArrayBuffer(n);case"S":return n=e.getUint32(),e.getString(n);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":let i=e.getUint32(),s=e.getUint32(),o=e.getUint32();if(s===0)switch(t){case"b":case"c":return e.getBooleanArray(i);case"d":return e.getFloat64Array(i);case"f":return e.getFloat32Array(i);case"i":return e.getInt32Array(i);case"l":return e.getInt64Array(i)}let a=B0(new Uint8Array(e.getArrayBuffer(o))),l=new Sh(a.buffer);switch(t){case"b":case"c":return l.getBooleanArray(i);case"d":return l.getFloat64Array(i);case"f":return l.getFloat32Array(i);case"i":return l.getInt32Array(i);case"l":return l.getInt64Array(i)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+t)}}},Sh=class{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=t!==void 0?t:!0,this._textDecoder=new TextDecoder}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return(this.getUint8()&1)===1}getBooleanArray(e){let t=[];for(let n=0;n=0&&(n=new Uint8Array(this.dv.buffer,t,i)),this._textDecoder.decode(n)}},Ah=class{add(e,t){this[e]=t}};function fS(r){let e="Kaydara FBX Binary  \0";return r.byteLength>=e.length&&e===j0(r,0,e.length)}function dS(r){let e=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],t=0;function n(i){let s=r[i-1];return r=r.slice(t+i),t++,s}for(let i=0;i0&&D.push(new Ki(H+".position",K,be)),Re.length>0&&D.push(new Ii(H+".quaternion",K,Re)),Ke.length>0&&D.push(new Ki(H+".scale",K,Ke)),D}function L(F,D,j){let H,K=!0,be,Re;for(be=0,Re=F.length;be=0;){let H=F[D];if(H.value[j]!==null)return H;D--}return null}function B(F,D,j){for(;D>>0)+2);switch(j=j.toLowerCase(),j){case"tga":D=Zh;break;default:D=Fp}return D}function Z(F){let D=k(F.url),j=D.profile.technique,H;switch(j.type){case"phong":case"blinn":H=new Zt;break;case"lambert":H=new Ma;break;default:H=new Ci;break}H.name=F.name||"";function K(Be,je=null){let it=D.profile.samplers[Be.id],Le=null;if(it!==void 0){let nt=D.profile.surfaces[it.source];Le=V(nt.init_from)}else console.warn("THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530)."),Le=V(Be.id);if(Le!==null){let nt=ue(Le);if(nt!==void 0){let $e=nt.load(Le),ct=Be.extra;if(ct!==void 0&&ct.technique!==void 0&&c(ct.technique)===!1){let ot=ct.technique;$e.wrapS=ot.wrapU?rn:un,$e.wrapT=ot.wrapV?rn:un,$e.offset.set(ot.offsetU||0,ot.offsetV||0),$e.repeat.set(ot.repeatU||1,ot.repeatV||1)}else $e.wrapS=rn,$e.wrapT=rn;return je!==null&&($e.colorSpace=je),$e}else return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",Le),null}else return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",Be.id),null}let be=j.parameters;for(let Be in be){let je=be[Be];switch(Be){case"diffuse":je.color&&H.color.fromArray(je.color),je.texture&&(H.map=K(je.texture,jt));break;case"specular":je.color&&H.specular&&H.specular.fromArray(je.color),je.texture&&(H.specularMap=K(je.texture));break;case"bump":je.texture&&(H.normalMap=K(je.texture));break;case"ambient":je.texture&&(H.lightMap=K(je.texture,jt));break;case"shininess":je.float&&H.shininess&&(H.shininess=je.float);break;case"emission":je.color&&H.emissive&&H.emissive.fromArray(je.color),je.texture&&(H.emissiveMap=K(je.texture,jt));break}}H.color.convertSRGBToLinear(),H.specular&&H.specular.convertSRGBToLinear(),H.emissive&&H.emissive.convertSRGBToLinear();let Re=be.transparent,Ke=be.transparency;if(Ke===void 0&&Re&&(Ke={float:1}),Re===void 0&&Ke&&(Re={opaque:"A_ONE",data:{color:[1,1,1,1]}}),Re&&Ke)if(Re.data.texture)H.transparent=!0;else{let Be=Re.data.color;switch(Re.opaque){case"A_ONE":H.opacity=Be[3]*Ke.float;break;case"RGB_ZERO":H.opacity=1-Be[0]*Ke.float;break;case"A_ZERO":H.opacity=1-Be[3]*Ke.float;break;case"RGB_ONE":H.opacity=Be[0]*Ke.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',Re.opaque)}H.opacity<1&&(H.transparent=!0)}if(j.extra!==void 0&&j.extra.technique!==void 0){let Be=j.extra.technique;for(let je in Be){let it=Be[je];switch(je){case"double_sided":H.side=it===1?On:wi;break;case"bump":H.normalMap=K(it.texture),H.normalScale=new Ce(1,1);break}}}return H}function ce(F){return v(ht.materials[F],Z)}function pe(F){let D={name:F.getAttribute("name")};for(let j=0,H=F.childNodes.length;j0?Re+Be:Re;D.inputs[je]={id:be,offset:Ke},D.stride=Math.max(D.stride,Ke+1),Re==="TEXCOORD"&&(D.hasUV=!0);break;case"vcount":D.vcount=o(K.textContent);break;case"p":D.p=o(K.textContent);break}}return D}function at(F){let D={};for(let j=0;j0&&D0&&Le.setAttribute("position",new ze(K.array,K.stride)),be.array.length>0&&Le.setAttribute("normal",new ze(be.array,be.stride)),Be.array.length>0&&Le.setAttribute("color",new ze(Be.array,Be.stride)),Re.array.length>0&&Le.setAttribute("uv",new ze(Re.array,Re.stride)),Ke.array.length>0&&Le.setAttribute("uv1",new ze(Ke.array,Ke.stride)),je.array.length>0&&Le.setAttribute("skinIndex",new ze(je.array,je.stride)),it.array.length>0&&Le.setAttribute("skinWeight",new ze(it.array,it.stride)),H.data=Le,H.type=F[0].type,H.materialKeys=nt,H}function ke(F,D,j,H,K=!1){let be=F.p,Re=F.stride,Ke=F.vcount;function Be(Le){let nt=be[Le+j]*it,$e=nt+it;for(;nt<$e;nt++)H.push(je[nt]);if(K){let ct=H.length-it-1;Ec.setRGB(H[ct+0],H[ct+1],H[ct+2]).convertSRGBToLinear(),H[ct+0]=Ec.r,H[ct+1]=Ec.g,H[ct+2]=Ec.b}}let je=D.array,it=D.stride;if(F.vcount!==void 0){let Le=0;for(let nt=0,$e=Ke.length;nt<$e;nt++){let ct=Ke[nt];if(ct===4){let ot=Le+Re*0,on=Le+Re*1,Gt=Le+Re*2,Lt=Le+Re*3;Be(ot),Be(on),Be(Lt),Be(on),Be(Gt),Be(Lt)}else if(ct===3){let ot=Le+Re*0,on=Le+Re*1,Gt=Le+Re*2;Be(ot),Be(on),Be(Gt)}else if(ct>4)for(let ot=1,on=ct-2;ot<=on;ot++){let Gt=Le+Re*0,Lt=Le+Re*ot,Ot=Le+Re*(ot+1);Be(Gt),Be(Lt),Be(Ot)}Le+=Re*ct}}else for(let Le=0,nt=be.length;Le=D.limits.max&&(D.static=!0),D.middlePosition=(D.limits.min+D.limits.max)/2,D}function Oi(F){let D={sid:F.getAttribute("sid"),name:F.getAttribute("name")||"",attachments:[],transforms:[]};for(let j=0;j$e.limits.max||Le<$e.limits.min)console.warn("THREE.ColladaLoader: Joint "+it+" value "+Le+" outside of limits (min: "+$e.limits.min+", max: "+$e.limits.max+").");else if($e.static)console.warn("THREE.ColladaLoader: Joint "+it+" is static.");else{let ct=nt.object,ot=$e.axis,on=nt.transforms;et.identity();for(let Gt=0;Gt()=>(e||(e={exports:{}},r(e.exports,e)),e.exports),q0=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.VERSION=void 0,r.VERSION="9.0.1"}),Ut=Tt((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e){for(var t=0,n=e.length,i=r.length;t{(function(t,n){typeof define=="function"&&define.amd?define([],n):typeof e=="object"&&e.exports?e.exports=n():t.regexpToAst=n()})(typeof self<"u"?self:r,function(){function t(){}t.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},t.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},t.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var _={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":l(_,"global");break;case"i":l(_,"ignoreCase");break;case"m":l(_,"multiLine");break;case"u":l(_,"unicode");break;case"y":l(_,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:_,value:m,loc:this.loc(0)}},t.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},t.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},t.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},t.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}c(m);var _=this.disjunction();return this.consumeChar(")"),{type:m,value:_,loc:this.loc(d)}}u()},t.prototype.quantifier=function(d){var m,_=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var y=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:y,atMost:y};break;case",":var x;this.isDigit()?(x=this.integerIncludingZero(),m={atLeast:y,atMost:x}):m={atLeast:y,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;c(m);break}if(!(d===!0&&m===void 0))return c(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(_),m},t.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),c(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},t.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[o(`
+`),o("\r"),o("\u2028"),o("\u2029")]}},t.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},t.prototype.decimalEscapeAtom=function(){var d=this.positiveInteger();return{type:"GroupBackReference",value:d}},t.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=f;break;case"D":d=f,m=!0;break;case"s":d=g;break;case"S":d=g,m=!0;break;case"w":d=p;break;case"W":d=p,m=!0;break}return c(d),{type:"Set",value:d,complement:m}},t.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=o("\f");break;case"n":d=o(`
+`);break;case"r":d=o("\r");break;case"t":d=o("	");break;case"v":d=o("\v");break}return c(d),{type:"Character",value:d}},t.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},t.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:o("\0")}},t.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},t.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},t.prototype.identityEscapeAtom=function(){var d=this.popChar();return{type:"Character",value:o(d)}},t.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case`
+`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:o(d)}}},t.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var _=this.classAtom(),y=_.type==="Character";if(y&&this.isRangeDash()){this.consumeChar("-");var x=this.classAtom(),w=x.type==="Character";if(w){if(x.value<_.value)throw Error("Range out of order in character class");d.push({from:_.value,to:x.value})}else a(_.value,d),d.push(o("-")),a(x.value,d)}else a(_.value,d)}return this.consumeChar("]"),{type:"Set",complement:m,value:d}},t.prototype.classAtom=function(){switch(this.peekChar()){case"]":case`
+`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}},t.prototype.classEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:o("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},t.prototype.group=function(){var d=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),d=!1;break;default:this.groupIdx++;break}var m=this.disjunction();this.consumeChar(")");var _={type:"Group",capturing:d,value:m};return d&&(_.idx=this.groupIdx),_},t.prototype.positiveInteger=function(){var d=this.popChar();if(s.test(d)===!1)throw Error("Expecting a positive integer");for(;i.test(this.peekChar(0));)d+=this.popChar();return parseInt(d,10)},t.prototype.integerIncludingZero=function(){var d=this.popChar();if(i.test(d)===!1)throw Error("Expecting an integer");for(;i.test(this.peekChar(0));)d+=this.popChar();return parseInt(d,10)},t.prototype.patternCharacter=function(){var d=this.popChar();switch(d){case`
+`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:o(d)}}},t.prototype.isRegExpFlag=function(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}},t.prototype.isRangeDash=function(){return this.peekChar()==="-"&&this.isClassAtom(1)},t.prototype.isDigit=function(){return i.test(this.peekChar(0))},t.prototype.isClassAtom=function(d){switch(d===void 0&&(d=0),this.peekChar(d)){case"]":case`
+`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},t.prototype.isTerm=function(){return this.isAtom()||this.isAssertion()},t.prototype.isAtom=function(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}},t.prototype.isAssertion=function(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}},t.prototype.isQuantifier=function(){var d=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(d)}},t.prototype.isPatternCharacter=function(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
+`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},t.prototype.parseHexDigits=function(d){for(var m="",_=0;_=this.input.length)throw Error("Unexpected end of input");this.idx++},t.prototype.loc=function(d){return{begin:d,end:this.idx}};var n=/[0-9a-fA-F]/,i=/[0-9]/,s=/[1-9]/;function o(d){return d.charCodeAt(0)}function a(d,m){d.length!==void 0?d.forEach(function(_){m.push(_)}):m.push(d)}function l(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function c(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function u(){throw Error("Internal Error - Should never get here!")}var h,f=[];for(h=o("0");h<=o("9");h++)f.push(h);var p=[o("_")].concat(f);for(h=o("a");h<=o("z");h++)p.push(h);for(h=o("A");h<=o("Z");h++)p.push(h);var g=[o(" "),o("\f"),o(`
+`),o("\r"),o("	"),o("\v"),o("	"),o("\xA0"),o("\u1680"),o("\u2000"),o("\u2001"),o("\u2002"),o("\u2003"),o("\u2004"),o("\u2005"),o("\u2006"),o("\u2007"),o("\u2008"),o("\u2009"),o("\u200A"),o("\u2028"),o("\u2029"),o("\u202F"),o("\u205F"),o("\u3000"),o("\uFEFF")];function v(){}return v.prototype.visitChildren=function(d){for(var m in d){var _=d[m];d.hasOwnProperty(m)&&(_.type!==void 0?this.visit(_):Array.isArray(_)&&_.forEach(function(y){this.visit(y)},this))}},v.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},v.prototype.visitPattern=function(d){},v.prototype.visitFlags=function(d){},v.prototype.visitDisjunction=function(d){},v.prototype.visitAlternative=function(d){},v.prototype.visitStartAnchor=function(d){},v.prototype.visitEndAnchor=function(d){},v.prototype.visitWordBoundary=function(d){},v.prototype.visitNonWordBoundary=function(d){},v.prototype.visitLookahead=function(d){},v.prototype.visitNegativeLookahead=function(d){},v.prototype.visitCharacter=function(d){},v.prototype.visitSet=function(d){},v.prototype.visitGroup=function(d){},v.prototype.visitGroupBackReference=function(d){},v.prototype.visitQuantifier=function(d){},{RegExpParser:t,BaseRegExpVisitor:v,VERSION:"0.5.0"}})}),lp=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.clearRegExpParserCache=r.getRegExpAst=void 0;var e=ap(),t={},n=new e.RegExpParser;function i(o){var a=o.toString();if(t.hasOwnProperty(a))return t[a];var l=n.pattern(a);return t[a]=l,l}r.getRegExpAst=i;function s(){t={}}r.clearRegExpParserCache=s}),yS=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var v=function(d,m){return v=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(_,y){_.__proto__=y}||function(_,y){for(var x in y)Object.prototype.hasOwnProperty.call(y,x)&&(_[x]=y[x])},v(d,m)};return function(d,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");v(d,m);function _(){this.constructor=d}d.prototype=m===null?Object.create(m):(_.prototype=m.prototype,new _)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.canMatchCharCode=r.firstCharOptimizedIndices=r.getOptimizedStartCodesIndices=r.failedOptimizationPrefixMsg=void 0;var t=ap(),n=Ut(),i=lp(),s=Y0(),o="Complement Sets are not supported for first char optimization";r.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations:
+`;function a(v,d){d===void 0&&(d=!1);try{var m=i.getRegExpAst(v),_=l(m.value,{},m.flags.ignoreCase);return _}catch(x){if(x.message===o)d&&n.PRINT_WARNING(""+r.failedOptimizationPrefixMsg+("	Unable to optimize: < "+v.toString()+` >
+`)+`	Complement Sets cannot be automatically optimized.
+	This will disable the lexer's first char optimizations.
+	See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var y="";d&&(y=`
+	This will disable the lexer's first char optimizations.
+	See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),n.PRINT_ERROR(r.failedOptimizationPrefixMsg+`
+`+("	Failed parsing: < "+v.toString()+` >
+`)+("	Using the regexp-to-ast library version: "+t.VERSION+`
+`)+"	Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+y)}}return[]}r.getOptimizedStartCodesIndices=a;function l(v,d,m){switch(v.type){case"Disjunction":for(var _=0;_=s.minOptimizationVal)for(var L=E.from>=s.minOptimizationVal?E.from:s.minOptimizationVal,N=E.to,O=s.charCodeToOptimizedIndex(L),B=s.charCodeToOptimizedIndex(N),ie=O;ie<=B;ie++)d[ie]=ie}}});break;case"Group":l(w.value,d,m);break;default:throw Error("Non Exhaustive Match")}var I=w.quantifier!==void 0&&w.quantifier.atLeast===0;if(w.type==="Group"&&f(w)===!1||w.type!=="Group"&&I===!1)break}break;default:throw Error("non exhaustive match!")}return n.values(d)}r.firstCharOptimizedIndices=l;function c(v,d,m){var _=s.charCodeToOptimizedIndex(v);d[_]=_,m===!0&&u(v,d)}function u(v,d){var m=String.fromCharCode(v),_=m.toUpperCase();if(_!==m){var y=s.charCodeToOptimizedIndex(_.charCodeAt(0));d[y]=y}else{var x=m.toLowerCase();if(x!==m){var y=s.charCodeToOptimizedIndex(x.charCodeAt(0));d[y]=y}}}function h(v,d){return n.find(v.value,function(m){if(typeof m=="number")return n.contains(d,m);var _=m;return n.find(d,function(y){return _.from<=y&&y<=_.to})!==void 0})}function f(v){return v.quantifier&&v.quantifier.atLeast===0?!0:v.value?n.isArray(v.value)?n.every(v.value,f):f(v.value):!1}var p=function(v){e(d,v);function d(m){var _=v.call(this)||this;return _.targetCharCodes=m,_.found=!1,_}return d.prototype.visitChildren=function(m){if(this.found!==!0){switch(m.type){case"Lookahead":this.visitLookahead(m);return;case"NegativeLookahead":this.visitNegativeLookahead(m);return}v.prototype.visitChildren.call(this,m)}},d.prototype.visitCharacter=function(m){n.contains(this.targetCharCodes,m.value)&&(this.found=!0)},d.prototype.visitSet=function(m){m.complement?h(m,this.targetCharCodes)===void 0&&(this.found=!0):h(m,this.targetCharCodes)!==void 0&&(this.found=!0)},d}(t.BaseRegExpVisitor);function g(v,d){if(d instanceof RegExp){var m=i.getRegExpAst(d),_=new p(v);return _.visit(m),_.found}else return n.find(d,function(y){return n.contains(v,y.charCodeAt(0))})!==void 0}r.canMatchCharCode=g}),Y0=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var T=function(S,b){return T=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(V,q){V.__proto__=q}||function(V,q){for(var Y in q)Object.prototype.hasOwnProperty.call(q,Y)&&(V[Y]=q[Y])},T(S,b)};return function(S,b){if(typeof b!="function"&&b!==null)throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");T(S,b);function V(){this.constructor=S}S.prototype=b===null?Object.create(b):(V.prototype=b.prototype,new V)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.charCodeToOptimizedIndex=r.minOptimizationVal=r.buildLineBreakIssueMessage=r.LineTerminatorOptimizedTester=r.isShortPattern=r.isCustomPattern=r.cloneEmptyGroups=r.performWarningRuntimeChecks=r.performRuntimeChecks=r.addStickyFlag=r.addStartOfInput=r.findUnreachablePatterns=r.findModesThatDoNotExist=r.findInvalidGroupType=r.findDuplicatePatterns=r.findUnsupportedFlags=r.findStartOfInputAnchor=r.findEmptyMatchRegExps=r.findEndOfInputAnchor=r.findInvalidPatterns=r.findMissingPatterns=r.validatePatterns=r.analyzeTokenTypes=r.enableSticky=r.disableSticky=r.SUPPORT_STICKY=r.MODES=r.DEFAULT_MODE=void 0;var t=ap(),n=Ch(),i=Ut(),s=yS(),o=lp(),a="PATTERN";r.DEFAULT_MODE="defaultMode",r.MODES="modes",r.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function l(){r.SUPPORT_STICKY=!1}r.disableSticky=l;function c(){r.SUPPORT_STICKY=!0}r.enableSticky=c;function u(T,S){S=i.defaults(S,{useSticky:r.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
+`],tracer:function(ee,k){return k()}});var b=S.tracer;b("initCharCodeToOptimizedIndexMap",function(){R()});var V;b("Reject Lexer.NA",function(){V=i.reject(T,function(ee){return ee[a]===n.Lexer.NA})});var q=!1,Y;b("Transform Patterns",function(){q=!1,Y=i.map(V,function(ee){var k=ee[a];if(i.isRegExp(k)){var J=k.source;return J.length===1&&J!=="^"&&J!=="$"&&J!=="."&&!k.ignoreCase?J:J.length===2&&J[0]==="\\"&&!i.contains(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],J[1])?J[1]:S.useSticky?N(k):L(k)}else{if(i.isFunction(k))return q=!0,{exec:k};if(i.has(k,"exec"))return q=!0,k;if(typeof k=="string"){if(k.length===1)return k;var ue=k.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),Z=new RegExp(ue);return S.useSticky?N(Z):L(Z)}else throw Error("non exhaustive match")}})});var z,X,se,re,le;b("misc mapping",function(){z=i.map(V,function(ee){return ee.tokenTypeIdx}),X=i.map(V,function(ee){var k=ee.GROUP;if(k!==n.Lexer.SKIPPED){if(i.isString(k))return k;if(i.isUndefined(k))return!1;throw Error("non exhaustive match")}}),se=i.map(V,function(ee){var k=ee.LONGER_ALT;if(k){var J=i.indexOf(V,k);return J}}),re=i.map(V,function(ee){return ee.PUSH_MODE}),le=i.map(V,function(ee){return i.has(ee,"POP_MODE")})});var xe;b("Line Terminator Handling",function(){var ee=de(S.lineTerminatorCharacters);xe=i.map(V,function(k){return!1}),S.positionTracking!=="onlyOffset"&&(xe=i.map(V,function(k){if(i.has(k,"LINE_BREAKS"))return k.LINE_BREAKS;if(W(k,ee)===!1)return s.canMatchCharCode(ee,k.PATTERN)}))});var G,A,U,he;b("Misc Mapping #2",function(){G=i.map(V,$),A=i.map(Y,te),U=i.reduce(V,function(ee,k){var J=k.GROUP;return i.isString(J)&&J!==n.Lexer.SKIPPED&&(ee[J]=[]),ee},{}),he=i.map(Y,function(ee,k){return{pattern:Y[k],longerAlt:se[k],canLineTerminator:xe[k],isCustom:G[k],short:A[k],group:X[k],push:re[k],pop:le[k],tokenTypeIdx:z[k],tokenType:V[k]}})});var me=!0,Te=[];return S.safeMode||b("First Char Optimization",function(){Te=i.reduce(V,function(ee,k,J){if(typeof k.PATTERN=="string"){var ue=k.PATTERN.charCodeAt(0),Z=ve(ue);ye(ee,Z,he[J])}else if(i.isArray(k.START_CHARS_HINT)){var ce;i.forEach(k.START_CHARS_HINT,function(fe){var ge=typeof fe=="string"?fe.charCodeAt(0):fe,Ae=ve(ge);ce!==Ae&&(ce=Ae,ye(ee,Ae,he[J]))})}else if(i.isRegExp(k.PATTERN))if(k.PATTERN.unicode)me=!1,S.ensureOptimizations&&i.PRINT_ERROR(""+s.failedOptimizationPrefixMsg+("	Unable to analyze < "+k.PATTERN.toString()+` > pattern.
+`)+`	The regexp unicode flag is not currently supported by the regexp-to-ast library.
+	This will disable the lexer's first char optimizations.
+	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var pe=s.getOptimizedStartCodesIndices(k.PATTERN,S.ensureOptimizations);i.isEmpty(pe)&&(me=!1),i.forEach(pe,function(fe){ye(ee,fe,he[J])})}else S.ensureOptimizations&&i.PRINT_ERROR(""+s.failedOptimizationPrefixMsg+("	TokenType: <"+k.name+`> is using a custom token pattern without providing  parameter.
+`)+`	This will disable the lexer's first char optimizations.
+	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),me=!1;return ee},[])}),b("ArrayPacking",function(){Te=i.packArray(Te)}),{emptyGroups:U,patternIdxToConfig:he,charCodeToPatternIdxToConfig:Te,hasCustom:q,canBeOptimized:me}}r.analyzeTokenTypes=u;function h(T,S){var b=[],V=p(T);b=b.concat(V.errors);var q=g(V.valid),Y=q.valid;return b=b.concat(q.errors),b=b.concat(f(Y)),b=b.concat(I(Y)),b=b.concat(C(Y,S)),b=b.concat(P(Y)),b}r.validatePatterns=h;function f(T){var S=[],b=i.filter(T,function(V){return i.isRegExp(V[a])});return S=S.concat(d(b)),S=S.concat(y(b)),S=S.concat(x(b)),S=S.concat(w(b)),S=S.concat(m(b)),S}function p(T){var S=i.filter(T,function(q){return!i.has(q,a)}),b=i.map(S,function(q){return{message:"Token Type: ->"+q.name+"<- missing static 'PATTERN' property",type:n.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[q]}}),V=i.difference(T,S);return{errors:b,valid:V}}r.findMissingPatterns=p;function g(T){var S=i.filter(T,function(q){var Y=q[a];return!i.isRegExp(Y)&&!i.isFunction(Y)&&!i.has(Y,"exec")&&!i.isString(Y)}),b=i.map(S,function(q){return{message:"Token Type: ->"+q.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:n.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[q]}}),V=i.difference(T,S);return{errors:b,valid:V}}r.findInvalidPatterns=g;var v=/[^\\][\$]/;function d(T){var S=function(q){e(Y,q);function Y(){var z=q!==null&&q.apply(this,arguments)||this;return z.found=!1,z}return Y.prototype.visitEndAnchor=function(z){this.found=!0},Y}(t.BaseRegExpVisitor),b=i.filter(T,function(q){var Y=q[a];try{var z=o.getRegExpAst(Y),X=new S;return X.visit(z),X.found}catch{return v.test(Y.source)}}),V=i.map(b,function(q){return{message:`Unexpected RegExp Anchor Error:
+	Token Type: ->`+q.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
+	See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS	for details.`,type:n.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[q]}});return V}r.findEndOfInputAnchor=d;function m(T){var S=i.filter(T,function(V){var q=V[a];return q.test("")}),b=i.map(S,function(V){return{message:"Token Type: ->"+V.name+"<- static 'PATTERN' must not match an empty string",type:n.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[V]}});return b}r.findEmptyMatchRegExps=m;var _=/[^\\[][\^]|^\^/;function y(T){var S=function(q){e(Y,q);function Y(){var z=q!==null&&q.apply(this,arguments)||this;return z.found=!1,z}return Y.prototype.visitStartAnchor=function(z){this.found=!0},Y}(t.BaseRegExpVisitor),b=i.filter(T,function(q){var Y=q[a];try{var z=o.getRegExpAst(Y),X=new S;return X.visit(z),X.found}catch{return _.test(Y.source)}}),V=i.map(b,function(q){return{message:`Unexpected RegExp Anchor Error:
+	Token Type: ->`+q.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
+	See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS	for details.`,type:n.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[q]}});return V}r.findStartOfInputAnchor=y;function x(T){var S=i.filter(T,function(V){var q=V[a];return q instanceof RegExp&&(q.multiline||q.global)}),b=i.map(S,function(V){return{message:"Token Type: ->"+V.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:n.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[V]}});return b}r.findUnsupportedFlags=x;function w(T){var S=[],b=i.map(T,function(Y){return i.reduce(T,function(z,X){return Y.PATTERN.source===X.PATTERN.source&&!i.contains(S,X)&&X.PATTERN!==n.Lexer.NA&&(S.push(X),z.push(X)),z},[])});b=i.compact(b);var V=i.filter(b,function(Y){return Y.length>1}),q=i.map(V,function(Y){var z=i.map(Y,function(se){return se.name}),X=i.first(Y).PATTERN;return{message:"The same RegExp pattern ->"+X+"<-"+("has been used in all of the following Token Types: "+z.join(", ")+" <-"),type:n.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:Y}});return q}r.findDuplicatePatterns=w;function I(T){var S=i.filter(T,function(V){if(!i.has(V,"GROUP"))return!1;var q=V.GROUP;return q!==n.Lexer.SKIPPED&&q!==n.Lexer.NA&&!i.isString(q)}),b=i.map(S,function(V){return{message:"Token Type: ->"+V.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:n.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[V]}});return b}r.findInvalidGroupType=I;function C(T,S){var b=i.filter(T,function(q){return q.PUSH_MODE!==void 0&&!i.contains(S,q.PUSH_MODE)}),V=i.map(b,function(q){var Y="Token Type: ->"+q.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+q.PUSH_MODE+"<-which does not exist";return{message:Y,type:n.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[q]}});return V}r.findModesThatDoNotExist=C;function P(T){var S=[],b=i.reduce(T,function(V,q,Y){var z=q.PATTERN;return z===n.Lexer.NA||(i.isString(z)?V.push({str:z,idx:Y,tokenType:q}):i.isRegExp(z)&&M(z)&&V.push({str:z.source,idx:Y,tokenType:q})),V},[]);return i.forEach(T,function(V,q){i.forEach(b,function(Y){var z=Y.str,X=Y.idx,se=Y.tokenType;if(q"+V.name+"<-")+`in the lexer's definition.
+See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;S.push({message:re,type:n.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[V,se]})}})}),S}r.findUnreachablePatterns=P;function E(T,S){if(i.isRegExp(S)){var b=S.exec(T);return b!==null&&b.index===0}else{if(i.isFunction(S))return S(T,0,[],{});if(i.has(S,"exec"))return S.exec(T,0,[],{});if(typeof S=="string")return S===T;throw Error("non exhaustive match")}}function M(T){var S=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return i.find(S,function(b){return T.source.indexOf(b)!==-1})===void 0}function L(T){var S=T.ignoreCase?"i":"";return new RegExp("^(?:"+T.source+")",S)}r.addStartOfInput=L;function N(T){var S=T.ignoreCase?"iy":"y";return new RegExp(""+T.source,S)}r.addStickyFlag=N;function O(T,S,b){var V=[];return i.has(T,r.DEFAULT_MODE)||V.push({message:"A MultiMode Lexer cannot be initialized without a <"+r.DEFAULT_MODE+`> property in its definition
+`,type:n.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),i.has(T,r.MODES)||V.push({message:"A MultiMode Lexer cannot be initialized without a <"+r.MODES+`> property in its definition
+`,type:n.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),i.has(T,r.MODES)&&i.has(T,r.DEFAULT_MODE)&&!i.has(T.modes,T.defaultMode)&&V.push({message:"A MultiMode Lexer cannot be initialized with a "+r.DEFAULT_MODE+": <"+T.defaultMode+`>which does not exist
+`,type:n.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),i.has(T,r.MODES)&&i.forEach(T.modes,function(q,Y){i.forEach(q,function(z,X){i.isUndefined(z)&&V.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+Y+"> at index: <"+X+`>
+`),type:n.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),V}r.performRuntimeChecks=O;function B(T,S,b){var V=[],q=!1,Y=i.compact(i.flatten(i.mapValues(T.modes,function(se){return se}))),z=i.reject(Y,function(se){return se[a]===n.Lexer.NA}),X=de(b);return S&&i.forEach(z,function(se){var re=W(se,X);if(re!==!1){var le=ae(se,re),xe={message:le,type:re.issue,tokenType:se};V.push(xe)}else i.has(se,"LINE_BREAKS")?se.LINE_BREAKS===!0&&(q=!0):s.canMatchCharCode(X,se.PATTERN)&&(q=!0)}),S&&!q&&V.push({message:`Warning: No LINE_BREAKS Found.
+	This Lexer has been defined to track line and column information,
+	But none of the Token Types can be identified as matching a line terminator.
+	See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
+	for details.`,type:n.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),V}r.performWarningRuntimeChecks=B;function ie(T){var S={},b=i.keys(T);return i.forEach(b,function(V){var q=T[V];if(i.isArray(q))S[V]=[];else throw Error("non exhaustive match")}),S}r.cloneEmptyGroups=ie;function $(T){var S=T.PATTERN;if(i.isRegExp(S))return!1;if(i.isFunction(S)||i.has(S,"exec"))return!0;if(i.isString(S))return!1;throw Error("non exhaustive match")}r.isCustomPattern=$;function te(T){return i.isString(T)&&T.length===1?T.charCodeAt(0):!1}r.isShortPattern=te,r.LineTerminatorOptimizedTester={test:function(T){for(var S=T.length,b=this.lastIndex;b Token Type
+`)+("	 Root cause: "+S.errMsg+`.
+`)+"	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(S.issue===n.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the  option.
+`+("	The problem is in the <"+T.name+`> Token Type
+`)+"	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}r.buildLineBreakIssueMessage=ae;function de(T){var S=i.map(T,function(b){return i.isString(b)&&b.length>0?b.charCodeAt(0):b});return S}function ye(T,S,b){T[S]===void 0?T[S]=[b]:T[S].push(b)}r.minOptimizationVal=256;var Me=[];function ve(T){return T255?255+~~(T/255):T}}}),nc=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.isTokenType=r.hasExtendingTokensTypesMapProperty=r.hasExtendingTokensTypesProperty=r.hasCategoriesProperty=r.hasShortKeyProperty=r.singleAssignCategoriesToksMap=r.assignCategoriesMapProp=r.assignCategoriesTokensProp=r.assignTokenDefaultProps=r.expandCategories=r.augmentTokenTypes=r.tokenIdxToClass=r.tokenShortNameIdx=r.tokenStructuredMatcherNoCategories=r.tokenStructuredMatcher=void 0;var e=Ut();function t(v,d){var m=v.tokenTypeIdx;return m===d.tokenTypeIdx?!0:d.isParent===!0&&d.categoryMatchesMap[m]===!0}r.tokenStructuredMatcher=t;function n(v,d){return v.tokenTypeIdx===d.tokenTypeIdx}r.tokenStructuredMatcherNoCategories=n,r.tokenShortNameIdx=1,r.tokenIdxToClass={};function i(v){var d=s(v);o(d),l(d),a(d),e.forEach(d,function(m){m.isParent=m.categoryMatches.length>0})}r.augmentTokenTypes=i;function s(v){for(var d=e.cloneArr(v),m=v,_=!0;_;){m=e.compact(e.flatten(e.map(m,function(x){return x.CATEGORIES})));var y=e.difference(m,d);d=d.concat(y),e.isEmpty(y)?_=!1:m=y}return d}r.expandCategories=s;function o(v){e.forEach(v,function(d){u(d)||(r.tokenIdxToClass[r.tokenShortNameIdx]=d,d.tokenTypeIdx=r.tokenShortNameIdx++),h(d)&&!e.isArray(d.CATEGORIES)&&(d.CATEGORIES=[d.CATEGORIES]),h(d)||(d.CATEGORIES=[]),f(d)||(d.categoryMatches=[]),p(d)||(d.categoryMatchesMap={})})}r.assignTokenDefaultProps=o;function a(v){e.forEach(v,function(d){d.categoryMatches=[],e.forEach(d.categoryMatchesMap,function(m,_){d.categoryMatches.push(r.tokenIdxToClass[_].tokenTypeIdx)})})}r.assignCategoriesTokensProp=a;function l(v){e.forEach(v,function(d){c([],d)})}r.assignCategoriesMapProp=l;function c(v,d){e.forEach(v,function(m){d.categoryMatchesMap[m.tokenTypeIdx]=!0}),e.forEach(d.CATEGORIES,function(m){var _=v.concat(d);e.contains(_,m)||c(_,m)})}r.singleAssignCategoriesToksMap=c;function u(v){return e.has(v,"tokenTypeIdx")}r.hasShortKeyProperty=u;function h(v){return e.has(v,"CATEGORIES")}r.hasCategoriesProperty=h;function f(v){return e.has(v,"categoryMatches")}r.hasExtendingTokensTypesProperty=f;function p(v){return e.has(v,"categoryMatchesMap")}r.hasExtendingTokensTypesMapProperty=p;function g(v){return e.has(v,"tokenTypeIdx")}r.isTokenType=g}),K0=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.defaultLexerErrorProvider=void 0,r.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(e){return"Unable to pop Lexer Mode after encountering Token ->"+e.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(e,t,n,i,s){return"unexpected character: ->"+e.charAt(t)+"<- at offset: "+t+","+(" skipped "+n+" characters.")}}}),Ch=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Lexer=r.LexerDefinitionErrorType=void 0;var e=Y0(),t=Ut(),n=nc(),i=K0(),s=lp(),o;(function(c){c[c.MISSING_PATTERN=0]="MISSING_PATTERN",c[c.INVALID_PATTERN=1]="INVALID_PATTERN",c[c.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",c[c.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",c[c.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",c[c.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",c[c.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",c[c.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",c[c.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",c[c.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",c[c.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",c[c.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",c[c.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",c[c.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",c[c.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",c[c.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",c[c.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(o=r.LexerDefinitionErrorType||(r.LexerDefinitionErrorType={}));var a={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
+`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:i.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(a);var l=function(){function c(u,h){var f=this;if(h===void 0&&(h=a),this.lexerDefinition=u,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof h=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
+a boolean 2nd argument is no longer supported`);this.config=t.merge(a,h);var p=this.config.traceInitPerf;p===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof p=="number"&&(this.traceInitMaxIdent=p,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var g,v=!0;f.TRACE_INIT("Lexer Config handling",function(){if(f.config.lineTerminatorsPattern===a.lineTerminatorsPattern)f.config.lineTerminatorsPattern=e.LineTerminatorOptimizedTester;else if(f.config.lineTerminatorCharacters===a.lineTerminatorCharacters)throw Error(`Error: Missing  property on the Lexer config.
+	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(h.safeMode&&h.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');f.trackStartLines=/full|onlyStart/i.test(f.config.positionTracking),f.trackEndLines=/full/i.test(f.config.positionTracking),t.isArray(u)?(g={modes:{}},g.modes[e.DEFAULT_MODE]=t.cloneArr(u),g[e.DEFAULT_MODE]=e.DEFAULT_MODE):(v=!1,g=t.cloneObj(u))}),f.config.skipValidations===!1&&(f.TRACE_INIT("performRuntimeChecks",function(){f.lexerDefinitionErrors=f.lexerDefinitionErrors.concat(e.performRuntimeChecks(g,f.trackStartLines,f.config.lineTerminatorCharacters))}),f.TRACE_INIT("performWarningRuntimeChecks",function(){f.lexerDefinitionWarning=f.lexerDefinitionWarning.concat(e.performWarningRuntimeChecks(g,f.trackStartLines,f.config.lineTerminatorCharacters))})),g.modes=g.modes?g.modes:{},t.forEach(g.modes,function(y,x){g.modes[x]=t.reject(y,function(w){return t.isUndefined(w)})});var d=t.keys(g.modes);if(t.forEach(g.modes,function(y,x){f.TRACE_INIT("Mode: <"+x+"> processing",function(){if(f.modes.push(x),f.config.skipValidations===!1&&f.TRACE_INIT("validatePatterns",function(){f.lexerDefinitionErrors=f.lexerDefinitionErrors.concat(e.validatePatterns(y,d))}),t.isEmpty(f.lexerDefinitionErrors)){n.augmentTokenTypes(y);var w;f.TRACE_INIT("analyzeTokenTypes",function(){w=e.analyzeTokenTypes(y,{lineTerminatorCharacters:f.config.lineTerminatorCharacters,positionTracking:h.positionTracking,ensureOptimizations:h.ensureOptimizations,safeMode:h.safeMode,tracer:f.TRACE_INIT.bind(f)})}),f.patternIdxToConfig[x]=w.patternIdxToConfig,f.charCodeToPatternIdxToConfig[x]=w.charCodeToPatternIdxToConfig,f.emptyGroups=t.merge(f.emptyGroups,w.emptyGroups),f.hasCustom=w.hasCustom||f.hasCustom,f.canModeBeOptimized[x]=w.canBeOptimized}})}),f.defaultMode=g.defaultMode,!t.isEmpty(f.lexerDefinitionErrors)&&!f.config.deferDefinitionErrorsHandling){var m=t.map(f.lexerDefinitionErrors,function(y){return y.message}),_=m.join(`-----------------------
+`);throw new Error(`Errors detected in definition of Lexer:
+`+_)}t.forEach(f.lexerDefinitionWarning,function(y){t.PRINT_WARNING(y.message)}),f.TRACE_INIT("Choosing sub-methods implementations",function(){if(e.SUPPORT_STICKY?(f.chopInput=t.IDENTITY,f.match=f.matchWithTest):(f.updateLastIndex=t.NOOP,f.match=f.matchWithExec),v&&(f.handleModes=t.NOOP),f.trackStartLines===!1&&(f.computeNewColumn=t.IDENTITY),f.trackEndLines===!1&&(f.updateTokenEndLineColumnLocation=t.NOOP),/full/i.test(f.config.positionTracking))f.createTokenInstance=f.createFullToken;else if(/onlyStart/i.test(f.config.positionTracking))f.createTokenInstance=f.createStartOnlyToken;else if(/onlyOffset/i.test(f.config.positionTracking))f.createTokenInstance=f.createOffsetOnlyToken;else throw Error('Invalid  config option: "'+f.config.positionTracking+'"');f.hasCustom?(f.addToken=f.addTokenUsingPush,f.handlePayload=f.handlePayloadWithCustom):(f.addToken=f.addTokenUsingMemberAccess,f.handlePayload=f.handlePayloadNoCustom)}),f.TRACE_INIT("Failed Optimization Warnings",function(){var y=t.reduce(f.canModeBeOptimized,function(x,w,I){return w===!1&&x.push(I),x},[]);if(h.ensureOptimizations&&!t.isEmpty(y))throw Error("Lexer Modes: < "+y.join(", ")+` > cannot be optimized.
+	 Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
+	 Or inspect the console log for details on how to resolve these issues.`)}),f.TRACE_INIT("clearRegExpParserCache",function(){s.clearRegExpParserCache()}),f.TRACE_INIT("toFastProperties",function(){t.toFastProperties(f)})})}return c.prototype.tokenize=function(u,h){if(h===void 0&&(h=this.defaultMode),!t.isEmpty(this.lexerDefinitionErrors)){var f=t.map(this.lexerDefinitionErrors,function(v){return v.message}),p=f.join(`-----------------------
+`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
+`+p)}var g=this.tokenizeInternal(u,h);return g},c.prototype.tokenizeInternal=function(u,h){var f=this,p,g,v,d,m,_,y,x,w,I,C,P,E,M,L,N=u,O=N.length,B=0,ie=0,$=this.hasCustom?0:Math.floor(u.length/10),te=new Array($),W=[],ae=this.trackStartLines?1:void 0,de=this.trackStartLines?1:void 0,ye=e.cloneEmptyGroups(this.emptyGroups),Me=this.trackStartLines,ve=this.config.lineTerminatorsPattern,R=0,T=[],S=[],b=[],V=[];Object.freeze(V);var q=void 0;function Y(){return T}function z(fe){var ge=e.charCodeToOptimizedIndex(fe),Ae=S[ge];return Ae===void 0?V:Ae}var X=function(fe){if(b.length===1&&fe.tokenType.PUSH_MODE===void 0){var ge=f.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fe);W.push({offset:fe.startOffset,line:fe.startLine!==void 0?fe.startLine:void 0,column:fe.startColumn!==void 0?fe.startColumn:void 0,length:fe.image.length,message:ge})}else{b.pop();var Ae=t.last(b);T=f.patternIdxToConfig[Ae],S=f.charCodeToPatternIdxToConfig[Ae],R=T.length;var Ie=f.canModeBeOptimized[Ae]&&f.config.safeMode===!1;S&&Ie?q=z:q=Y}};function se(fe){b.push(fe),S=this.charCodeToPatternIdxToConfig[fe],T=this.patternIdxToConfig[fe],R=T.length,R=T.length;var ge=this.canModeBeOptimized[fe]&&this.config.safeMode===!1;S&&ge?q=z:q=Y}se.call(this,h);for(var re;Bm.length&&(m=v,_=y,re=he)}break}}if(m!==null){if(x=m.length,w=re.group,w!==void 0&&(I=re.tokenTypeIdx,C=this.createTokenInstance(m,B,I,re.tokenType,ae,de,x),this.handlePayload(C,_),w===!1?ie=this.addToken(te,ie,C):ye[w].push(C)),u=this.chopInput(u,x),B=B+x,de=this.computeNewColumn(de,x),Me===!0&&re.canLineTerminator===!0){var Te=0,ee=void 0,k=void 0;ve.lastIndex=0;do ee=ve.test(m),ee===!0&&(k=ve.lastIndex-1,Te++);while(ee===!0);Te!==0&&(ae=ae+Te,de=x-k,this.updateTokenEndLineColumnLocation(C,w,k,Te,ae,de,x))}this.handleModes(re,X,se,C)}else{for(var J=B,ue=ae,Z=de,ce=!1;!ce&&B <"+u+">");var p=t.timer(h),g=p.time,v=p.value,d=g>10?console.warn:console.log;return this.traceInitIndent time: "+g+"ms"),this.traceInitIndent--,v}else return h()},c.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",c.NA=/NOT_APPLICABLE/,c}();r.Lexer=l}),io=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.tokenMatcher=r.createTokenInstance=r.EOF=r.createToken=r.hasTokenLabel=r.tokenName=r.tokenLabel=void 0;var e=Ut(),t=Ch(),n=nc();function i(x){return o(x)?x.LABEL:x.name}r.tokenLabel=i;function s(x){return x.name}r.tokenName=s;function o(x){return e.isString(x.LABEL)&&x.LABEL!==""}r.hasTokenLabel=o;var a="parent",l="categories",c="label",u="group",h="push_mode",f="pop_mode",p="longer_alt",g="line_breaks",v="start_chars_hint";function d(x){return m(x)}r.createToken=d;function m(x){var w=x.pattern,I={};if(I.name=x.name,e.isUndefined(w)||(I.PATTERN=w),e.has(x,a))throw`The parent property is no longer supported.
+See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return e.has(x,l)&&(I.CATEGORIES=x[l]),n.augmentTokenTypes([I]),e.has(x,c)&&(I.LABEL=x[c]),e.has(x,u)&&(I.GROUP=x[u]),e.has(x,f)&&(I.POP_MODE=x[f]),e.has(x,h)&&(I.PUSH_MODE=x[h]),e.has(x,p)&&(I.LONGER_ALT=x[p]),e.has(x,g)&&(I.LINE_BREAKS=x[g]),e.has(x,v)&&(I.START_CHARS_HINT=x[v]),I}r.EOF=d({name:"EOF",pattern:t.Lexer.NA}),n.augmentTokenTypes([r.EOF]);function _(x,w,I,C,P,E,M,L){return{image:w,startOffset:I,endOffset:C,startLine:P,endLine:E,startColumn:M,endColumn:L,tokenTypeIdx:x.tokenTypeIdx,tokenType:x}}r.createTokenInstance=_;function y(x,w){return n.tokenStructuredMatcher(x,w)}r.tokenMatcher=y}),xi=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var m=function(_,y){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(x,w){x.__proto__=w}||function(x,w){for(var I in w)Object.prototype.hasOwnProperty.call(w,I)&&(x[I]=w[I])},m(_,y)};return function(_,y){if(typeof y!="function"&&y!==null)throw new TypeError("Class extends value "+String(y)+" is not a constructor or null");m(_,y);function x(){this.constructor=_}_.prototype=y===null?Object.create(y):(x.prototype=y.prototype,new x)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.serializeProduction=r.serializeGrammar=r.Terminal=r.Alternation=r.RepetitionWithSeparator=r.Repetition=r.RepetitionMandatoryWithSeparator=r.RepetitionMandatory=r.Option=r.Alternative=r.Rule=r.NonTerminal=r.AbstractProduction=void 0;var t=Ut(),n=io(),i=function(){function m(_){this._definition=_}return Object.defineProperty(m.prototype,"definition",{get:function(){return this._definition},set:function(_){this._definition=_},enumerable:!1,configurable:!0}),m.prototype.accept=function(_){_.visit(this),t.forEach(this.definition,function(y){y.accept(_)})},m}();r.AbstractProduction=i;var s=function(m){e(_,m);function _(y){var x=m.call(this,[])||this;return x.idx=1,t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return Object.defineProperty(_.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(y){},enumerable:!1,configurable:!0}),_.prototype.accept=function(y){y.visit(this)},_}(i);r.NonTerminal=s;var o=function(m){e(_,m);function _(y){var x=m.call(this,y.definition)||this;return x.orgText="",t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return _}(i);r.Rule=o;var a=function(m){e(_,m);function _(y){var x=m.call(this,y.definition)||this;return x.ignoreAmbiguities=!1,t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return _}(i);r.Alternative=a;var l=function(m){e(_,m);function _(y){var x=m.call(this,y.definition)||this;return x.idx=1,t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return _}(i);r.Option=l;var c=function(m){e(_,m);function _(y){var x=m.call(this,y.definition)||this;return x.idx=1,t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return _}(i);r.RepetitionMandatory=c;var u=function(m){e(_,m);function _(y){var x=m.call(this,y.definition)||this;return x.idx=1,t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return _}(i);r.RepetitionMandatoryWithSeparator=u;var h=function(m){e(_,m);function _(y){var x=m.call(this,y.definition)||this;return x.idx=1,t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return _}(i);r.Repetition=h;var f=function(m){e(_,m);function _(y){var x=m.call(this,y.definition)||this;return x.idx=1,t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return _}(i);r.RepetitionWithSeparator=f;var p=function(m){e(_,m);function _(y){var x=m.call(this,y.definition)||this;return x.idx=1,x.ignoreAmbiguities=!1,x.hasPredicates=!1,t.assign(x,t.pick(y,function(w){return w!==void 0})),x}return Object.defineProperty(_.prototype,"definition",{get:function(){return this._definition},set:function(y){this._definition=y},enumerable:!1,configurable:!0}),_}(i);r.Alternation=p;var g=function(){function m(_){this.idx=1,t.assign(this,t.pick(_,function(y){return y!==void 0}))}return m.prototype.accept=function(_){_.visit(this)},m}();r.Terminal=g;function v(m){return t.map(m,d)}r.serializeGrammar=v;function d(m){function _(w){return t.map(w,d)}if(m instanceof s)return{type:"NonTerminal",name:m.nonTerminalName,idx:m.idx};if(m instanceof a)return{type:"Alternative",definition:_(m.definition)};if(m instanceof l)return{type:"Option",idx:m.idx,definition:_(m.definition)};if(m instanceof c)return{type:"RepetitionMandatory",idx:m.idx,definition:_(m.definition)};if(m instanceof u)return{type:"RepetitionMandatoryWithSeparator",idx:m.idx,separator:d(new g({terminalType:m.separator})),definition:_(m.definition)};if(m instanceof f)return{type:"RepetitionWithSeparator",idx:m.idx,separator:d(new g({terminalType:m.separator})),definition:_(m.definition)};if(m instanceof h)return{type:"Repetition",idx:m.idx,definition:_(m.definition)};if(m instanceof p)return{type:"Alternation",idx:m.idx,definition:_(m.definition)};if(m instanceof g){var y={type:"Terminal",name:m.terminalType.name,label:n.tokenLabel(m.terminalType),idx:m.idx},x=m.terminalType.PATTERN;return m.terminalType.PATTERN&&(y.pattern=t.isRegExp(x)?x.source:x),y}else{if(m instanceof o)return{type:"Rule",name:m.name,orgText:m.orgText,definition:_(m.definition)};throw Error("non exhaustive match")}}r.serializeProduction=d}),cp=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.RestWalker=void 0;var e=Ut(),t=xi(),n=function(){function s(){}return s.prototype.walk=function(o,a){var l=this;a===void 0&&(a=[]),e.forEach(o.definition,function(c,u){var h=e.drop(o.definition,u+1);if(c instanceof t.NonTerminal)l.walkProdRef(c,h,a);else if(c instanceof t.Terminal)l.walkTerminal(c,h,a);else if(c instanceof t.Alternative)l.walkFlat(c,h,a);else if(c instanceof t.Option)l.walkOption(c,h,a);else if(c instanceof t.RepetitionMandatory)l.walkAtLeastOne(c,h,a);else if(c instanceof t.RepetitionMandatoryWithSeparator)l.walkAtLeastOneSep(c,h,a);else if(c instanceof t.RepetitionWithSeparator)l.walkManySep(c,h,a);else if(c instanceof t.Repetition)l.walkMany(c,h,a);else if(c instanceof t.Alternation)l.walkOr(c,h,a);else throw Error("non exhaustive match")})},s.prototype.walkTerminal=function(o,a,l){},s.prototype.walkProdRef=function(o,a,l){},s.prototype.walkFlat=function(o,a,l){var c=a.concat(l);this.walk(o,c)},s.prototype.walkOption=function(o,a,l){var c=a.concat(l);this.walk(o,c)},s.prototype.walkAtLeastOne=function(o,a,l){var c=[new t.Option({definition:o.definition})].concat(a,l);this.walk(o,c)},s.prototype.walkAtLeastOneSep=function(o,a,l){var c=i(o,a,l);this.walk(o,c)},s.prototype.walkMany=function(o,a,l){var c=[new t.Option({definition:o.definition})].concat(a,l);this.walk(o,c)},s.prototype.walkManySep=function(o,a,l){var c=i(o,a,l);this.walk(o,c)},s.prototype.walkOr=function(o,a,l){var c=this,u=a.concat(l);e.forEach(o.definition,function(h){var f=new t.Alternative({definition:[h]});c.walk(f,u)})},s}();r.RestWalker=n;function i(s,o,a){var l=[new t.Option({definition:[new t.Terminal({terminalType:s.separator})].concat(s.definition)})],c=l.concat(o,a);return c}}),ic=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.GAstVisitor=void 0;var e=xi(),t=function(){function n(){}return n.prototype.visit=function(i){var s=i;switch(s.constructor){case e.NonTerminal:return this.visitNonTerminal(s);case e.Alternative:return this.visitAlternative(s);case e.Option:return this.visitOption(s);case e.RepetitionMandatory:return this.visitRepetitionMandatory(s);case e.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(s);case e.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(s);case e.Repetition:return this.visitRepetition(s);case e.Alternation:return this.visitAlternation(s);case e.Terminal:return this.visitTerminal(s);case e.Rule:return this.visitRule(s);default:throw Error("non exhaustive match")}},n.prototype.visitNonTerminal=function(i){},n.prototype.visitAlternative=function(i){},n.prototype.visitOption=function(i){},n.prototype.visitRepetition=function(i){},n.prototype.visitRepetitionMandatory=function(i){},n.prototype.visitRepetitionMandatoryWithSeparator=function(i){},n.prototype.visitRepetitionWithSeparator=function(i){},n.prototype.visitAlternation=function(i){},n.prototype.visitTerminal=function(i){},n.prototype.visitRule=function(i){},n}();r.GAstVisitor=t}),Rh=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var f=function(p,g){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(v,d){v.__proto__=d}||function(v,d){for(var m in d)Object.prototype.hasOwnProperty.call(d,m)&&(v[m]=d[m])},f(p,g)};return function(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");f(p,g);function v(){this.constructor=p}p.prototype=g===null?Object.create(g):(v.prototype=g.prototype,new v)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.collectMethods=r.DslMethodsCollectorVisitor=r.getProductionDslName=r.isBranchingProd=r.isOptionalProd=r.isSequenceProd=void 0;var t=Ut(),n=xi(),i=ic();function s(f){return f instanceof n.Alternative||f instanceof n.Option||f instanceof n.Repetition||f instanceof n.RepetitionMandatory||f instanceof n.RepetitionMandatoryWithSeparator||f instanceof n.RepetitionWithSeparator||f instanceof n.Terminal||f instanceof n.Rule}r.isSequenceProd=s;function o(f,p){p===void 0&&(p=[]);var g=f instanceof n.Option||f instanceof n.Repetition||f instanceof n.RepetitionWithSeparator;return g?!0:f instanceof n.Alternation?t.some(f.definition,function(v){return o(v,p)}):f instanceof n.NonTerminal&&t.contains(p,f)?!1:f instanceof n.AbstractProduction?(f instanceof n.NonTerminal&&p.push(f),t.every(f.definition,function(v){return o(v,p)})):!1}r.isOptionalProd=o;function a(f){return f instanceof n.Alternation}r.isBranchingProd=a;function l(f){if(f instanceof n.NonTerminal)return"SUBRULE";if(f instanceof n.Option)return"OPTION";if(f instanceof n.Alternation)return"OR";if(f instanceof n.RepetitionMandatory)return"AT_LEAST_ONE";if(f instanceof n.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(f instanceof n.RepetitionWithSeparator)return"MANY_SEP";if(f instanceof n.Repetition)return"MANY";if(f instanceof n.Terminal)return"CONSUME";throw Error("non exhaustive match")}r.getProductionDslName=l;var c=function(f){e(p,f);function p(){var g=f!==null&&f.apply(this,arguments)||this;return g.separator="-",g.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},g}return p.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},p.prototype.visitTerminal=function(g){var v=g.terminalType.name+this.separator+"Terminal";t.has(this.dslMethods,v)||(this.dslMethods[v]=[]),this.dslMethods[v].push(g)},p.prototype.visitNonTerminal=function(g){var v=g.nonTerminalName+this.separator+"Terminal";t.has(this.dslMethods,v)||(this.dslMethods[v]=[]),this.dslMethods[v].push(g)},p.prototype.visitOption=function(g){this.dslMethods.option.push(g)},p.prototype.visitRepetitionWithSeparator=function(g){this.dslMethods.repetitionWithSeparator.push(g)},p.prototype.visitRepetitionMandatory=function(g){this.dslMethods.repetitionMandatory.push(g)},p.prototype.visitRepetitionMandatoryWithSeparator=function(g){this.dslMethods.repetitionMandatoryWithSeparator.push(g)},p.prototype.visitRepetition=function(g){this.dslMethods.repetition.push(g)},p.prototype.visitAlternation=function(g){this.dslMethods.alternation.push(g)},p}(i.GAstVisitor);r.DslMethodsCollectorVisitor=c;var u=new c;function h(f){u.reset(),f.accept(u);var p=u.dslMethods;return u.reset(),p}r.collectMethods=h}),Z0=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.firstForTerminal=r.firstForBranching=r.firstForSequence=r.first=void 0;var e=Ut(),t=xi(),n=Rh();function i(l){if(l instanceof t.NonTerminal)return i(l.referencedRule);if(l instanceof t.Terminal)return a(l);if(n.isSequenceProd(l))return s(l);if(n.isBranchingProd(l))return o(l);throw Error("non exhaustive match")}r.first=i;function s(l){for(var c=[],u=l.definition,h=0,f=u.length>h,p,g=!0;f&&g;)p=u[h],g=n.isOptionalProd(p),c=c.concat(i(p)),h=h+1,f=u.length>h;return e.uniq(c)}r.firstForSequence=s;function o(l){var c=e.map(l.definition,function(u){return i(u)});return e.uniq(e.flatten(c))}r.firstForBranching=o;function a(l){return[l.terminalType]}r.firstForTerminal=a}),J0=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.IN=void 0,r.IN="_~IN~_"}),xS=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var h=function(f,p){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(g,v){g.__proto__=v}||function(g,v){for(var d in v)Object.prototype.hasOwnProperty.call(v,d)&&(g[d]=v[d])},h(f,p)};return function(f,p){if(typeof p!="function"&&p!==null)throw new TypeError("Class extends value "+String(p)+" is not a constructor or null");h(f,p);function g(){this.constructor=f}f.prototype=p===null?Object.create(p):(g.prototype=p.prototype,new g)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.buildInProdFollowPrefix=r.buildBetweenProdsFollowPrefix=r.computeAllProdsFollows=r.ResyncFollowsWalker=void 0;var t=cp(),n=Z0(),i=Ut(),s=J0(),o=xi(),a=function(h){e(f,h);function f(p){var g=h.call(this)||this;return g.topProd=p,g.follows={},g}return f.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},f.prototype.walkTerminal=function(p,g,v){},f.prototype.walkProdRef=function(p,g,v){var d=c(p.referencedRule,p.idx)+this.topProd.name,m=g.concat(v),_=new o.Alternative({definition:m}),y=n.first(_);this.follows[d]=y},f}(t.RestWalker);r.ResyncFollowsWalker=a;function l(h){var f={};return i.forEach(h,function(p){var g=new a(p).startWalking();i.assign(f,g)}),f}r.computeAllProdsFollows=l;function c(h,f){return h.name+f+s.IN}r.buildBetweenProdsFollowPrefix=c;function u(h){var f=h.terminalType.name;return f+h.idx+s.IN}r.buildInProdFollowPrefix=u}),Ih=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.defaultGrammarValidatorErrorProvider=r.defaultGrammarResolverErrorProvider=r.defaultParserErrorProvider=void 0;var e=io(),t=Ut(),n=Ut(),i=xi(),s=Rh();r.defaultParserErrorProvider={buildMismatchTokenMessage:function(o){var a=o.expected,l=o.actual,c=o.previous,u=o.ruleName,h=e.hasTokenLabel(a),f=h?"--> "+e.tokenLabel(a)+" <--":"token of type --> "+a.name+" <--",p="Expecting "+f+" but found --> '"+l.image+"' <--";return p},buildNotAllInputParsedMessage:function(o){var a=o.firstRedundant,l=o.ruleName;return"Redundant input, expecting EOF but found: "+a.image},buildNoViableAltMessage:function(o){var a=o.expectedPathsPerAlt,l=o.actual,c=o.previous,u=o.customUserDescription,h=o.ruleName,f="Expecting: ",p=n.first(l).image,g=`
+but found: '`+p+"'";if(u)return f+u+g;var v=n.reduce(a,function(y,x){return y.concat(x)},[]),d=n.map(v,function(y){return"["+n.map(y,function(x){return e.tokenLabel(x)}).join(", ")+"]"}),m=n.map(d,function(y,x){return"  "+(x+1)+". "+y}),_=`one of these possible Token sequences:
+`+m.join(`
+`);return f+_+g},buildEarlyExitMessage:function(o){var a=o.expectedIterationPaths,l=o.actual,c=o.customUserDescription,u=o.ruleName,h="Expecting: ",f=n.first(l).image,p=`
+but found: '`+f+"'";if(c)return h+c+p;var g=n.map(a,function(d){return"["+n.map(d,function(m){return e.tokenLabel(m)}).join(",")+"]"}),v=`expecting at least one iteration which starts with one of these possible Token sequences::
+  `+("<"+g.join(" ,")+">");return h+v+p}},Object.freeze(r.defaultParserErrorProvider),r.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(o,a){var l="Invalid grammar, reference to a rule which is not defined: ->"+a.nonTerminalName+`<-
+inside top level rule: ->`+o.name+"<-";return l}},r.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(o,a){function l(d){return d instanceof i.Terminal?d.terminalType.name:d instanceof i.NonTerminal?d.nonTerminalName:""}var c=o.name,u=n.first(a),h=u.idx,f=s.getProductionDslName(u),p=l(u),g=h>0,v="->"+f+(g?h:"")+"<- "+(p?"with argument: ->"+p+"<-":"")+`
+                  appears more than once (`+a.length+" times) in the top level rule: ->"+c+`<-.
+                  For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
+                  `;return v=v.replace(/[ \t]+/g," "),v=v.replace(/\s\s+/g,`
+`),v},buildNamespaceConflictError:function(o){var a=`Namespace conflict found in grammar.
+`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+o.name+`>.
+`)+`To resolve this make sure each Terminal and Non-Terminal names are unique
+This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
+and Non-Terminal names start with a lower case letter.`;return a},buildAlternationPrefixAmbiguityError:function(o){var a=n.map(o.prefixPath,function(u){return e.tokenLabel(u)}).join(", "),l=o.alternation.idx===0?"":o.alternation.idx,c="Ambiguous alternatives: <"+o.ambiguityIndices.join(" ,")+`> due to common lookahead prefix
+`+("in  inside <"+o.topLevelRule.name+`> Rule,
+`)+("<"+a+`> may appears as a prefix path in all these alternatives.
+`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
+For Further details.`;return c},buildAlternationAmbiguityError:function(o){var a=n.map(o.prefixPath,function(u){return e.tokenLabel(u)}).join(", "),l=o.alternation.idx===0?"":o.alternation.idx,c="Ambiguous Alternatives Detected: <"+o.ambiguityIndices.join(" ,")+"> in "+(" inside <"+o.topLevelRule.name+`> Rule,
+`)+("<"+a+`> may appears as a prefix path in all these alternatives.
+`);return c=c+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
+For Further details.`,c},buildEmptyRepetitionError:function(o){var a=s.getProductionDslName(o.repetition);o.repetition.idx!==0&&(a+=o.repetition.idx);var l="The repetition <"+a+"> within Rule <"+o.topLevelRule.name+`> can never consume any tokens.
+This could lead to an infinite loop.`;return l},buildTokenNameError:function(o){return"deprecated"},buildEmptyAlternationError:function(o){var a="Ambiguous empty alternative: <"+(o.emptyChoiceIdx+1)+">"+(" in  inside <"+o.topLevelRule.name+`> Rule.
+`)+"Only the last alternative may be an empty alternative.";return a},buildTooManyAlternativesError:function(o){var a=`An Alternation cannot have more than 256 alternatives:
+`+(" inside <"+o.topLevelRule.name+`> Rule.
+ has `+(o.alternation.definition.length+1)+" alternatives.");return a},buildLeftRecursionError:function(o){var a=o.topLevelRule.name,l=t.map(o.leftRecursionPath,function(h){return h.name}),c=a+" --> "+l.concat([a]).join(" --> "),u=`Left Recursion found in grammar.
+`+("rule: <"+a+`> can be invoked from itself (directly or indirectly)
+`)+(`without consuming any Tokens. The grammar path that causes this is:
+ `+c+`
+`)+` To fix this refactor your grammar to remove the left recursion.
+see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return u},buildInvalidRuleNameError:function(o){return"deprecated"},buildDuplicateRuleNameError:function(o){var a;o.topLevelRule instanceof i.Rule?a=o.topLevelRule.name:a=o.topLevelRule;var l="Duplicate definition, rule: ->"+a+"<- is already defined in the grammar: ->"+o.grammarName+"<-";return l}}}),_S=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var a=function(l,c){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,h){u.__proto__=h}||function(u,h){for(var f in h)Object.prototype.hasOwnProperty.call(h,f)&&(u[f]=h[f])},a(l,c)};return function(l,c){if(typeof c!="function"&&c!==null)throw new TypeError("Class extends value "+String(c)+" is not a constructor or null");a(l,c);function u(){this.constructor=l}l.prototype=c===null?Object.create(c):(u.prototype=c.prototype,new u)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.GastRefResolverVisitor=r.resolveGrammar=void 0;var t=Ni(),n=Ut(),i=ic();function s(a,l){var c=new o(a,l);return c.resolveRefs(),c.errors}r.resolveGrammar=s;var o=function(a){e(l,a);function l(c,u){var h=a.call(this)||this;return h.nameToTopRule=c,h.errMsgProvider=u,h.errors=[],h}return l.prototype.resolveRefs=function(){var c=this;n.forEach(n.values(this.nameToTopRule),function(u){c.currTopLevel=u,u.accept(c)})},l.prototype.visitNonTerminal=function(c){var u=this.nameToTopRule[c.nonTerminalName];if(u)c.referencedRule=u;else{var h=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,c);this.errors.push({message:h,type:t.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:c.nonTerminalName})}},l}(i.GAstVisitor);r.GastRefResolverVisitor=o}),Ph=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var d=function(m,_){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,x){y.__proto__=x}||function(y,x){for(var w in x)Object.prototype.hasOwnProperty.call(x,w)&&(y[w]=x[w])},d(m,_)};return function(m,_){if(typeof _!="function"&&_!==null)throw new TypeError("Class extends value "+String(_)+" is not a constructor or null");d(m,_);function y(){this.constructor=m}m.prototype=_===null?Object.create(_):(y.prototype=_.prototype,new y)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.nextPossibleTokensAfter=r.possiblePathsFrom=r.NextTerminalAfterAtLeastOneSepWalker=r.NextTerminalAfterAtLeastOneWalker=r.NextTerminalAfterManySepWalker=r.NextTerminalAfterManyWalker=r.AbstractNextTerminalAfterProductionWalker=r.NextAfterTokenWalker=r.AbstractNextPossibleTokensWalker=void 0;var t=cp(),n=Ut(),i=Z0(),s=xi(),o=function(d){e(m,d);function m(_,y){var x=d.call(this)||this;return x.topProd=_,x.path=y,x.possibleTokTypes=[],x.nextProductionName="",x.nextProductionOccurrence=0,x.found=!1,x.isAtEndOfPath=!1,x}return m.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=n.cloneArr(this.path.ruleStack).reverse(),this.occurrenceStack=n.cloneArr(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},m.prototype.walk=function(_,y){y===void 0&&(y=[]),this.found||d.prototype.walk.call(this,_,y)},m.prototype.walkProdRef=function(_,y,x){if(_.referencedRule.name===this.nextProductionName&&_.idx===this.nextProductionOccurrence){var w=y.concat(x);this.updateExpectedNext(),this.walk(_.referencedRule,w)}},m.prototype.updateExpectedNext=function(){n.isEmpty(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},m}(t.RestWalker);r.AbstractNextPossibleTokensWalker=o;var a=function(d){e(m,d);function m(_,y){var x=d.call(this,_,y)||this;return x.path=y,x.nextTerminalName="",x.nextTerminalOccurrence=0,x.nextTerminalName=x.path.lastTok.name,x.nextTerminalOccurrence=x.path.lastTokOccurrence,x}return m.prototype.walkTerminal=function(_,y,x){if(this.isAtEndOfPath&&_.terminalType.name===this.nextTerminalName&&_.idx===this.nextTerminalOccurrence&&!this.found){var w=y.concat(x),I=new s.Alternative({definition:w});this.possibleTokTypes=i.first(I),this.found=!0}},m}(o);r.NextAfterTokenWalker=a;var l=function(d){e(m,d);function m(_,y){var x=d.call(this)||this;return x.topRule=_,x.occurrence=y,x.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},x}return m.prototype.startWalking=function(){return this.walk(this.topRule),this.result},m}(t.RestWalker);r.AbstractNextTerminalAfterProductionWalker=l;var c=function(d){e(m,d);function m(){return d!==null&&d.apply(this,arguments)||this}return m.prototype.walkMany=function(_,y,x){if(_.idx===this.occurrence){var w=n.first(y.concat(x));this.result.isEndOfRule=w===void 0,w instanceof s.Terminal&&(this.result.token=w.terminalType,this.result.occurrence=w.idx)}else d.prototype.walkMany.call(this,_,y,x)},m}(l);r.NextTerminalAfterManyWalker=c;var u=function(d){e(m,d);function m(){return d!==null&&d.apply(this,arguments)||this}return m.prototype.walkManySep=function(_,y,x){if(_.idx===this.occurrence){var w=n.first(y.concat(x));this.result.isEndOfRule=w===void 0,w instanceof s.Terminal&&(this.result.token=w.terminalType,this.result.occurrence=w.idx)}else d.prototype.walkManySep.call(this,_,y,x)},m}(l);r.NextTerminalAfterManySepWalker=u;var h=function(d){e(m,d);function m(){return d!==null&&d.apply(this,arguments)||this}return m.prototype.walkAtLeastOne=function(_,y,x){if(_.idx===this.occurrence){var w=n.first(y.concat(x));this.result.isEndOfRule=w===void 0,w instanceof s.Terminal&&(this.result.token=w.terminalType,this.result.occurrence=w.idx)}else d.prototype.walkAtLeastOne.call(this,_,y,x)},m}(l);r.NextTerminalAfterAtLeastOneWalker=h;var f=function(d){e(m,d);function m(){return d!==null&&d.apply(this,arguments)||this}return m.prototype.walkAtLeastOneSep=function(_,y,x){if(_.idx===this.occurrence){var w=n.first(y.concat(x));this.result.isEndOfRule=w===void 0,w instanceof s.Terminal&&(this.result.token=w.terminalType,this.result.occurrence=w.idx)}else d.prototype.walkAtLeastOneSep.call(this,_,y,x)},m}(l);r.NextTerminalAfterAtLeastOneSepWalker=f;function p(d,m,_){_===void 0&&(_=[]),_=n.cloneArr(_);var y=[],x=0;function w(E){return E.concat(n.drop(d,x+1))}function I(E){var M=p(w(E),m,_);return y.concat(M)}for(;_.length=0;q--){var Y=te.definition[q],z={idx:B,def:Y.definition.concat(n.drop(O)),ruleStack:ie,occurrenceStack:$};L.push(z),L.push(I)}else if(te instanceof s.Alternative)L.push({idx:B,def:te.definition.concat(n.drop(O)),ruleStack:ie,occurrenceStack:$});else if(te instanceof s.Rule)L.push(v(te,B,ie,$));else throw Error("non exhaustive match")}}return M}r.nextPossibleTokensAfter=g;function v(d,m,_,y){var x=n.cloneArr(_);x.push(d.name);var w=n.cloneArr(y);return w.push(1),{idx:m,def:d.definition,ruleStack:x,occurrenceStack:w}}}),Nh=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var E=function(M,L){return E=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(N,O){N.__proto__=O}||function(N,O){for(var B in O)Object.prototype.hasOwnProperty.call(O,B)&&(N[B]=O[B])},E(M,L)};return function(M,L){if(typeof L!="function"&&L!==null)throw new TypeError("Class extends value "+String(L)+" is not a constructor or null");E(M,L);function N(){this.constructor=M}M.prototype=L===null?Object.create(L):(N.prototype=L.prototype,new N)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.areTokenCategoriesNotUsed=r.isStrictPrefixOfPath=r.containsPath=r.getLookaheadPathsForOptionalProd=r.getLookaheadPathsForOr=r.lookAheadSequenceFromAlternatives=r.buildSingleAlternativeLookaheadFunction=r.buildAlternativesLookAheadFunc=r.buildLookaheadFuncForOptionalProd=r.buildLookaheadFuncForOr=r.getProdType=r.PROD_TYPE=void 0;var t=Ut(),n=Ph(),i=cp(),s=nc(),o=xi(),a=ic(),l;(function(E){E[E.OPTION=0]="OPTION",E[E.REPETITION=1]="REPETITION",E[E.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",E[E.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",E[E.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",E[E.ALTERNATION=5]="ALTERNATION"})(l=r.PROD_TYPE||(r.PROD_TYPE={}));function c(E){if(E instanceof o.Option)return l.OPTION;if(E instanceof o.Repetition)return l.REPETITION;if(E instanceof o.RepetitionMandatory)return l.REPETITION_MANDATORY;if(E instanceof o.RepetitionMandatoryWithSeparator)return l.REPETITION_MANDATORY_WITH_SEPARATOR;if(E instanceof o.RepetitionWithSeparator)return l.REPETITION_WITH_SEPARATOR;if(E instanceof o.Alternation)return l.ALTERNATION;throw Error("non exhaustive match")}r.getProdType=c;function u(E,M,L,N,O,B){var ie=x(E,M,L),$=P(ie)?s.tokenStructuredMatcherNoCategories:s.tokenStructuredMatcher;return B(ie,N,$,O)}r.buildLookaheadFuncForOr=u;function h(E,M,L,N,O,B){var ie=w(E,M,O,L),$=P(ie)?s.tokenStructuredMatcherNoCategories:s.tokenStructuredMatcher;return B(ie[0],$,N)}r.buildLookaheadFuncForOptionalProd=h;function f(E,M,L,N){var O=E.length,B=t.every(E,function(te){return t.every(te,function(W){return W.length===1})});if(M)return function(te){for(var W=t.map(te,function(V){return V.GATE}),ae=0;ae{"use strict";var e=r&&r.__extends||function(){var N=function(O,B){return N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(ie,$){ie.__proto__=$}||function(ie,$){for(var te in $)Object.prototype.hasOwnProperty.call($,te)&&(ie[te]=$[te])},N(O,B)};return function(O,B){if(typeof B!="function"&&B!==null)throw new TypeError("Class extends value "+String(B)+" is not a constructor or null");N(O,B);function ie(){this.constructor=O}O.prototype=B===null?Object.create(B):(ie.prototype=B.prototype,new ie)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.checkPrefixAlternativesAmbiguities=r.validateSomeNonEmptyLookaheadPath=r.validateTooManyAlts=r.RepetionCollector=r.validateAmbiguousAlternationAlternatives=r.validateEmptyOrAlternative=r.getFirstNoneTerminal=r.validateNoLeftRecursion=r.validateRuleIsOverridden=r.validateRuleDoesNotAlreadyExist=r.OccurrenceValidationCollector=r.identifyProductionForDuplicates=r.validateGrammar=void 0;var t=Ut(),n=Ut(),i=Ni(),s=Rh(),o=Nh(),a=Ph(),l=xi(),c=ic();function u(N,O,B,ie,$){var te=t.map(N,function(T){return h(T,ie)}),W=t.map(N,function(T){return m(T,T,ie)}),ae=[],de=[],ye=[];n.every(W,n.isEmpty)&&(ae=n.map(N,function(T){return x(T,ie)}),de=n.map(N,function(T){return w(T,O,ie)}),ye=P(N,O,ie));var Me=L(N,B,ie),ve=n.map(N,function(T){return C(T,ie)}),R=n.map(N,function(T){return v(T,N,$,ie)});return t.flatten(te.concat(ye,W,ae,de,Me,ve,R))}r.validateGrammar=u;function h(N,O){var B=new g;N.accept(B);var ie=B.allProductions,$=t.groupBy(ie,f),te=t.pick($,function(ae){return ae.length>1}),W=t.map(t.values(te),function(ae){var de=t.first(ae),ye=O.buildDuplicateFoundError(N,ae),Me=s.getProductionDslName(de),ve={message:ye,type:i.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:N.name,dslName:Me,occurrence:de.idx},R=p(de);return R&&(ve.parameter=R),ve});return W}function f(N){return s.getProductionDslName(N)+"_#_"+N.idx+"_#_"+p(N)}r.identifyProductionForDuplicates=f;function p(N){return N instanceof l.Terminal?N.terminalType.name:N instanceof l.NonTerminal?N.nonTerminalName:""}var g=function(N){e(O,N);function O(){var B=N!==null&&N.apply(this,arguments)||this;return B.allProductions=[],B}return O.prototype.visitNonTerminal=function(B){this.allProductions.push(B)},O.prototype.visitOption=function(B){this.allProductions.push(B)},O.prototype.visitRepetitionWithSeparator=function(B){this.allProductions.push(B)},O.prototype.visitRepetitionMandatory=function(B){this.allProductions.push(B)},O.prototype.visitRepetitionMandatoryWithSeparator=function(B){this.allProductions.push(B)},O.prototype.visitRepetition=function(B){this.allProductions.push(B)},O.prototype.visitAlternation=function(B){this.allProductions.push(B)},O.prototype.visitTerminal=function(B){this.allProductions.push(B)},O}(c.GAstVisitor);r.OccurrenceValidationCollector=g;function v(N,O,B,ie){var $=[],te=n.reduce(O,function(ae,de){return de.name===N.name?ae+1:ae},0);if(te>1){var W=ie.buildDuplicateRuleNameError({topLevelRule:N,grammarName:B});$.push({message:W,type:i.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:N.name})}return $}r.validateRuleDoesNotAlreadyExist=v;function d(N,O,B){var ie=[],$;return t.contains(O,N)||($="Invalid rule override, rule: ->"+N+"<- cannot be overridden in the grammar: ->"+B+"<-as it is not defined in any of the super grammars ",ie.push({message:$,type:i.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:N})),ie}r.validateRuleIsOverridden=d;function m(N,O,B,ie){ie===void 0&&(ie=[]);var $=[],te=_(O.definition);if(t.isEmpty(te))return[];var W=N.name,ae=t.contains(te,N);ae&&$.push({message:B.buildLeftRecursionError({topLevelRule:N,leftRecursionPath:ie}),type:i.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:W});var de=t.difference(te,ie.concat([N])),ye=t.map(de,function(Me){var ve=t.cloneArr(ie);return ve.push(Me),m(N,Me,B,ve)});return $.concat(t.flatten(ye))}r.validateNoLeftRecursion=m;function _(N){var O=[];if(t.isEmpty(N))return O;var B=t.first(N);if(B instanceof l.NonTerminal)O.push(B.referencedRule);else if(B instanceof l.Alternative||B instanceof l.Option||B instanceof l.RepetitionMandatory||B instanceof l.RepetitionMandatoryWithSeparator||B instanceof l.RepetitionWithSeparator||B instanceof l.Repetition)O=O.concat(_(B.definition));else if(B instanceof l.Alternation)O=t.flatten(t.map(B.definition,function(W){return _(W.definition)}));else if(!(B instanceof l.Terminal))throw Error("non exhaustive match");var ie=s.isOptionalProd(B),$=N.length>1;if(ie&&$){var te=t.drop(N);return O.concat(_(te))}else return O}r.getFirstNoneTerminal=_;var y=function(N){e(O,N);function O(){var B=N!==null&&N.apply(this,arguments)||this;return B.alternations=[],B}return O.prototype.visitAlternation=function(B){this.alternations.push(B)},O}(c.GAstVisitor);function x(N,O){var B=new y;N.accept(B);var ie=B.alternations,$=t.reduce(ie,function(te,W){var ae=t.dropRight(W.definition),de=t.map(ae,function(ye,Me){var ve=a.nextPossibleTokensAfter([ye],[],null,1);return t.isEmpty(ve)?{message:O.buildEmptyAlternationError({topLevelRule:N,alternation:W,emptyChoiceIdx:Me}),type:i.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:N.name,occurrence:W.idx,alternative:Me+1}:null});return te.concat(t.compact(de))},[]);return $}r.validateEmptyOrAlternative=x;function w(N,O,B){var ie=new y;N.accept(ie);var $=ie.alternations;$=n.reject($,function(W){return W.ignoreAmbiguities===!0});var te=t.reduce($,function(W,ae){var de=ae.idx,ye=ae.maxLookahead||O,Me=o.getLookaheadPathsForOr(de,N,ye,ae),ve=E(Me,ae,N,B),R=M(Me,ae,N,B);return W.concat(ve,R)},[]);return te}r.validateAmbiguousAlternationAlternatives=w;var I=function(N){e(O,N);function O(){var B=N!==null&&N.apply(this,arguments)||this;return B.allProductions=[],B}return O.prototype.visitRepetitionWithSeparator=function(B){this.allProductions.push(B)},O.prototype.visitRepetitionMandatory=function(B){this.allProductions.push(B)},O.prototype.visitRepetitionMandatoryWithSeparator=function(B){this.allProductions.push(B)},O.prototype.visitRepetition=function(B){this.allProductions.push(B)},O}(c.GAstVisitor);r.RepetionCollector=I;function C(N,O){var B=new y;N.accept(B);var ie=B.alternations,$=t.reduce(ie,function(te,W){return W.definition.length>255&&te.push({message:O.buildTooManyAlternativesError({topLevelRule:N,alternation:W}),type:i.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:N.name,occurrence:W.idx}),te},[]);return $}r.validateTooManyAlts=C;function P(N,O,B){var ie=[];return n.forEach(N,function($){var te=new I;$.accept(te);var W=te.allProductions;n.forEach(W,function(ae){var de=o.getProdType(ae),ye=ae.maxLookahead||O,Me=ae.idx,ve=o.getLookaheadPathsForOptionalProd(Me,$,de,ye),R=ve[0];if(n.isEmpty(n.flatten(R))){var T=B.buildEmptyRepetitionError({topLevelRule:$,repetition:ae});ie.push({message:T,type:i.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:$.name})}})}),ie}r.validateSomeNonEmptyLookaheadPath=P;function E(N,O,B,ie){var $=[],te=n.reduce(N,function(ae,de,ye){return O.definition[ye].ignoreAmbiguities===!0||n.forEach(de,function(Me){var ve=[ye];n.forEach(N,function(R,T){ye!==T&&o.containsPath(R,Me)&&O.definition[T].ignoreAmbiguities!==!0&&ve.push(T)}),ve.length>1&&!o.containsPath($,Me)&&($.push(Me),ae.push({alts:ve,path:Me}))}),ae},[]),W=t.map(te,function(ae){var de=n.map(ae.alts,function(Me){return Me+1}),ye=ie.buildAlternationAmbiguityError({topLevelRule:B,alternation:O,ambiguityIndices:de,prefixPath:ae.path});return{message:ye,type:i.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:B.name,occurrence:O.idx,alternatives:[ae.alts]}});return W}function M(N,O,B,ie){var $=[],te=n.reduce(N,function(W,ae,de){var ye=n.map(ae,function(Me){return{idx:de,path:Me}});return W.concat(ye)},[]);return n.forEach(te,function(W){var ae=O.definition[W.idx];if(ae.ignoreAmbiguities!==!0){var de=W.idx,ye=W.path,Me=n.findAll(te,function(R){return O.definition[R.idx].ignoreAmbiguities!==!0&&R.idx{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.validateGrammar=r.resolveGrammar=void 0;var e=Ut(),t=_S(),n=$0(),i=Ih();function s(a){a=e.defaults(a,{errMsgProvider:i.defaultGrammarResolverErrorProvider});var l={};return e.forEach(a.rules,function(c){l[c.name]=c}),t.resolveGrammar(l,a.errMsgProvider)}r.resolveGrammar=s;function o(a){return a=e.defaults(a,{errMsgProvider:i.defaultGrammarValidatorErrorProvider}),n.validateGrammar(a.rules,a.maxLookahead,a.tokenTypes,a.errMsgProvider,a.grammarName)}r.validateGrammar=o}),rc=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var g=function(v,d){return g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,_){m.__proto__=_}||function(m,_){for(var y in _)Object.prototype.hasOwnProperty.call(_,y)&&(m[y]=_[y])},g(v,d)};return function(v,d){if(typeof d!="function"&&d!==null)throw new TypeError("Class extends value "+String(d)+" is not a constructor or null");g(v,d);function m(){this.constructor=v}v.prototype=d===null?Object.create(d):(m.prototype=d.prototype,new m)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.EarlyExitException=r.NotAllInputParsedException=r.NoViableAltException=r.MismatchedTokenException=r.isRecognitionException=void 0;var t=Ut(),n="MismatchedTokenException",i="NoViableAltException",s="EarlyExitException",o="NotAllInputParsedException",a=[n,i,s,o];Object.freeze(a);function l(g){return t.contains(a,g.name)}r.isRecognitionException=l;var c=function(g){e(v,g);function v(d,m){var _=this.constructor,y=g.call(this,d)||this;return y.token=m,y.resyncedTokens=[],Object.setPrototypeOf(y,_.prototype),Error.captureStackTrace&&Error.captureStackTrace(y,y.constructor),y}return v}(Error),u=function(g){e(v,g);function v(d,m,_){var y=g.call(this,d,m)||this;return y.previousToken=_,y.name=n,y}return v}(c);r.MismatchedTokenException=u;var h=function(g){e(v,g);function v(d,m,_){var y=g.call(this,d,m)||this;return y.previousToken=_,y.name=i,y}return v}(c);r.NoViableAltException=h;var f=function(g){e(v,g);function v(d,m){var _=g.call(this,d,m)||this;return _.name=o,_}return v}(c);r.NotAllInputParsedException=f;var p=function(g){e(v,g);function v(d,m,_){var y=g.call(this,d,m)||this;return y.previousToken=_,y.name=s,y}return v}(c);r.EarlyExitException=p}),Q0=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.attemptInRepetitionRecovery=r.Recoverable=r.InRuleRecoveryException=r.IN_RULE_RECOVERY_EXCEPTION=r.EOF_FOLLOW_KEY=void 0;var e=io(),t=Ut(),n=rc(),i=J0(),s=Ni();r.EOF_FOLLOW_KEY={},r.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function o(c){this.name=r.IN_RULE_RECOVERY_EXCEPTION,this.message=c}r.InRuleRecoveryException=o,o.prototype=Error.prototype;var a=function(){function c(){}return c.prototype.initRecoverable=function(u){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=t.has(u,"recoveryEnabled")?u.recoveryEnabled:s.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=l)},c.prototype.getTokenToInsert=function(u){var h=e.createTokenInstance(u,"",NaN,NaN,NaN,NaN,NaN,NaN);return h.isInsertedInRecovery=!0,h},c.prototype.canTokenTypeBeInsertedInRecovery=function(u){return!0},c.prototype.tryInRepetitionRecovery=function(u,h,f,p){for(var g=this,v=this.findReSyncTokenType(),d=this.exportLexerState(),m=[],_=!1,y=this.LA(1),x=this.LA(1),w=function(){var I=g.LA(0),C=g.errorMessageProvider.buildMismatchTokenMessage({expected:p,actual:y,previous:I,ruleName:g.getCurrRuleFullName()}),P=new n.MismatchedTokenException(C,y,g.LA(0));P.resyncedTokens=t.dropRight(m),g.SAVE_ERROR(P)};!_;)if(this.tokenMatcher(x,p)){w();return}else if(f.call(this)){w(),u.apply(this,h);return}else this.tokenMatcher(x,v)?_=!0:(x=this.SKIP_TOKEN(),this.addToResyncTokens(x,m));this.importLexerState(d)},c.prototype.shouldInRepetitionRecoveryBeTried=function(u,h,f){return!(f===!1||u===void 0||h===void 0||this.tokenMatcher(this.LA(1),u)||this.isBackTracking()||this.canPerformInRuleRecovery(u,this.getFollowsForInRuleRecovery(u,h)))},c.prototype.getFollowsForInRuleRecovery=function(u,h){var f=this.getCurrentGrammarPath(u,h),p=this.getNextPossibleTokenTypes(f);return p},c.prototype.tryInRuleRecovery=function(u,h){if(this.canRecoverWithSingleTokenInsertion(u,h)){var f=this.getTokenToInsert(u);return f}if(this.canRecoverWithSingleTokenDeletion(u)){var p=this.SKIP_TOKEN();return this.consumeToken(),p}throw new o("sad sad panda")},c.prototype.canPerformInRuleRecovery=function(u,h){return this.canRecoverWithSingleTokenInsertion(u,h)||this.canRecoverWithSingleTokenDeletion(u)},c.prototype.canRecoverWithSingleTokenInsertion=function(u,h){var f=this;if(!this.canTokenTypeBeInsertedInRecovery(u)||t.isEmpty(h))return!1;var p=this.LA(1),g=t.find(h,function(v){return f.tokenMatcher(p,v)})!==void 0;return g},c.prototype.canRecoverWithSingleTokenDeletion=function(u){var h=this.tokenMatcher(this.LA(2),u);return h},c.prototype.isInCurrentRuleReSyncSet=function(u){var h=this.getCurrFollowKey(),f=this.getFollowSetFromFollowKey(h);return t.contains(f,u)},c.prototype.findReSyncTokenType=function(){for(var u=this.flattenFollowSet(),h=this.LA(1),f=2;;){var p=h.tokenType;if(t.contains(u,p))return p;h=this.LA(f),f++}},c.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return r.EOF_FOLLOW_KEY;var u=this.getLastExplicitRuleShortName(),h=this.getLastExplicitRuleOccurrenceIndex(),f=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(u),idxInCallingRule:h,inRule:this.shortRuleNameToFullName(f)}},c.prototype.buildFullFollowKeyStack=function(){var u=this,h=this.RULE_STACK,f=this.RULE_OCCURRENCE_STACK;return t.map(h,function(p,g){return g===0?r.EOF_FOLLOW_KEY:{ruleName:u.shortRuleNameToFullName(p),idxInCallingRule:f[g],inRule:u.shortRuleNameToFullName(h[g-1])}})},c.prototype.flattenFollowSet=function(){var u=this,h=t.map(this.buildFullFollowKeyStack(),function(f){return u.getFollowSetFromFollowKey(f)});return t.flatten(h)},c.prototype.getFollowSetFromFollowKey=function(u){if(u===r.EOF_FOLLOW_KEY)return[e.EOF];var h=u.ruleName+u.idxInCallingRule+i.IN+u.inRule;return this.resyncFollows[h]},c.prototype.addToResyncTokens=function(u,h){return this.tokenMatcher(u,e.EOF)||h.push(u),h},c.prototype.reSyncTo=function(u){for(var h=[],f=this.LA(1);this.tokenMatcher(f,u)===!1;)f=this.SKIP_TOKEN(),this.addToResyncTokens(f,h);return t.dropRight(h)},c.prototype.attemptInRepetitionRecovery=function(u,h,f,p,g,v,d){},c.prototype.getCurrentGrammarPath=function(u,h){var f=this.getHumanReadableRuleStack(),p=t.cloneArr(this.RULE_OCCURRENCE_STACK),g={ruleStack:f,occurrenceStack:p,lastTok:u,lastTokOccurrence:h};return g},c.prototype.getHumanReadableRuleStack=function(){var u=this;return t.map(this.RULE_STACK,function(h){return u.shortRuleNameToFullName(h)})},c}();r.Recoverable=a;function l(c,u,h,f,p,g,v){var d=this.getKeyForAutomaticLookahead(f,p),m=this.firstAfterRepMap[d];if(m===void 0){var _=this.getCurrRuleFullName(),y=this.getGAstProductions()[_],x=new g(y,p);m=x.startWalking(),this.firstAfterRepMap[d]=m}var w=m.token,I=m.occurrence,C=m.isEndOfRule;this.RULE_STACK.length===1&&C&&w===void 0&&(w=e.EOF,I=1),this.shouldInRepetitionRecoveryBeTried(w,I,v)&&this.tryInRepetitionRecovery(c,u,h,w)}r.attemptInRepetitionRecovery=l}),up=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.getKeyForAutomaticLookahead=r.AT_LEAST_ONE_SEP_IDX=r.MANY_SEP_IDX=r.AT_LEAST_ONE_IDX=r.MANY_IDX=r.OPTION_IDX=r.OR_IDX=r.BITS_FOR_ALT_IDX=r.BITS_FOR_RULE_IDX=r.BITS_FOR_OCCURRENCE_IDX=r.BITS_FOR_METHOD_TYPE=void 0,r.BITS_FOR_METHOD_TYPE=4,r.BITS_FOR_OCCURRENCE_IDX=8,r.BITS_FOR_RULE_IDX=12,r.BITS_FOR_ALT_IDX=8,r.OR_IDX=1<{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.LooksAhead=void 0;var e=Nh(),t=Ut(),n=Ni(),i=up(),s=Rh(),o=function(){function a(){}return a.prototype.initLooksAhead=function(l){this.dynamicTokensEnabled=t.has(l,"dynamicTokensEnabled")?l.dynamicTokensEnabled:n.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=t.has(l,"maxLookahead")?l.maxLookahead:n.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=t.isES2015MapSupported()?new Map:[],t.isES2015MapSupported()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},a.prototype.preComputeLookaheadFunctions=function(l){var c=this;t.forEach(l,function(u){c.TRACE_INIT(u.name+" Rule Lookahead",function(){var h=s.collectMethods(u),f=h.alternation,p=h.repetition,g=h.option,v=h.repetitionMandatory,d=h.repetitionMandatoryWithSeparator,m=h.repetitionWithSeparator;t.forEach(f,function(_){var y=_.idx===0?"":_.idx;c.TRACE_INIT(""+s.getProductionDslName(_)+y,function(){var x=e.buildLookaheadFuncForOr(_.idx,u,_.maxLookahead||c.maxLookahead,_.hasPredicates,c.dynamicTokensEnabled,c.lookAheadBuilderForAlternatives),w=i.getKeyForAutomaticLookahead(c.fullRuleNameToShort[u.name],i.OR_IDX,_.idx);c.setLaFuncCache(w,x)})}),t.forEach(p,function(_){c.computeLookaheadFunc(u,_.idx,i.MANY_IDX,e.PROD_TYPE.REPETITION,_.maxLookahead,s.getProductionDslName(_))}),t.forEach(g,function(_){c.computeLookaheadFunc(u,_.idx,i.OPTION_IDX,e.PROD_TYPE.OPTION,_.maxLookahead,s.getProductionDslName(_))}),t.forEach(v,function(_){c.computeLookaheadFunc(u,_.idx,i.AT_LEAST_ONE_IDX,e.PROD_TYPE.REPETITION_MANDATORY,_.maxLookahead,s.getProductionDslName(_))}),t.forEach(d,function(_){c.computeLookaheadFunc(u,_.idx,i.AT_LEAST_ONE_SEP_IDX,e.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,_.maxLookahead,s.getProductionDslName(_))}),t.forEach(m,function(_){c.computeLookaheadFunc(u,_.idx,i.MANY_SEP_IDX,e.PROD_TYPE.REPETITION_WITH_SEPARATOR,_.maxLookahead,s.getProductionDslName(_))})})})},a.prototype.computeLookaheadFunc=function(l,c,u,h,f,p){var g=this;this.TRACE_INIT(""+p+(c===0?"":c),function(){var v=e.buildLookaheadFuncForOptionalProd(c,l,f||g.maxLookahead,g.dynamicTokensEnabled,h,g.lookAheadBuilderForOptional),d=i.getKeyForAutomaticLookahead(g.fullRuleNameToShort[l.name],u,c);g.setLaFuncCache(d,v)})},a.prototype.lookAheadBuilderForOptional=function(l,c,u){return e.buildSingleAlternativeLookaheadFunction(l,c,u)},a.prototype.lookAheadBuilderForAlternatives=function(l,c,u,h){return e.buildAlternativesLookAheadFunc(l,c,u,h)},a.prototype.getKeyForAutomaticLookahead=function(l,c){var u=this.getLastExplicitRuleShortName();return i.getKeyForAutomaticLookahead(u,l,c)},a.prototype.getLaFuncFromCache=function(l){},a.prototype.getLaFuncFromMap=function(l){return this.lookAheadFuncsCache.get(l)},a.prototype.getLaFuncFromObj=function(l){return this.lookAheadFuncsCache[l]},a.prototype.setLaFuncCache=function(l,c){},a.prototype.setLaFuncCacheUsingMap=function(l,c){this.lookAheadFuncsCache.set(l,c)},a.prototype.setLaFuncUsingObj=function(l,c){this.lookAheadFuncsCache[l]=c},a}();r.LooksAhead=o}),ES=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.addNoneTerminalToCst=r.addTerminalToCst=r.setNodeLocationFull=r.setNodeLocationOnlyOffset=void 0;function e(s,o){isNaN(s.startOffset)===!0?(s.startOffset=o.startOffset,s.endOffset=o.endOffset):s.endOffset{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.defineNameProp=r.functionName=r.classNameFromInstance=void 0;var e=Ut();function t(o){return i(o.constructor)}r.classNameFromInstance=t;var n="name";function i(o){var a=o.name;return a||"anonymous"}r.functionName=i;function s(o,a){var l=Object.getOwnPropertyDescriptor(o,n);return e.isUndefined(l)||l.configurable?(Object.defineProperty(o,n,{enumerable:!1,configurable:!0,writable:!1,value:a}),!0):!1}r.defineNameProp=s}),bS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.validateRedundantMethods=r.validateMissingCstMethods=r.validateVisitor=r.CstVisitorDefinitionError=r.createBaseVisitorConstructorWithDefaults=r.createBaseSemanticVisitorConstructor=r.defaultVisit=void 0;var e=Ut(),t=ev();function n(h,f){for(var p=e.keys(h),g=p.length,v=0;v:
+	`+(""+d.join(`
+
+`).replace(/\n/g,`
+	`)))}}};return p.prototype=g,p.prototype.constructor=p,p._RULE_NAMES=f,p}r.createBaseSemanticVisitorConstructor=i;function s(h,f,p){var g=function(){};t.defineNameProp(g,h+"BaseSemanticsWithDefaults");var v=Object.create(p.prototype);return e.forEach(f,function(d){v[d]=n}),g.prototype=v,g.prototype.constructor=g,g}r.createBaseVisitorConstructorWithDefaults=s;var o;(function(h){h[h.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",h[h.MISSING_METHOD=1]="MISSING_METHOD"})(o=r.CstVisitorDefinitionError||(r.CstVisitorDefinitionError={}));function a(h,f){var p=l(h,f),g=u(h,f);return p.concat(g)}r.validateVisitor=a;function l(h,f){var p=e.map(f,function(g){if(!e.isFunction(h[g]))return{msg:"Missing visitor method: <"+g+"> on "+t.functionName(h.constructor)+" CST Visitor.",type:o.MISSING_METHOD,methodName:g}});return e.compact(p)}r.validateMissingCstMethods=l;var c=["constructor","visit","validateVisitor"];function u(h,f){var p=[];for(var g in h)e.isFunction(h[g])&&!e.contains(c,g)&&!e.contains(f,g)&&p.push({msg:"Redundant visitor method: <"+g+"> on "+t.functionName(h.constructor)+` CST Visitor
+There is no Grammar Rule corresponding to this method's name.
+`,type:o.REDUNDANT_METHOD,methodName:g});return p}r.validateRedundantMethods=u}),SS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.TreeBuilder=void 0;var e=ES(),t=Ut(),n=bS(),i=Ni(),s=function(){function o(){}return o.prototype.initTreeBuilder=function(a){if(this.CST_STACK=[],this.outputCst=a.outputCst,this.nodeLocationTracking=t.has(a,"nodeLocationTracking")?a.nodeLocationTracking:i.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=t.NOOP,this.cstFinallyStateUpdate=t.NOOP,this.cstPostTerminal=t.NOOP,this.cstPostNonTerminal=t.NOOP,this.cstPostRule=t.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=e.setNodeLocationFull,this.setNodeLocationFromNode=e.setNodeLocationFull,this.cstPostRule=t.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=t.NOOP,this.setNodeLocationFromNode=t.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=e.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=e.setNodeLocationOnlyOffset,this.cstPostRule=t.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=t.NOOP,this.setNodeLocationFromNode=t.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=t.NOOP,this.setNodeLocationFromNode=t.NOOP,this.cstPostRule=t.NOOP,this.setInitialNodeLocation=t.NOOP;else throw Error('Invalid  config option: "'+a.nodeLocationTracking+'"')},o.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(a){a.location={startOffset:NaN,endOffset:NaN}},o.prototype.setInitialNodeLocationOnlyOffsetRegular=function(a){a.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},o.prototype.setInitialNodeLocationFullRecovery=function(a){a.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},o.prototype.setInitialNodeLocationFullRegular=function(a){var l=this.LA(1);a.location={startOffset:l.startOffset,startLine:l.startLine,startColumn:l.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},o.prototype.cstInvocationStateUpdate=function(a,l){var c={name:a,children:{}};this.setInitialNodeLocation(c),this.CST_STACK.push(c)},o.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},o.prototype.cstPostRuleFull=function(a){var l=this.LA(0),c=a.location;c.startOffset<=l.startOffset?(c.endOffset=l.endOffset,c.endLine=l.endLine,c.endColumn=l.endColumn):(c.startOffset=NaN,c.startLine=NaN,c.startColumn=NaN)},o.prototype.cstPostRuleOnlyOffset=function(a){var l=this.LA(0),c=a.location;c.startOffset<=l.startOffset?c.endOffset=l.endOffset:c.startOffset=NaN},o.prototype.cstPostTerminal=function(a,l){var c=this.CST_STACK[this.CST_STACK.length-1];e.addTerminalToCst(c,l,a),this.setNodeLocationFromToken(c.location,l)},o.prototype.cstPostNonTerminal=function(a,l){var c=this.CST_STACK[this.CST_STACK.length-1];e.addNoneTerminalToCst(c,l,a),this.setNodeLocationFromNode(c.location,a.location)},o.prototype.getBaseCstVisitorConstructor=function(){if(t.isUndefined(this.baseCstVisitorConstructor)){var a=n.createBaseSemanticVisitorConstructor(this.className,t.keys(this.gastProductionsCache));return this.baseCstVisitorConstructor=a,a}return this.baseCstVisitorConstructor},o.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if(t.isUndefined(this.baseCstVisitorWithDefaultsConstructor)){var a=n.createBaseVisitorConstructorWithDefaults(this.className,t.keys(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=a,a}return this.baseCstVisitorWithDefaultsConstructor},o.prototype.getLastExplicitRuleShortName=function(){var a=this.RULE_STACK;return a[a.length-1]},o.prototype.getPreviousExplicitRuleShortName=function(){var a=this.RULE_STACK;return a[a.length-2]},o.prototype.getLastExplicitRuleOccurrenceIndex=function(){var a=this.RULE_OCCURRENCE_STACK;return a[a.length-1]},o}();r.TreeBuilder=s}),AS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.LexerAdapter=void 0;var e=Ni(),t=function(){function n(){}return n.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(n.prototype,"input",{get:function(){return this.tokVector},set:function(i){if(this.selfAnalysisDone!==!0)throw Error("Missing  invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=i,this.tokVectorLength=i.length},enumerable:!1,configurable:!0}),n.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):e.END_OF_FILE},n.prototype.LA=function(i){var s=this.currIdx+i;return s<0||this.tokVectorLength<=s?e.END_OF_FILE:this.tokVector[s]},n.prototype.consumeToken=function(){this.currIdx++},n.prototype.exportLexerState=function(){return this.currIdx},n.prototype.importLexerState=function(i){this.currIdx=i},n.prototype.resetLexerState=function(){this.currIdx=-1},n.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},n.prototype.getLexerPosition=function(){return this.exportLexerState()},n}();r.LexerAdapter=t}),wS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.RecognizerApi=void 0;var e=Ut(),t=rc(),n=Ni(),i=Ih(),s=$0(),o=xi(),a=function(){function l(){}return l.prototype.ACTION=function(c){return c.call(this)},l.prototype.consume=function(c,u,h){return this.consumeInternal(u,c,h)},l.prototype.subrule=function(c,u,h){return this.subruleInternal(u,c,h)},l.prototype.option=function(c,u){return this.optionInternal(u,c)},l.prototype.or=function(c,u){return this.orInternal(u,c)},l.prototype.many=function(c,u){return this.manyInternal(c,u)},l.prototype.atLeastOne=function(c,u){return this.atLeastOneInternal(c,u)},l.prototype.CONSUME=function(c,u){return this.consumeInternal(c,0,u)},l.prototype.CONSUME1=function(c,u){return this.consumeInternal(c,1,u)},l.prototype.CONSUME2=function(c,u){return this.consumeInternal(c,2,u)},l.prototype.CONSUME3=function(c,u){return this.consumeInternal(c,3,u)},l.prototype.CONSUME4=function(c,u){return this.consumeInternal(c,4,u)},l.prototype.CONSUME5=function(c,u){return this.consumeInternal(c,5,u)},l.prototype.CONSUME6=function(c,u){return this.consumeInternal(c,6,u)},l.prototype.CONSUME7=function(c,u){return this.consumeInternal(c,7,u)},l.prototype.CONSUME8=function(c,u){return this.consumeInternal(c,8,u)},l.prototype.CONSUME9=function(c,u){return this.consumeInternal(c,9,u)},l.prototype.SUBRULE=function(c,u){return this.subruleInternal(c,0,u)},l.prototype.SUBRULE1=function(c,u){return this.subruleInternal(c,1,u)},l.prototype.SUBRULE2=function(c,u){return this.subruleInternal(c,2,u)},l.prototype.SUBRULE3=function(c,u){return this.subruleInternal(c,3,u)},l.prototype.SUBRULE4=function(c,u){return this.subruleInternal(c,4,u)},l.prototype.SUBRULE5=function(c,u){return this.subruleInternal(c,5,u)},l.prototype.SUBRULE6=function(c,u){return this.subruleInternal(c,6,u)},l.prototype.SUBRULE7=function(c,u){return this.subruleInternal(c,7,u)},l.prototype.SUBRULE8=function(c,u){return this.subruleInternal(c,8,u)},l.prototype.SUBRULE9=function(c,u){return this.subruleInternal(c,9,u)},l.prototype.OPTION=function(c){return this.optionInternal(c,0)},l.prototype.OPTION1=function(c){return this.optionInternal(c,1)},l.prototype.OPTION2=function(c){return this.optionInternal(c,2)},l.prototype.OPTION3=function(c){return this.optionInternal(c,3)},l.prototype.OPTION4=function(c){return this.optionInternal(c,4)},l.prototype.OPTION5=function(c){return this.optionInternal(c,5)},l.prototype.OPTION6=function(c){return this.optionInternal(c,6)},l.prototype.OPTION7=function(c){return this.optionInternal(c,7)},l.prototype.OPTION8=function(c){return this.optionInternal(c,8)},l.prototype.OPTION9=function(c){return this.optionInternal(c,9)},l.prototype.OR=function(c){return this.orInternal(c,0)},l.prototype.OR1=function(c){return this.orInternal(c,1)},l.prototype.OR2=function(c){return this.orInternal(c,2)},l.prototype.OR3=function(c){return this.orInternal(c,3)},l.prototype.OR4=function(c){return this.orInternal(c,4)},l.prototype.OR5=function(c){return this.orInternal(c,5)},l.prototype.OR6=function(c){return this.orInternal(c,6)},l.prototype.OR7=function(c){return this.orInternal(c,7)},l.prototype.OR8=function(c){return this.orInternal(c,8)},l.prototype.OR9=function(c){return this.orInternal(c,9)},l.prototype.MANY=function(c){this.manyInternal(0,c)},l.prototype.MANY1=function(c){this.manyInternal(1,c)},l.prototype.MANY2=function(c){this.manyInternal(2,c)},l.prototype.MANY3=function(c){this.manyInternal(3,c)},l.prototype.MANY4=function(c){this.manyInternal(4,c)},l.prototype.MANY5=function(c){this.manyInternal(5,c)},l.prototype.MANY6=function(c){this.manyInternal(6,c)},l.prototype.MANY7=function(c){this.manyInternal(7,c)},l.prototype.MANY8=function(c){this.manyInternal(8,c)},l.prototype.MANY9=function(c){this.manyInternal(9,c)},l.prototype.MANY_SEP=function(c){this.manySepFirstInternal(0,c)},l.prototype.MANY_SEP1=function(c){this.manySepFirstInternal(1,c)},l.prototype.MANY_SEP2=function(c){this.manySepFirstInternal(2,c)},l.prototype.MANY_SEP3=function(c){this.manySepFirstInternal(3,c)},l.prototype.MANY_SEP4=function(c){this.manySepFirstInternal(4,c)},l.prototype.MANY_SEP5=function(c){this.manySepFirstInternal(5,c)},l.prototype.MANY_SEP6=function(c){this.manySepFirstInternal(6,c)},l.prototype.MANY_SEP7=function(c){this.manySepFirstInternal(7,c)},l.prototype.MANY_SEP8=function(c){this.manySepFirstInternal(8,c)},l.prototype.MANY_SEP9=function(c){this.manySepFirstInternal(9,c)},l.prototype.AT_LEAST_ONE=function(c){this.atLeastOneInternal(0,c)},l.prototype.AT_LEAST_ONE1=function(c){return this.atLeastOneInternal(1,c)},l.prototype.AT_LEAST_ONE2=function(c){this.atLeastOneInternal(2,c)},l.prototype.AT_LEAST_ONE3=function(c){this.atLeastOneInternal(3,c)},l.prototype.AT_LEAST_ONE4=function(c){this.atLeastOneInternal(4,c)},l.prototype.AT_LEAST_ONE5=function(c){this.atLeastOneInternal(5,c)},l.prototype.AT_LEAST_ONE6=function(c){this.atLeastOneInternal(6,c)},l.prototype.AT_LEAST_ONE7=function(c){this.atLeastOneInternal(7,c)},l.prototype.AT_LEAST_ONE8=function(c){this.atLeastOneInternal(8,c)},l.prototype.AT_LEAST_ONE9=function(c){this.atLeastOneInternal(9,c)},l.prototype.AT_LEAST_ONE_SEP=function(c){this.atLeastOneSepFirstInternal(0,c)},l.prototype.AT_LEAST_ONE_SEP1=function(c){this.atLeastOneSepFirstInternal(1,c)},l.prototype.AT_LEAST_ONE_SEP2=function(c){this.atLeastOneSepFirstInternal(2,c)},l.prototype.AT_LEAST_ONE_SEP3=function(c){this.atLeastOneSepFirstInternal(3,c)},l.prototype.AT_LEAST_ONE_SEP4=function(c){this.atLeastOneSepFirstInternal(4,c)},l.prototype.AT_LEAST_ONE_SEP5=function(c){this.atLeastOneSepFirstInternal(5,c)},l.prototype.AT_LEAST_ONE_SEP6=function(c){this.atLeastOneSepFirstInternal(6,c)},l.prototype.AT_LEAST_ONE_SEP7=function(c){this.atLeastOneSepFirstInternal(7,c)},l.prototype.AT_LEAST_ONE_SEP8=function(c){this.atLeastOneSepFirstInternal(8,c)},l.prototype.AT_LEAST_ONE_SEP9=function(c){this.atLeastOneSepFirstInternal(9,c)},l.prototype.RULE=function(c,u,h){if(h===void 0&&(h=n.DEFAULT_RULE_CONFIG),e.contains(this.definedRulesNames,c)){var f=i.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:c,grammarName:this.className}),p={message:f,type:n.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:c};this.definitionErrors.push(p)}this.definedRulesNames.push(c);var g=this.defineRule(c,u,h);return this[c]=g,g},l.prototype.OVERRIDE_RULE=function(c,u,h){h===void 0&&(h=n.DEFAULT_RULE_CONFIG);var f=[];f=f.concat(s.validateRuleIsOverridden(c,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(f);var p=this.defineRule(c,u,h);return this[c]=p,p},l.prototype.BACKTRACK=function(c,u){return function(){this.isBackTrackingStack.push(1);var h=this.saveRecogState();try{return c.apply(this,u),!0}catch(f){if(t.isRecognitionException(f))return!1;throw f}finally{this.reloadRecogState(h),this.isBackTrackingStack.pop()}}},l.prototype.getGAstProductions=function(){return this.gastProductionsCache},l.prototype.getSerializedGastProductions=function(){return o.serializeGrammar(e.values(this.gastProductionsCache))},l}();r.RecognizerApi=a}),CS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.RecognizerEngine=void 0;var e=Ut(),t=up(),n=rc(),i=Nh(),s=Ph(),o=Ni(),a=Q0(),l=io(),c=nc(),u=ev(),h=function(){function f(){}return f.prototype.initRecognizerEngine=function(p,g){if(this.className=u.classNameFromInstance(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=c.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},e.has(g,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a  property.
+	See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
+	For Further details.`);if(e.isArray(p)){if(e.isEmpty(p))throw Error(`A Token Vocabulary cannot be empty.
+	Note that the first argument for the parser constructor
+	is no longer a Token vector (since v4.0).`);if(typeof p[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
+	See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
+	For Further details.`)}if(e.isArray(p))this.tokensMap=e.reduce(p,function(_,y){return _[y.name]=y,_},{});else if(e.has(p,"modes")&&e.every(e.flatten(e.values(p.modes)),c.isTokenType)){var v=e.flatten(e.values(p.modes)),d=e.uniq(v);this.tokensMap=e.reduce(d,function(_,y){return _[y.name]=y,_},{})}else if(e.isObject(p))this.tokensMap=e.cloneObj(p);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=l.EOF;var m=e.every(e.values(p),function(_){return e.isEmpty(_.categoryMatches)});this.tokenMatcher=m?c.tokenStructuredMatcherNoCategories:c.tokenStructuredMatcher,c.augmentTokenTypes(e.values(this.tokensMap))},f.prototype.defineRule=function(p,g,v){if(this.selfAnalysisDone)throw Error("Grammar rule <"+p+`> may not be defined after the 'performSelfAnalysis' method has been called'
+Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var d=e.has(v,"resyncEnabled")?v.resyncEnabled:o.DEFAULT_RULE_CONFIG.resyncEnabled,m=e.has(v,"recoveryValueFunc")?v.recoveryValueFunc:o.DEFAULT_RULE_CONFIG.recoveryValueFunc,_=this.ruleShortNameIdx<g},f.prototype.orInternal=function(p,g){var v=this.getKeyForAutomaticLookahead(t.OR_IDX,g),d=e.isArray(p)?p:p.DEF,m=this.getLaFuncFromCache(v),_=m.call(this,d);if(_!==void 0){var y=d[_];return y.ALT.call(this)}this.raiseNoAltException(g,p.ERR_MSG)},f.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var p=this.LA(1),g=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:p,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new n.NotAllInputParsedException(g,p))}},f.prototype.subruleInternal=function(p,g,v){var d;try{var m=v!==void 0?v.ARGS:void 0;return d=p.call(this,g,m),this.cstPostNonTerminal(d,v!==void 0&&v.LABEL!==void 0?v.LABEL:p.ruleName),d}catch(_){this.subruleInternalError(_,v,p.ruleName)}},f.prototype.subruleInternalError=function(p,g,v){throw n.isRecognitionException(p)&&p.partialCstResult!==void 0&&(this.cstPostNonTerminal(p.partialCstResult,g!==void 0&&g.LABEL!==void 0?g.LABEL:v),delete p.partialCstResult),p},f.prototype.consumeInternal=function(p,g,v){var d;try{var m=this.LA(1);this.tokenMatcher(m,p)===!0?(this.consumeToken(),d=m):this.consumeInternalError(p,m,v)}catch(_){d=this.consumeInternalRecovery(p,g,_)}return this.cstPostTerminal(v!==void 0&&v.LABEL!==void 0?v.LABEL:p.name,d),d},f.prototype.consumeInternalError=function(p,g,v){var d,m=this.LA(0);throw v!==void 0&&v.ERR_MSG?d=v.ERR_MSG:d=this.errorMessageProvider.buildMismatchTokenMessage({expected:p,actual:g,previous:m,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new n.MismatchedTokenException(d,g,m))},f.prototype.consumeInternalRecovery=function(p,g,v){if(this.recoveryEnabled&&v.name==="MismatchedTokenException"&&!this.isBackTracking()){var d=this.getFollowsForInRuleRecovery(p,g);try{return this.tryInRuleRecovery(p,d)}catch(m){throw m.name===a.IN_RULE_RECOVERY_EXCEPTION?v:m}}else throw v},f.prototype.saveRecogState=function(){var p=this.errors,g=e.cloneArr(this.RULE_STACK);return{errors:p,lexerState:this.exportLexerState(),RULE_STACK:g,CST_STACK:this.CST_STACK}},f.prototype.reloadRecogState=function(p){this.errors=p.errors,this.importLexerState(p.lexerState),this.RULE_STACK=p.RULE_STACK},f.prototype.ruleInvocationStateUpdate=function(p,g,v){this.RULE_OCCURRENCE_STACK.push(v),this.RULE_STACK.push(p),this.cstInvocationStateUpdate(g,p)},f.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},f.prototype.getCurrRuleFullName=function(){var p=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[p]},f.prototype.shortRuleNameToFullName=function(p){return this.shortRuleNameToFull[p]},f.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),l.EOF)},f.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},f}();r.RecognizerEngine=h}),RS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ErrorHandler=void 0;var e=rc(),t=Ut(),n=Nh(),i=Ni(),s=function(){function o(){}return o.prototype.initErrorHandler=function(a){this._errors=[],this.errorMessageProvider=t.has(a,"errorMessageProvider")?a.errorMessageProvider:i.DEFAULT_PARSER_CONFIG.errorMessageProvider},o.prototype.SAVE_ERROR=function(a){if(e.isRecognitionException(a))return a.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:t.cloneArr(this.RULE_OCCURRENCE_STACK)},this._errors.push(a),a;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(o.prototype,"errors",{get:function(){return t.cloneArr(this._errors)},set:function(a){this._errors=a},enumerable:!1,configurable:!0}),o.prototype.raiseEarlyExitException=function(a,l,c){for(var u=this.getCurrRuleFullName(),h=this.getGAstProductions()[u],f=n.getLookaheadPathsForOptionalProd(a,h,l,this.maxLookahead),p=f[0],g=[],v=1;v<=this.maxLookahead;v++)g.push(this.LA(v));var d=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:p,actual:g,previous:this.LA(0),customUserDescription:c,ruleName:u});throw this.SAVE_ERROR(new e.EarlyExitException(d,this.LA(1),this.LA(0)))},o.prototype.raiseNoAltException=function(a,l){for(var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],h=n.getLookaheadPathsForOr(a,u,this.maxLookahead),f=[],p=1;p<=this.maxLookahead;p++)f.push(this.LA(p));var g=this.LA(0),v=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:h,actual:f,previous:g,customUserDescription:l,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new e.NoViableAltException(v,this.LA(1),g))},o}();r.ErrorHandler=s}),IS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.ContentAssist=void 0;var e=Ph(),t=Ut(),n=function(){function i(){}return i.prototype.initContentAssist=function(){},i.prototype.computeContentAssist=function(s,o){var a=this.gastProductionsCache[s];if(t.isUndefined(a))throw Error("Rule ->"+s+"<- does not exist in this grammar.");return e.nextPossibleTokensAfter([a],o,this.tokenMatcher,this.maxLookahead)},i.prototype.getNextPossibleTokenTypes=function(s){var o=t.first(s.ruleStack),a=this.getGAstProductions(),l=a[o],c=new e.NextAfterTokenWalker(l,s).startWalking();return c},i}();r.ContentAssist=n}),PS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.GastRecorder=void 0;var e=Ut(),t=xi(),n=Ch(),i=nc(),s=io(),o=Ni(),a=up(),l={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(l);var c=!0,u=Math.pow(2,a.BITS_FOR_OCCURRENCE_IDX)-1,h=s.createToken({name:"RECORDING_PHASE_TOKEN",pattern:n.Lexer.NA});i.augmentTokenTypes([h]);var f=s.createTokenInstance(h,`This IToken indicates the Parser is in Recording Phase
+	See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(f);var p={name:`This CSTNode indicates the Parser is in Recording Phase
+	See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},g=function(){function y(){}return y.prototype.initGastRecorder=function(x){this.recordingProdStack=[],this.RECORDING_PHASE=!1},y.prototype.enableRecording=function(){var x=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var w=function(C){var P=C>0?C:"";x["CONSUME"+P]=function(E,M){return this.consumeInternalRecord(E,C,M)},x["SUBRULE"+P]=function(E,M){return this.subruleInternalRecord(E,C,M)},x["OPTION"+P]=function(E){return this.optionInternalRecord(E,C)},x["OR"+P]=function(E){return this.orInternalRecord(E,C)},x["MANY"+P]=function(E){this.manyInternalRecord(C,E)},x["MANY_SEP"+P]=function(E){this.manySepFirstInternalRecord(C,E)},x["AT_LEAST_ONE"+P]=function(E){this.atLeastOneInternalRecord(C,E)},x["AT_LEAST_ONE_SEP"+P]=function(E){this.atLeastOneSepFirstInternalRecord(C,E)}},I=0;I<10;I++)w(I);x.consume=function(C,P,E){return this.consumeInternalRecord(P,C,E)},x.subrule=function(C,P,E){return this.subruleInternalRecord(P,C,E)},x.option=function(C,P){return this.optionInternalRecord(P,C)},x.or=function(C,P){return this.orInternalRecord(P,C)},x.many=function(C,P){this.manyInternalRecord(C,P)},x.atLeastOne=function(C,P){this.atLeastOneInternalRecord(C,P)},x.ACTION=x.ACTION_RECORD,x.BACKTRACK=x.BACKTRACK_RECORD,x.LA=x.LA_RECORD})},y.prototype.disableRecording=function(){var x=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var w=0;w<10;w++){var I=w>0?w:"";delete x["CONSUME"+I],delete x["SUBRULE"+I],delete x["OPTION"+I],delete x["OR"+I],delete x["MANY"+I],delete x["MANY_SEP"+I],delete x["AT_LEAST_ONE"+I],delete x["AT_LEAST_ONE_SEP"+I]}delete x.consume,delete x.subrule,delete x.option,delete x.or,delete x.many,delete x.atLeastOne,delete x.ACTION,delete x.BACKTRACK,delete x.LA})},y.prototype.ACTION_RECORD=function(x){},y.prototype.BACKTRACK_RECORD=function(x,w){return function(){return!0}},y.prototype.LA_RECORD=function(x){return o.END_OF_FILE},y.prototype.topLevelRuleRecord=function(x,w){try{var I=new t.Rule({definition:[],name:x});return I.name=x,this.recordingProdStack.push(I),w.call(this),this.recordingProdStack.pop(),I}catch(C){if(C.KNOWN_RECORDER_ERROR!==!0)try{C.message=C.message+`
+	 This error was thrown during the "grammar recording phase" For more info see:
+	https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw C}throw C}},y.prototype.optionInternalRecord=function(x,w){return v.call(this,t.Option,x,w)},y.prototype.atLeastOneInternalRecord=function(x,w){v.call(this,t.RepetitionMandatory,w,x)},y.prototype.atLeastOneSepFirstInternalRecord=function(x,w){v.call(this,t.RepetitionMandatoryWithSeparator,w,x,c)},y.prototype.manyInternalRecord=function(x,w){v.call(this,t.Repetition,w,x)},y.prototype.manySepFirstInternalRecord=function(x,w){v.call(this,t.RepetitionWithSeparator,w,x,c)},y.prototype.orInternalRecord=function(x,w){return d.call(this,x,w)},y.prototype.subruleInternalRecord=function(x,w,I){if(_(w),!x||e.has(x,"ruleName")===!1){var C=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(x)+">")+(`
+ inside top level rule: <`+this.recordingProdStack[0].name+">"));throw C.KNOWN_RECORDER_ERROR=!0,C}var P=e.peek(this.recordingProdStack),E=x.ruleName,M=new t.NonTerminal({idx:w,nonTerminalName:E,referencedRule:void 0});return P.definition.push(M),this.outputCst?p:l},y.prototype.consumeInternalRecord=function(x,w,I){if(_(w),!i.hasShortKeyProperty(x)){var C=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(x)+">")+(`
+ inside top level rule: <`+this.recordingProdStack[0].name+">"));throw C.KNOWN_RECORDER_ERROR=!0,C}var P=e.peek(this.recordingProdStack),E=new t.Terminal({idx:w,terminalType:x});return P.definition.push(E),f},y}();r.GastRecorder=g;function v(y,x,w,I){I===void 0&&(I=!1),_(w);var C=e.peek(this.recordingProdStack),P=e.isFunction(x)?x:x.DEF,E=new y({definition:[],idx:w});return I&&(E.separator=x.SEP),e.has(x,"MAX_LOOKAHEAD")&&(E.maxLookahead=x.MAX_LOOKAHEAD),this.recordingProdStack.push(E),P.call(this),C.definition.push(E),this.recordingProdStack.pop(),l}function d(y,x){var w=this;_(x);var I=e.peek(this.recordingProdStack),C=e.isArray(y)===!1,P=C===!1?y:y.DEF,E=new t.Alternation({definition:[],idx:x,ignoreAmbiguities:C&&y.IGNORE_AMBIGUITIES===!0});e.has(y,"MAX_LOOKAHEAD")&&(E.maxLookahead=y.MAX_LOOKAHEAD);var M=e.some(P,function(L){return e.isFunction(L.GATE)});return E.hasPredicates=M,I.definition.push(E),e.forEach(P,function(L){var N=new t.Alternative({definition:[]});E.definition.push(N),e.has(L,"IGNORE_AMBIGUITIES")?N.ignoreAmbiguities=L.IGNORE_AMBIGUITIES:e.has(L,"GATE")&&(N.ignoreAmbiguities=!0),w.recordingProdStack.push(N),L.ALT.call(w),w.recordingProdStack.pop()}),l}function m(y){return y===0?"":""+y}function _(y){if(y<0||y>u){var x=new Error("Invalid DSL Method idx value: <"+y+`>
+	`+("Idx value must be a none negative value smaller than "+(u+1)));throw x.KNOWN_RECORDER_ERROR=!0,x}}}),NS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.PerformanceTracer=void 0;var e=Ut(),t=Ni(),n=function(){function i(){}return i.prototype.initPerformanceTracer=function(s){if(e.has(s,"traceInitPerf")){var o=s.traceInitPerf,a=typeof o=="number";this.traceInitMaxIdent=a?o:1/0,this.traceInitPerf=a?o>0:o}else this.traceInitMaxIdent=0,this.traceInitPerf=t.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},i.prototype.TRACE_INIT=function(s,o){if(this.traceInitPerf===!0){this.traceInitIndent++;var a=new Array(this.traceInitIndent+1).join("	");this.traceInitIndent <"+s+">");var l=e.timer(o),c=l.time,u=l.value,h=c>10?console.warn:console.log;return this.traceInitIndent time: "+c+"ms"),this.traceInitIndent--,u}else return o()},i}();r.PerformanceTracer=n}),LS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.applyMixins=void 0;function e(t,n){n.forEach(function(i){var s=i.prototype;Object.getOwnPropertyNames(s).forEach(function(o){if(o!=="constructor"){var a=Object.getOwnPropertyDescriptor(s,o);a&&(a.get||a.set)?Object.defineProperty(t.prototype,o,a):t.prototype[o]=i.prototype[o]}})})}r.applyMixins=e}),Ni=Tt(r=>{"use strict";var e=r&&r.__extends||function(){var C=function(P,E){return C=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(M,L){M.__proto__=L}||function(M,L){for(var N in L)Object.prototype.hasOwnProperty.call(L,N)&&(M[N]=L[N])},C(P,E)};return function(P,E){if(typeof E!="function"&&E!==null)throw new TypeError("Class extends value "+String(E)+" is not a constructor or null");C(P,E);function M(){this.constructor=P}P.prototype=E===null?Object.create(E):(M.prototype=E.prototype,new M)}}();Object.defineProperty(r,"__esModule",{value:!0}),r.EmbeddedActionsParser=r.CstParser=r.Parser=r.EMPTY_ALT=r.ParserDefinitionErrorType=r.DEFAULT_RULE_CONFIG=r.DEFAULT_PARSER_CONFIG=r.END_OF_FILE=void 0;var t=Ut(),n=xS(),i=io(),s=Ih(),o=TS(),a=Q0(),l=MS(),c=SS(),u=AS(),h=wS(),f=CS(),p=RS(),g=IS(),v=PS(),d=NS(),m=LS();r.END_OF_FILE=i.createTokenInstance(i.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN),Object.freeze(r.END_OF_FILE),r.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:s.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),r.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var _;(function(C){C[C.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",C[C.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",C[C.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",C[C.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",C[C.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",C[C.LEFT_RECURSION=5]="LEFT_RECURSION",C[C.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",C[C.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",C[C.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",C[C.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",C[C.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",C[C.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",C[C.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(_=r.ParserDefinitionErrorType||(r.ParserDefinitionErrorType={}));function y(C){return C===void 0&&(C=void 0),function(){return C}}r.EMPTY_ALT=y;var x=function(){function C(P,E){this.definitionErrors=[],this.selfAnalysisDone=!1;var M=this;if(M.initErrorHandler(E),M.initLexerAdapter(),M.initLooksAhead(E),M.initRecognizerEngine(P,E),M.initRecoverable(E),M.initTreeBuilder(E),M.initContentAssist(),M.initGastRecorder(E),M.initPerformanceTracer(E),t.has(E,"ignoredIssues"))throw new Error(`The  IParserConfig property has been deprecated.
+	Please use the  flag on the relevant DSL method instead.
+	See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
+	For further details.`);this.skipValidations=t.has(E,"skipValidations")?E.skipValidations:r.DEFAULT_PARSER_CONFIG.skipValidations}return C.performSelfAnalysis=function(P){throw Error("The **static** `performSelfAnalysis` method has been deprecated.	\nUse the **instance** method with the same name instead.")},C.prototype.performSelfAnalysis=function(){var P=this;this.TRACE_INIT("performSelfAnalysis",function(){var E;P.selfAnalysisDone=!0;var M=P.className;P.TRACE_INIT("toFastProps",function(){t.toFastProperties(P)}),P.TRACE_INIT("Grammar Recording",function(){try{P.enableRecording(),t.forEach(P.definedRulesNames,function(N){var O=P[N],B=O.originalGrammarAction,ie=void 0;P.TRACE_INIT(N+" Rule",function(){ie=P.topLevelRuleRecord(N,B)}),P.gastProductionsCache[N]=ie})}finally{P.disableRecording()}});var L=[];if(P.TRACE_INIT("Grammar Resolving",function(){L=o.resolveGrammar({rules:t.values(P.gastProductionsCache)}),P.definitionErrors=P.definitionErrors.concat(L)}),P.TRACE_INIT("Grammar Validations",function(){if(t.isEmpty(L)&&P.skipValidations===!1){var N=o.validateGrammar({rules:t.values(P.gastProductionsCache),maxLookahead:P.maxLookahead,tokenTypes:t.values(P.tokensMap),errMsgProvider:s.defaultGrammarValidatorErrorProvider,grammarName:M});P.definitionErrors=P.definitionErrors.concat(N)}}),t.isEmpty(P.definitionErrors)&&(P.recoveryEnabled&&P.TRACE_INIT("computeAllProdsFollows",function(){var N=n.computeAllProdsFollows(t.values(P.gastProductionsCache));P.resyncFollows=N}),P.TRACE_INIT("ComputeLookaheadFunctions",function(){P.preComputeLookaheadFunctions(t.values(P.gastProductionsCache))})),!C.DEFER_DEFINITION_ERRORS_HANDLING&&!t.isEmpty(P.definitionErrors))throw E=t.map(P.definitionErrors,function(N){return N.message}),new Error(`Parser Definition Errors detected:
+ `+E.join(`
+-------------------------------
+`))})},C.DEFER_DEFINITION_ERRORS_HANDLING=!1,C}();r.Parser=x,m.applyMixins(x,[a.Recoverable,l.LooksAhead,c.TreeBuilder,u.LexerAdapter,f.RecognizerEngine,h.RecognizerApi,p.ErrorHandler,g.ContentAssist,v.GastRecorder,d.PerformanceTracer]);var w=function(C){e(P,C);function P(E,M){M===void 0&&(M=r.DEFAULT_PARSER_CONFIG);var L=this,N=t.cloneObj(M);return N.outputCst=!0,L=C.call(this,E,N)||this,L}return P}(x);r.CstParser=w;var I=function(C){e(P,C);function P(E,M){M===void 0&&(M=r.DEFAULT_PARSER_CONFIG);var L=this,N=t.cloneObj(M);return N.outputCst=!1,L=C.call(this,E,N)||this,L}return P}(x);r.EmbeddedActionsParser=I}),OS=Tt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.createSyntaxDiagramsCode=void 0;var e=q0();function t(n,i){var s=i===void 0?{}:i,o=s.resourceBase,a=o===void 0?"https://unpkg.com/chevrotain@"+e.VERSION+"/diagrams/":o,l=s.css,c=l===void 0?"https://unpkg.com/chevrotain@"+e.VERSION+"/diagrams/diagrams.css":l,u=`
+
+
+
+
+
+`,h=`
+
+`,f=`
+